hipfort-7.2.4/0000775000175000017500000000000015207260642013367 5ustar alastairalastairhipfort-7.2.4/.azuredevops/0000775000175000017500000000000015207260635016016 5ustar alastairalastairhipfort-7.2.4/.azuredevops/rocm-ci.yml0000664000175000017500000000117715207260635020100 0ustar alastairalastairresources: repositories: - repository: pipelines_repo type: github endpoint: ROCm name: ROCm/ROCm variables: - group: common - template: /.azuredevops/variables-global.yml@pipelines_repo trigger: batch: true branches: include: - develop - mainline paths: exclude: - .github - docs - '.*.y*ml' - LICENSE - '*.md' pr: autoCancel: true branches: include: - develop - mainline paths: exclude: - .github - docs - '.*.y*ml' - LICENSE - '*.md' drafts: false jobs: - template: ${{ variables.CI_COMPONENT_PATH }}/hipfort.yml@pipelines_repo hipfort-7.2.4/bin/0000775000175000017500000000000015207260635014141 5ustar alastairalastairhipfort-7.2.4/bin/myarchgpu0000777000175000017500000000000015207260635017313 2mymcpuustar alastairalastairhipfort-7.2.4/bin/Makefile.hipfort0000664000175000017500000000366215207260635017262 0ustar alastairalastair # # Makefile.hipfort: Include Makefile to set values LINKOPTS, CXX, and FC # to support compilation with HIPFORT. # # This file is meant to be included by other Makefiles. The includer must # set HIPFORT_HOME to the build or install location of HIPFORT. For example: # # HIPFORT_HOME ?= /opt/rocm/ # include $(HIPFORT_HOME)/share/hipfort/Makefile.hipfort # # If the caller does not set HIPFORT_ARCHGPU, this Makefile will call # a self-identification utility called myarchgpu. Please create an issue # in the hipfort repo if myarchgpu returns unknown. # # To avoid self identification set HIPFORT_ARCHGPU. Examples: # HIPFORT_ARCHGPU = amdgcn-gfx906 # HIPFORT_ARCHGPU = nvptx-sm_70 # HIPFORT_ARCHGPU ?= $(shell $(HIPFORT_HOME)/libexec/hipfort/myarchgpu) ARCH = $(firstword $(subst -, ,$(HIPFORT_ARCHGPU))) HIPFORT_COMPILER ?= gfortran CUDA_PATH=${CUDA_PATH:-/usr/local/cuda} ROCM_PATH=${ROCM_PATH:-/opt/rocm} DEVICE_LIB_PATH ?= $(ROCM_PATH)/lib HIP_CLANG_PATH ?= $(ROCM_PATH)/llvm/bin HIP_PLATFORM=${HIP_PLATFORM:-amd} MOD_DIR = $(HIPFORT_HOME)/include/hipfort/$(ARCH) LIB_DIR = $(HIPFORT_HOME)/lib GPU = $(strip $(subst ., ,$(suffix $(subst -,.,$(HIPFORT_ARCHGPU))))) ifeq (nvptx,$(findstring nvptx,$(HIPFORT_ARCHGPU))) UNAMEP = $(shell uname -p) LINKOPTS = -L$(LIB_DIR) -lhipfort-$(ARCH) -L$(CUDA_PATH)/targets/$(UNAMEP)-linux/lib $(LINKOPTS) -lcudart HIPCC_ENV = HIP_PLATFORM=nvidia HIPCC_OPTS = "--gpu-architecture=$(GPU)" else LINKOPTS = -L$(LIB_DIR) -lhipfort-$(ARCH) -L$(ROCM_PATH)/lib $(HIPCC_LIBS) -lamdhip64 -Wl,-rpath=$(ROCM_PATH)/lib HIPCC_ENV = HIP_PLATFORM=$(HIP_PLATFORM) DEVICE_LIB_PATH=$(DEVICE_LIB_PATH) HIP_CLANG_PATH=$(HIP_CLANG_PATH) HIPCC_OPTS = -fno-gpu-rdc -fPIC --offload-arch=$(GPU) endif LINKOPTS += -lstdc++ CXX = $(HIPCC_ENV) $(ROCM_PATH)/bin/hipcc $(HIPCC_OPTS) FC_OPTS = "-DHIPFORT_ARCH=\"$(ARCH)\"" FC = $(HIPFORT_COMPILER) -cpp -I$(MOD_DIR) $(FC_OPTS) hipfort-7.2.4/bin/mymcpu0000775000175000017500000001566515207260635015416 0ustar alastairalastair#!/bin/bash # # mymcpu: Print the codename the current gpu # mygpu: Print a gpu value # myarchgpu: Print arch-gpu value # PROGVERSION=X.Y-Z # Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. # [MITx11 License] # 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. function usage(){ /bin/cat 2>&1 <<"EOF" mymcpu: Print out a codename for the gpu of the current system. mygpu: Print out the real gpu name for the current system . mygpu will only print values accepted by cuda clang in the clang argument --cuda-gpu-arch myarchgpu: Print out the real gpu name for the current system with the arch prefix. e.g. nvptx-sm_70 Usage: myarchgpu Options without values: -h Print this help message -d If GPU is unknown, return this default device -version Print the version of mymcpu and mygpu Copyright (c) 2020-2022 ADVANCED MICRO DEVICES, INC. EOF exit 1 } function version(){ echo $PROGVERSION exit 0 } function getdname(){ local __DIRN=`dirname "$1"` if [ "$__DIRN" = "." ] ; then __DIRN=$PWD; else if [ ${__DIRN:0:1} != "/" ] ; then if [ ${__DIRN:0:2} == ".." ] ; then __DIRN=`dirname $PWD`/${__DIRN:3} else if [ ${__DIRN:0:1} = "." ] ; then __DIRN=$PWD/${__DIRN:2} else __DIRN=$PWD/$__DIRN fi fi fi fi echo $__DIRN } function getarch(){ if [ "${1:0:3}" == "sm_" ] ; then echo "nvptx" else echo "amdgcn" fi } function code2gpu(){ case "$1" in "tahiti") gpuname="gfx600" ;; "gfx600") gpuname="gfx600" ;; "oland") gpuname="gfx601" ;; "gfx601") gpuname="gfx601" ;; "gfx700") gpuname="gfx700" ;; "kaveri") gpuname="gfx700" ;; "gfx701") gpuname="gfx701" ;; "hawaii") gpuname="gfx701" ;; "gfx703") gpuname="gfx703" ;; "kabini") gpuname="gfx703" ;; "gfx801") gpuname="gfx801" ;; "carrizo") gpuname="gfx801" ;; "gfx802") gpuname="gfx802" ;; "tonga") gpuname="gfx802" ;; "gfx803") gpuname="gfx803" ;; "fiji") gpuname="gfx803" ;; "vega") gpuname="gfx900" ;; "RavenRidge") gpuname="gfx902" ;; "vega20") gpuname="gfx906" ;; "NRAXJ") gpuname="gfx908" ;; "NRAXJ2") gpuname="gfx90a" ;; "navi12") gpuname="gfx1011" ;; "navi21") gpuname="gfx1030" ;; "n3a") gpuname="gfx1101" ;; "sm_30") gpuname="sm_30" ;; "k4000") gpuname="sm_30" ;; "k40c") gpuname="sm_35" ;; "k4200") gpuname="sm_30" ;; "gtx960m") gpuname="sm_50" ;; "gtx980") gpuname="sm_35" ;; "gtx1050") gpuname="sm_61" ;; "gtx1060") gpuname="sm_61" ;; "gtx1080") gpuname="sm_61" ;; "gt730") gpuname="sm_35" ;; "p100") gpuname="sm_60" ;; "gv100") gpuname="sm_70" ;; "v100") gpuname="sm_70" ;; "") gpuname="sm_35" ;; *) gpuname=$unknown_value ;; esac echo $gpuname } function getmycodename() { thisdir=$(getdname $0) if [ -L "$thisdir/mymcpu" ] ; then linkfile=`readlink "$thisdir/mymcpu"` if [ "${linkfile%%/*}" == ".." ] ; then linkfile=$thisdir/$linkfile fi thisdir=$(getdname $linkfile) fi GPUTABLE_FILE=${GPUTABLE_FILE:-$thisdir/gputable.txt} local _found=0 if [ -f $GPUTABLE_FILE ] ; then # Look for amd cards first for sysfsname in `find -L /sys/bus/pci/devices -maxdepth 2 -name uevent | xargs grep -l -E 'DRIVER=amdgpu'` ; do gpuid=`cat $sysfsname | grep 'PCI_ID=' | cut -d"=" -f2 | tr '[:upper:]' '[:lower:]'` if [ $_found == 0 ] ; then #fixme what happens if multiple gpus, will gpuid be multiple lines? entry=`grep -m1 "^$gpuid" $GPUTABLE_FILE` if [ $? == 0 ] ; then codename=`echo $entry | awk '{print $4}'` _found=1 fi fi done if [ $_found == 0 ] ; then for sysfsname in `find -L /sys/bus/pci/devices -maxdepth 2 -name uevent | xargs grep -l -E 'DRIVER=nvidia'` ; do gpuid=`cat $sysfsname | grep 'PCI_ID=' | cut -d"=" -f2 | tr '[:upper:]' '[:lower:]'` if [ $_found == 0 ] ; then #fixme what happens if multiple gpus, will gpuid be multiple lines? entry=`grep -m1 "^$gpuid" $GPUTABLE_FILE` if [ $? == 0 ] ; then codename=`echo $entry | awk '{print $4}'` _found=1 fi fi done fi fi if [ $_found == 1 ] ; then echo $codename else echo "unknown" # for debugging unknown codenames, return gpuid here # echo "$gpuid" fi } # =========== Main code for mymcpu and mygpu starts here ========== TYPERUN=${0##*\/} MODE= unknown_value="unknown" # process args while [ $# -gt 0 ] ; do case "$1" in -n) MODE=num; shift ;; -h) usage ;; -d) unknown_value=$2; shift ;; -help) usage ;; --help) usage ;; -version) version ;; --version) version ;; --) shift ; break;; *) break;echo $1 ignored; esac shift done rc=0 if [ "$TYPERUN" == "mygpu" ] ; then codename=$(getmycodename) gpuname=$(code2gpu $codename) [ "$gpuname" == "unknown" ] && rc=1 if [ -z "$MODE" ]; then echo $gpuname else echo `echo $gpuname | sed 's/gfx//' | sed 's/sm_//'` fi elif [ "$TYPERUN" == "myarchgpu" ] ; then codename=$(getmycodename) gpuname=$(code2gpu $codename) if [ "$gpuname" == "unknown" ] ; then rc=1 echo unknown-unknown else archname=$(getarch $gpuname) echo $archname-$gpuname fi else # This is mymcpu so print the codename codename=$(getmycodename) [ "$codename" == "unknown" ] && rc=1 echo $codename fi exit $rc hipfort-7.2.4/bin/mygpu0000777000175000017500000000000015207260635016455 2mymcpuustar alastairalastairhipfort-7.2.4/bin/gputable.txt0000775000175000017500000053206315207260635016521 0ustar alastairalastair1002:1309 0000 0000 kaveri : Kaveri [Radeon R6/R7 Graphics] 1002:130a 0000 0000 kaveri : Kaveri [Radeon R6 Graphics] 1002:130b 0000 0000 kaveri : Kaveri [Radeon R4 Graphics] 1002:130c 0000 0000 kaveri : Kaveri [Radeon R7 Graphics] 1002:130d 0000 0000 kaveri : Kaveri [Radeon R6 Graphics] 1002:130e 0000 0000 kaveri : Kaveri [Radeon R5 Graphics] 1002:130f 0000 0000 kaveri : Kaveri [Radeon R7 Graphics] 1002:1313 0000 0000 kaveri : Kaveri [Radeon R7 Graphics] 1002:1315 0000 0000 kaveri : Kaveri [Radeon R5 Graphics] 1002:1316 0000 0000 kaveri : Kaveri [Radeon R5 Graphics] 1002:1318 0000 0000 kaveri : Kaveri [Radeon R5 Graphics] 1002:131b 0000 0000 kaveri : Kaveri [Radeon R4 Graphics] 1002:131c 0000 0000 kaveri : Kaveri [Radeon R7 Graphics] 1002:131d 0000 0000 kaveri : Kaveri [Radeon R6 Graphics] 1002:15dd 0000 0000 RavenRidge : Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] 1002:15dd 103c 83c6 RavenRidge : Radeon Vega 8 Mobile 1002:15dd 1458 d000 RavenRidge : Radeon RX Vega 11 1002:15ff 0000 0000 RavenRidge : Vega 11 [Radeon Vega 28 Mobile] 1002:1714 0000 0000 beavercreek : BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] 1002:1714 103c 168b beavercreek : ProBook 4535s 1002:3150 0000 0000 rv380/m24 : RV380/M24 [Mobility Radeon X600] 1002:3150 103c 0934 rv380/m24 : nx8220 1002:3152 0000 0000 rv370/m22 : RV370/M22 [Mobility Radeon X300] 1002:3e50 0000 0000 rv380 : RV380 [Radeon X600] 1002:3e70 0000 0000 rv380 : RV380 [Radeon X600] (Secondary) 1002:4137 0000 0000 rs200 : RS200 [Radeon IGP 340] 1002:4144 0000 0000 r300 : R300 [Radeon 9500] 1002:4146 0000 0000 r300 : R300 [Radeon 9700 PRO] 1002:4148 0000 0000 r350 : R350 [Radeon 9800/9800 SE] 1002:4150 0000 0000 rv350 : RV350 [Radeon 9550/9600/X1050 Series] 1002:4150 1002 0002 rv350 : R9600 Pro primary (Asus OEM for HP) 1002:4150 1002 0003 rv350 : R9600 Pro secondary (Asus OEM for HP) 1002:4150 1002 4722 rv350 : All-in-Wonder 2006 AGP Edition 1002:4150 1458 4024 rv350 : GV-R96128D 1002:4150 148c 2064 rv350 : R96A-C3N 1002:4150 148c 2066 rv350 : R96A-C3N 1002:4150 174b 7c19 rv350 : Atlantis Radeon 9600 Pro 1002:4150 174b 7c29 rv350 : GC-R9600PRO 1002:4150 17ee 2002 rv350 : Radeon 9600 256Mb Primary 1002:4150 18bc 0101 rv350 : GC-R9600PRO (Primary) 1002:4151 0000 0000 rv350 : RV350 [Radeon 9600 Series] 1002:4151 1043 c004 rv350 : A9600SE 1002:4151 174b 7c37 rv350 : Radeon 9600SE 128M DDR V/D/VO 1002:4152 0000 0000 rv360 : RV360 [Radeon 9600/X1050 Series] 1002:4152 1002 0002 rv360 : Radeon 9600XT 1002:4152 1002 4772 rv360 : All-in-Wonder 9600 XT 1002:4152 1043 c002 rv360 : Radeon 9600 XT TVD 1002:4152 1043 c01a rv360 : A9600XT/TD 1002:4152 1462 9510 rv360 : RX9600XT (MS-8951) 1002:4152 174b 7c29 rv360 : Radeon 9600XT 1002:4152 1787 4002 rv360 : Radeon 9600 XT 1002:4153 0000 0000 rv350 : RV350 [Radeon 9550] 1002:4153 1043 010c rv350 : A9550GE/TD 1002:4153 1462 932c rv350 : RX9550SE-TD128 (MS-8932) 1002:4155 0000 0000 rv350 : RV350 [Radeon 9600] 1002:4164 0000 0000 r300 : R300 [Radeon 9500 PRO] (Secondary) 1002:4165 0000 0000 r300 : R300 [Radeon 9700 PRO] (Secondary) 1002:4166 0000 0000 r300 : R300 [Radeon 9700 PRO] (Secondary) 1002:4168 0000 0000 rv350 : RV350 [Radeon 9800 SE] (Secondary) 1002:4170 0000 0000 rv350 : RV350 [Radeon 9550/9600/X1050 Series] (Secondary) 1002:4170 1002 0003 rv350 : R9600 Pro secondary (Asus OEM for HP) 1002:4170 1002 4723 rv350 : All-in-Wonder 2006 AGP Edition (Secondary) 1002:4170 1458 4025 rv350 : GV-R96128D (Secondary) 1002:4170 148c 2067 rv350 : R96A-C3N (Secondary) 1002:4170 174b 7c28 rv350 : GC-R9600PRO (Secondary) 1002:4170 17ee 2003 rv350 : Radeon 9600 256Mb (Secondary) 1002:4170 18bc 0100 rv350 : GC-R9600PRO (Secondary) 1002:4171 0000 0000 rv350 : RV350 [Radeon 9600] (Secondary) 1002:4171 1043 c005 rv350 : A9600SE (Secondary) 1002:4171 174b 7c36 rv350 : Radeon 9600SE 128M DDR V/D/VO (secondary) 1002:4172 0000 0000 rv350 : RV350 [Radeon 9600/X1050 Series] (Secondary) 1002:4172 1002 0003 rv350 : Radeon 9600XT (Secondary) 1002:4172 1002 4773 rv350 : All-in-Wonder 9600 XT (Secondary) 1002:4172 1043 c003 rv350 : A9600XT (Secondary) 1002:4172 1043 c01b rv350 : A9600XT/TD (Secondary) 1002:4172 174b 7c28 rv350 : Radeon 9600XT (Secondary) 1002:4172 1787 4003 rv350 : Radeon 9600 XT (Secondary) 1002:4173 0000 0000 rv350 : RV350 [Radeon 9550] (Secondary) 1002:4173 1043 010d rv350 : A9550GE/TD (Secondary) 1002:4242 0000 0000 r200 : R200 [All-In-Wonder Radeon 8500 DV] 1002:4242 1002 02aa r200 : Radeon 8500 AIW DV Edition 1002:4243 0000 0000 r200 : R200 PCI Bridge [All-in-Wonder Radeon 8500DV] 1002:4336 0000 0000 rs100 : RS100 [Radeon IGP 320M] 1002:4336 1002 4336 rs100 : Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M) 1002:4336 103c 0024 rs100 : Pavilion ze4400 builtin Video 1002:4336 161f 2029 rs100 : eMachines M5312 builtin Video 1002:4337 0000 0000 rs200m : RS200M [Radeon IGP 330M/340M/345M/350M] 1002:4337 1014 053a rs200m : ThinkPad R40e 1002:4337 103c 0850 rs200m : Radeon IGP 345M 1002:4437 0000 0000 rs250 : RS250 [Mobility Radeon 7000 IGP] 1002:4966 0000 0000 rv250 : RV250 [Radeon 9000 Series] 1002:4966 10f1 0002 rv250 : RV250 If [Tachyon G9000 PRO] 1002:4966 148c 2039 rv250 : RV250 If [Radeon 9000 Pro "Evil Commando"] 1002:4966 1509 9a00 rv250 : RV250 If [Radeon 9000 "AT009"] 1002:4966 1681 0040 rv250 : RV250 If [3D prophet 9000] 1002:4966 174b 7176 rv250 : Radeon 9000 Pro 1002:4966 174b 7192 rv250 : RV250 If [Radeon 9000 "Atlantis"] 1002:4966 17af 2005 rv250 : RV250 If [Excalibur Radeon 9000 Pro] 1002:4966 17af 2006 rv250 : RV250 If [Excalibur Radeon 9000] 1002:496e 0000 0000 rv250 : RV250 [Radeon 9000] (Secondary) 1002:4a49 0000 0000 r420 : R420 [Radeon X800 PRO/GTO AGP] 1002:4a49 174b 2620 r420 : R420 [Radeon X800 GTO AGP] 1002:4a4a 0000 0000 r420 : R420 [Radeon X800 GT AGP] 1002:4a4b 0000 0000 r420 : R420 [Radeon X800 AGP Series] 1002:4a4e 0000 0000 rv420/m18 : RV420/M18 [Mobility Radeon 9800] 1002:4a4f 0000 0000 r420 : R420 [Radeon X850 AGP] 1002:4a50 0000 0000 r420 : R420 [Radeon X800 XT Platinum Edition AGP] 1002:4a54 0000 0000 r420 : R420 [Radeon X800 VE AGP] 1002:4a54 1002 4422 r420 : All-In-Wonder X800 VE AGP 1002:4a69 0000 0000 r420 : R420 [Radeon X800 PRO/GTO] (Secondary) 1002:4a6a 0000 0000 r420 : R420 [Radeon X800] (Secondary) 1002:4a6b 0000 0000 r420 : R420 [Radeon X800 XT AGP] (Secondary) 1002:4a70 0000 0000 r420 : R420 [Radeon X800 XT Platinum Edition AGP] (Secondary) 1002:4a74 0000 0000 r420 : R420 [Radeon X800 VE] (Secondary) 1002:4b49 0000 0000 r481 : R481 [Radeon X850 XT AGP] 1002:4b4b 0000 0000 r481 : R481 [Radeon X850 PRO AGP] 1002:4b4c 0000 0000 r481 : R481 [Radeon X850 XT Platinum Edition AGP] 1002:4b69 0000 0000 r481 : R481 [Radeon X850 XT AGP] (Secondary) 1002:4b6b 0000 0000 r481 : R481 [Radeon X850 PRO AGP] (Secondary) 1002:4b6c 0000 0000 r481 : R481 [Radeon X850 XT Platinum Edition AGP] (Secondary) 1002:4c47 0000 0000 3d : 3D Rage IIC PCI / Mobility Radeon 7500/7500C 1002:4c57 0000 0000 rv200/m7 : RV200/M7 [Mobility Radeon 7500] 1002:4c57 1014 0517 rv200/m7 : ThinkPad T30 1002:4c57 1014 0530 rv200/m7 : ThinkPad T4x Series 1002:4c57 1028 00e6 rv200/m7 : Radeon Mobility M7 LW (Dell Inspiron 8100) 1002:4c57 1028 012a rv200/m7 : Latitude C640 1002:4c57 1043 1622 rv200/m7 : Mobility Radeon M7 (L3C/S) 1002:4c57 144d c006 rv200/m7 : Radeon Mobility M7 LW in vpr Matrix 170B4 1002:4c6e 0000 0000 rv250/m9 : RV250/M9 [Mobility Radeon 9000] (Secondary) 1002:4e44 0000 0000 r300 : R300 [Radeon 9700/9700 PRO] 1002:4e44 1002 515e r300 : Radeon ES1000 1002:4e44 1002 5965 r300 : Radeon ES1000 1002:4e45 0000 0000 r300 : R300 [Radeon 9500 PRO/9700] 1002:4e45 1002 0002 r300 : Radeon R300 NE [Radeon 9500 Pro] 1002:4e45 1681 0002 r300 : Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] 1002:4e46 0000 0000 r300 : R300 [Radeon 9600 TX] 1002:4e48 0000 0000 r350 : R350 [Radeon 9800 Series] 1002:4e49 0000 0000 r350 : R350 [Radeon 9800] 1002:4e4a 0000 0000 r360 : R360 [Radeon 9800 XXL/XT] 1002:4e4a 1002 4e4a r360 : R360 [Radeon 9800 XT] 1002:4e50 0000 0000 rv350/m10 : RV350/M10 / RV360/M11 [Mobility Radeon 9600 (PRO) / 9700] 1002:4e50 1025 005a rv350/m10 : TravelMate 290 1002:4e50 1025 0064 rv350/m10 : Extensa 3000 series laptop: ATI RV360/M11 [Mobility Radeon 9700] 1002:4e50 103c 088c rv350/m10 : NC8000 laptop 1002:4e50 103c 0890 rv350/m10 : NC6000 laptop 1002:4e50 144d c00c rv350/m10 : P35 notebook 1002:4e50 1462 0311 rv350/m10 : MSI M510A 1002:4e50 1734 1055 rv350/m10 : Amilo M1420W 1002:4e51 0000 0000 rv350 : RV350 [Radeon 9550/9600/X1050 Series] 1002:4e52 0000 0000 rv350/m10 : RV350/M10 [Mobility Radeon 9500/9700 SE] 1002:4e52 144d c00c rv350/m10 : P35 notebook 1002:4e56 0000 0000 rv360/m12 : RV360/M12 [Mobility Radeon 9550] 1002:4e64 0000 0000 r300 : R300 [Radeon 9700 PRO] (Secondary) 1002:4e65 0000 0000 r300 : R300 [Radeon 9500 PRO] (Secondary) 1002:4e65 1002 0003 r300 : Radeon R300 NE [Radeon 9500 Pro] 1002:4e65 1681 0003 r300 : Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary) 1002:4e66 0000 0000 rv350 : RV350 [Radeon 9600] (Secondary) 1002:4e68 0000 0000 r350 : R350 [Radeon 9800 PRO] (Secondary) 1002:4e69 0000 0000 r350 : R350 [Radeon 9800] (Secondary) 1002:4e6a 0000 0000 rv350 : RV350 [Radeon 9800 XT] (Secondary) 1002:4e6a 1002 4e6a rv350 : R360 [Radeon 9800 XT] (Secondary) 1002:4e6a 1002 4e71 rv350 : M10 NQ [Radeon Mobility 9600] 1002:4e71 0000 0000 rv350/m10 : RV350/M10 [Mobility Radeon 9600] (Secondary) 1002:4f72 0000 0000 rv250 : RV250 [Radeon 9000 Series] 1002:4f73 0000 0000 rv250 : RV250 [Radeon 9000 Series] (Secondary) 1002:5144 0000 0000 r100 : R100 [Radeon 7200 / All-In-Wonder Radeon] 1002:5144 1002 0008 r100 : Radeon 7000/Radeon VE 1002:5144 1002 0009 r100 : Radeon 7000/Radeon 1002:5144 1002 000a r100 : Radeon 7000/Radeon 1002:5144 1002 001a r100 : Radeon 7000/Radeon 1002:5144 1002 0029 r100 : Radeon AIW 1002:5144 1002 0038 r100 : Radeon 7000/Radeon 1002:5144 1002 0039 r100 : Radeon 7000/Radeon 1002:5144 1002 008a r100 : Radeon 7000/Radeon 1002:5144 1002 00ba r100 : Radeon 7000/Radeon 1002:5144 1002 0139 r100 : Radeon 7000/Radeon 1002:5144 1002 028a r100 : Radeon 7000/Radeon 1002:5144 1002 02aa r100 : Radeon AIW 1002:5144 1002 053a r100 : Radeon 7000/Radeon 1002:514c 0000 0000 r200 : R200 [Radeon 8500/8500 LE] 1002:514c 1002 003a r200 : Radeon R200 QL [Radeon 8500 LE] 1002:514c 1002 013a r200 : Radeon 8500 1002:514c 148c 2026 r200 : R200 QL [Radeon 8500 Evil Master II Multi Display Edition] 1002:514c 1681 0010 r200 : Radeon 8500 [3D Prophet 8500 128Mb] 1002:514c 174b 7149 r200 : Radeon 8500 LE 1002:514c 1787 0f08 r200 : Radeon R200 QL [PowerMagic Radeon 8500] 1002:514d 0000 0000 r200 : R200 [Radeon 9100] 1002:5157 0000 0000 rv200 : RV200 [Radeon 7500/7500 LE] 1002:5157 1002 013a rv200 : Radeon 7500 1002:5157 1002 0f2b rv200 : ALL-IN-WONDER VE PCI 1002:5157 1002 103a rv200 : Dell Optiplex GX260 1002:5157 1458 4000 rv200 : RV200 QW [RADEON 7500 PRO MAYA AR] 1002:5157 148c 2024 rv200 : RV200 QW [Radeon 7500LE Dual Display] 1002:5157 148c 2025 rv200 : RV200 QW [Radeon 7500 Evil Master Multi Display Edition] 1002:5157 148c 2036 rv200 : RV200 QW [Radeon 7500 PCI Dual Display] 1002:5157 174b 7146 rv200 : RV200 QW [Radeon 7500 LE] 1002:5157 174b 7147 rv200 : Radeon 7500 LE 1002:5157 174b 7161 rv200 : Radeon RV200 QW [Radeon 7500 LE] 1002:5157 17af 0202 rv200 : RV200 QW [Excalibur Radeon 7500LE] 1002:5159 0000 0000 rv100 : RV100 [Radeon 7000 / Radeon VE] 1002:5159 1002 000a rv100 : Radeon 7000/Radeon VE 1002:5159 1002 000b rv100 : Radeon 7000 1002:5159 1002 0038 rv100 : Radeon 7000/Radeon VE 1002:5159 1002 003a rv100 : Radeon 7000/Radeon VE 1002:5159 1002 00ba rv100 : Radeon 7000/Radeon VE 1002:5159 1002 013a rv100 : Radeon 7000/Radeon VE 1002:5159 1002 0908 rv100 : XVR-100 (supplied by Sun) 1002:5159 1014 029a rv100 : Remote Supervisor Adapter II (RSA2) 1002:5159 1014 02c8 rv100 : eServer xSeries server mainboard 1002:5159 1028 016c rv100 : PowerEdge 1850 Embedded Radeon 7000/VE 1002:5159 1028 016d rv100 : PowerEdge 2850 Embedded Radeon 7000-M 1002:5159 1028 0170 rv100 : PowerEdge 6850 Embedded Radeon 7000/VE 1002:5159 1028 019a rv100 : PowerEdge SC1425 1002:5159 103c 1292 rv100 : Radeon 7000 1002:5159 1043 c00a rv100 : A7000/T/64M 1002:5159 1458 4002 rv100 : RV100 QY [RADEON 7000 PRO MAYA AV Series] 1002:5159 148c 2003 rv100 : RV100 QY [Radeon 7000 Multi-Display Edition] 1002:5159 148c 2023 rv100 : RV100 QY [Radeon 7000 Evil Master Multi-Display] 1002:5159 148c 2081 rv100 : RV6DE 1002:5159 174b 0280 rv100 : Radeon RV100 QY [Radeon 7000/VE] 1002:5159 174b 7112 rv100 : Radeon VE 7000 1002:5159 174b 7c28 rv100 : Radeon VE 7000 DDR 1002:5159 1787 0202 rv100 : RV100 QY [Excalibur Radeon 7000] 1002:5159 17ee 1001 rv100 : Radeon 7000 64MB DDR + DVI 1002:5460 0000 0000 rv370/m22 : RV370/M22 [Mobility Radeon X300] 1002:5460 1775 1100 rv370/m22 : CR11/VR11 Single Board Computer 1002:5461 0000 0000 rv370/m22 : RV370/M22 [Mobility Radeon X300] 1002:5462 0000 0000 rv380/m24c : RV380/M24C [Mobility Radeon X600 SE] 1002:5549 0000 0000 r423 : R423 [Radeon X800 GTO] 1002:554a 0000 0000 r423 : R423 [Radeon X800 XT Platinum Edition] 1002:554b 0000 0000 r423 : R423 [Radeon X800 GT/SE] 1002:554b 1002 0302 r423 : Radeon X800 SE 1002:554d 0000 0000 r430 : R430 [Radeon X800 XL] 1002:554d 1002 0322 r430 : All-In-Wonder X800 XL 1002:554d 1458 2124 r430 : GV-R80L256V-B (AGP) 1002:554f 0000 0000 r430 : R430 [Radeon X800] 1002:5569 0000 0000 r423 : R423 [Radeon X800 PRO] (Secondary) 1002:556b 0000 0000 r423 : R423 [Radeon X800 GT] (Secondary) 1002:556d 0000 0000 r430 : R430 [Radeon X800 XL] (Secondary) 1002:556d 1458 2125 r430 : GV-R80L256V-B (AGP) 1002:556f 0000 0000 r430 : R430 [Radeon X800] (Secondary) 1002:564f 0000 0000 rv410/m26 : RV410/M26 [Mobility Radeon X700 XL] 1002:5652 0000 0000 rv410/m26 : RV410/M26 [Mobility Radeon X700] 1002:5653 0000 0000 rv410/m26 : RV410/M26 [Mobility Radeon X700] 1002:5653 1025 0080 rv410/m26 : Aspire 5024WLMi 1002:5653 103c 0940 rv410/m26 : Compaq NW8240 Mobile Workstation 1002:5657 0000 0000 rv410 : RV410 [Radeon X550 XTX / X700] 1002:5834 0000 0000 rs300 : RS300 [Radeon 9100 IGP] 1002:5835 0000 0000 rs300m : RS300M [Mobility Radeon 9100 IGP] 1002:5854 0000 0000 rs480 : RS480 [Radeon Xpress 200 Series] (Secondary) 1002:5874 0000 0000 rs480 : RS480 [Radeon Xpress 1150] (Secondary) 1002:5940 0000 0000 rv280 : RV280 [Radeon 9200 PRO] (Secondary) 1002:5940 17af 2021 rv280 : Excalibur Radeon 9250 (Secondary) 1002:5941 0000 0000 rv280 : RV280 [Radeon 9200] (Secondary) 1002:5941 1458 4019 rv280 : Radeon 9200 1002:5941 174b 7c12 rv280 : Radeon 9200 1002:5941 17af 200d rv280 : Excalibur Radeon 9200 1002:5941 18bc 0050 rv280 : GC-R9200-C3 (Secondary) 1002:5944 0000 0000 rv280 : RV280 [Radeon 9200 SE PCI] 1002:5954 0000 0000 rs480 : RS480 [Radeon Xpress 200 Series] 1002:5954 1002 5954 rs480 : RV370 [Radeon Xpress 200G Series] 1002:5955 0000 0000 rs480m : RS480M [Mobility Radeon Xpress 200] 1002:5955 1002 5955 rs480m : RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)] 1002:5955 103c 308b rs480m : MX6125 1002:5955 1462 0131 rs480m : MS-1013 Notebook 1002:5960 0000 0000 rv280 : RV280 [Radeon 9200 PRO] 1002:5960 17af 2020 rv280 : Excalibur Radeon 9250 1002:5961 0000 0000 rv280 : RV280 [Radeon 9200] 1002:5961 1002 2f72 rv280 : All-in-Wonder 9200 Series 1002:5961 1019 4c30 rv280 : Radeon 9200 VIVO 1002:5961 12ab 5961 rv280 : YUAN SMARTVGA Radeon 9200 1002:5961 1458 4018 rv280 : Radeon 9200 1002:5961 174b 7c13 rv280 : Radeon 9200 1002:5961 17af 200c rv280 : Excalibur Radeon 9200 1002:5961 18bc 0050 rv280 : Radeon 9200 Game Buster 1002:5961 18bc 0051 rv280 : GC-R9200-C3 1002:5961 18bc 0053 rv280 : Radeon 9200 Game Buster VIVO 1002:5962 0000 0000 rv280 : RV280 [Radeon 9200] 1002:5964 0000 0000 rv280 : RV280 [Radeon 9200 SE] 1002:5964 1002 5964 rv280 : Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz 1002:5964 1043 c006 rv280 : Radeon 9200 SE / TD / 128M 1002:5964 1458 4018 rv280 : Radeon 9200 SE 1002:5964 1458 4032 rv280 : Radeon 9200 SE 128MB 1002:5964 147b 6191 rv280 : R9200SE-DT 1002:5964 148c 2073 rv280 : CN-AG92E 1002:5964 174b 7c13 rv280 : Radeon 9200 SE 1002:5964 1787 5964 rv280 : Excalibur 9200SE VIVO 128M 1002:5964 17af 2012 rv280 : Radeon 9200 SE Excalibur 1002:5964 18bc 0170 rv280 : Sapphire Radeon 9200 SE 128MB Game Buster 1002:5964 18bc 0173 rv280 : GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] 1002:5974 0000 0000 rs482/rs485 : RS482/RS485 [Radeon Xpress 1100/1150] 1002:5974 103c 280a rs482/rs485 : DC5750 Microtower 1002:5974 1462 7141 rs482/rs485 : Aspire L250 1002:5975 0000 0000 rs482m : RS482M [Mobility Radeon Xpress 200] 1002:5a41 0000 0000 rs400 : RS400 [Radeon Xpress 200] 1002:5a42 0000 0000 rs400m : RS400M [Radeon Xpress 200M] 1002:5a61 0000 0000 rc410 : RC410 [Radeon Xpress 200/1100] 1002:5a62 0000 0000 rc410m : RC410M [Mobility Radeon Xpress 200M] 1002:5b60 0000 0000 rv370 : RV370 [Radeon X300] 1002:5b60 1043 002a rv370 : Extreme AX300SE-X 1002:5b60 1043 032e rv370 : Extreme AX300/TD 1002:5b60 1458 2102 rv370 : GV-RX30S128D (X300SE) 1002:5b60 1462 0400 rv370 : RX300SE-TD128E (MS-8940 REV:200) 1002:5b60 1462 0402 rv370 : RX300SE-TD128E (MS-8940) 1002:5b60 174b 0500 rv370 : Radeon X300 (PCIE) 1002:5b60 196d 1086 rv370 : X300SE HM 1002:5b62 0000 0000 rv370 : RV370 [Radeon X600/X600 SE] 1002:5b63 0000 0000 rv370 : RV370 [Radeon X300/X550/X1050 Series] 1002:5b70 0000 0000 rv370 : RV370 [Radeon X300 SE] 1002:5b70 1462 0403 rv370 : Radeon X300 SE 128MB DDR 1002:5b70 174b 0501 rv370 : Radeon X300 SE 1002:5b70 196d 1087 rv370 : Radeon X300 SE HyperMemory 1002:5b72 0000 0000 rv380 : RV380 [Radeon X300/X550/X1050 Series] (Secondary) 1002:5b73 0000 0000 rv370 : RV370 [Radeon X300/X550/X1050 Series] (Secondary) 1002:5c61 0000 0000 rv280/m9+ : RV280/M9+ [Mobility Radeon 9200 AGP] 1002:5c63 0000 0000 rv280/m9+ : RV280/M9+ [Mobility Radeon 9200 AGP] 1002:5c63 1002 5c63 rv280/m9+ : Apple iBook G4 2004 1002:5c63 144d c00c rv280/m9+ : P30 notebook 1002:5d44 0000 0000 rv280 : RV280 [Radeon 9200 SE] (Secondary) 1002:5d44 1458 4019 rv280 : Radeon 9200 SE (Secondary) 1002:5d44 1458 4032 rv280 : Radeon 9200 SE 128MB 1002:5d44 147b 6190 rv280 : R9200SE-DT (Secondary) 1002:5d44 174b 7c12 rv280 : Radeon 9200 SE (Secondary) 1002:5d44 1787 5965 rv280 : Excalibur 9200SE VIVO 128M (Secondary) 1002:5d44 17af 2013 rv280 : Radeon 9200 SE Excalibur (Secondary) 1002:5d44 18bc 0171 rv280 : Radeon 9200 SE 128MB Game Buster (Secondary) 1002:5d44 18bc 0172 rv280 : GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] 1002:5d48 0000 0000 r423/m28 : R423/M28 [Mobility Radeon X800 XT] 1002:5d4a 0000 0000 r423/m28 : R423/M28 [Mobility Radeon X800] 1002:5d4d 0000 0000 r480 : R480 [Radeon X850 XT Platinum Edition] 1002:5d4e 0000 0000 r480 : R480 [Radeon X850 SE] 1002:5d4f 0000 0000 r480 : R480 [Radeon X800 GTO] 1002:5d52 0000 0000 r480 : R480 [Radeon X850 XT] 1002:5d52 1002 0b12 r480 : PowerColor X850XT PCIe (Primary) 1002:5d57 0000 0000 r423 : R423 [Radeon X800 XT] 1002:5d6d 0000 0000 r480 : R480 [Radeon X850 XT Platinum Edition] (Secondary) 1002:5d6f 0000 0000 r480 : R480 [Radeon X800 GTO] (Secondary) 1002:5d72 0000 0000 r480 : R480 [Radeon X850 XT] (Secondary) 1002:5d72 1002 0b13 r480 : PowerColor X850XT PCIe (Secondary) 1002:5d77 0000 0000 r423 : R423 [Radeon X800 XT] (Secondary) 1002:5e49 0000 0000 rv410 : RV410 [Radeon X700 Series] 1002:5e4a 0000 0000 rv410 : RV410 [Radeon X700 XT] 1002:5e4b 0000 0000 rv410 : RV410 [Radeon X700 PRO] 1002:5e4c 0000 0000 rv410 : RV410 [Radeon X700 SE] 1002:5e4d 0000 0000 rv410 : RV410 [Radeon X700] 1002:5e4d 148c 2116 rv410 : Bravo X700 1002:5e4f 0000 0000 rv410 : RV410 [Radeon X700] 1002:5e4f 1569 1e4f rv410 : Radeon X550 XT 1002:5e6b 0000 0000 rv410 : RV410 [Radeon X700 PRO] (Secondary) 1002:5e6d 0000 0000 rv410 : RV410 [Radeon X700] (Secondary) 1002:5e6d 148c 2117 rv410 : Bravo X700 (Secondary) 1002:5f57 0000 0000 r423 : R423 [Radeon X800 XT] 1002:6600 0000 0000 mars : Mars [Radeon HD 8670A/8670M/8750M] 1002:6600 103c 1952 mars : ProBook 455 G1 1002:6601 0000 0000 mars : Mars [Radeon HD 8730M] 1002:6601 103c 2100 mars : FirePro M4100 1002:6604 0000 0000 opal : Opal XT [Radeon R7 M265/M365X/M465] 1002:6604 1025 0776 opal : Aspire V5 Radeon R7 M265 1002:6604 103c 8006 opal : FirePro M4170 1002:6604 103c 814f opal : Litho XT [Radeon R7 M365X] 1002:6604 103c 82aa opal : Litho XT [Radeon R7 M465] 1002:6604 17aa 3643 opal : Radeon R7 A360 1002:6605 0000 0000 opal : Opal PRO [Radeon R7 M260X] 1002:6605 103c 2259 opal : FirePro M4150 1002:6606 0000 0000 mars : Mars XTX [Radeon HD 8790M] 1002:6606 1028 0684 mars : FirePro W4170M 1002:6607 0000 0000 mars : Mars LE [Radeon HD 8530M / R5 M240] 1002:6610 0000 0000 oland : Oland XT [Radeon HD 8670 / R7 250/350] 1002:6610 1019 0030 oland : Radeon HD 8670 1002:6610 1028 2120 oland : Radeon R7 250 1002:6610 1028 2322 oland : Radeon R7 250 1002:6610 1462 2910 oland : Radeon HD 8670 1002:6610 1462 2911 oland : Radeon HD 8670 1002:6610 148c 7350 oland : Radeon R7 350 1002:6610 1642 3c81 oland : Radeon HD 8670 1002:6610 1642 3c91 oland : Radeon HD 8670 1002:6610 1642 3f09 oland : Radeon R7 350 1002:6611 0000 0000 oland : Oland [Radeon HD 8570 / R7 240/340 OEM] 1002:6611 1028 210b oland : Radeon R5 240 OEM 1002:6611 174b 4248 oland : Radeon R7 240 OEM 1002:6611 174b a240 oland : Radeon R7 240 OEM 1002:6611 174b d340 oland : Radeon R7 340 OEM 1002:6611 1b0a 90d3 oland : Radeon R7 240 OEM 1002:6613 0000 0000 oland : Oland PRO [Radeon R7 240/340] 1002:6613 148c 7340 oland : Radeon R7 340 1002:6613 1682 7240 oland : R7 240 2048 MB 1002:6641 0000 0000 saturn : Saturn PRO [Radeon HD 8930M] 1002:6646 0000 0000 bonaire : Bonaire XT [Radeon R9 M280X] 1002:6647 0000 0000 bonaire : Bonaire PRO [Radeon R9 M270X] 1002:6658 0000 0000 bonaire : Bonaire XTX [Radeon R7 260X/360] 1002:6658 148c 0907 bonaire : Radeon R7 360 1002:6658 1682 0907 bonaire : Radeon R7 360 1002:6658 1682 7360 bonaire : Radeon R7 360 1002:665c 0000 0000 bonaire : Bonaire XT [Radeon HD 7790/8770 / R7 360 / R9 260/360 OEM] 1002:665c 1043 0452 bonaire : Radeon HD 7790 DirectCU II OC 1002:665c 1462 2930 bonaire : Radeon HD 7790 OC 1002:665c 1462 2932 bonaire : Radeon HD 8770 1002:665c 1462 2934 bonaire : Radeon R9 260 OEM 1002:665c 1462 2938 bonaire : Radeon R9 360 OEM 1002:665c 148c 0907 bonaire : Radeon R7 360 1002:665c 148c 9260 bonaire : Radeon R9 260 OEM 1002:665c 148c 9360 bonaire : Radeon R9 360 OEM 1002:665c 1682 0907 bonaire : Radeon R7 360 1002:665c 1682 3310 bonaire : Radeon HD 7790 Black Edition 2 GB 1002:665c 174b e253 bonaire : Radeon HD 7790 Dual-X OC 1002:665c 1787 2329 bonaire : Radeon HD 7790 TurboDuo 1002:665d 0000 0000 bonaire : Bonaire [Radeon R7 200 Series] 1002:665f 0000 0000 tobago : Tobago PRO [Radeon R7 360 / R9 360 OEM] 1002:665f 1028 0b04 tobago : Radeon R9 360 OEM 1002:665f 1462 2938 tobago : Radeon R9 360 OEM 1002:665f 1462 3271 tobago : Radeon R9 360 OEM 1002:665f 1682 7360 tobago : Radeon R7 360 1002:6660 0000 0000 sun : Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520] 1002:6660 1028 05ea sun : Radeon HD 8670M 1002:6660 1028 06bf sun : Radeon R5 M335 1002:6660 103c 1970 sun : Radeon HD 8670M 1002:6660 103c 80be sun : Radeon R5 M330 1002:6660 103c 8136 sun : Radeon R5 M330 1002:6660 103c 8329 sun : Radeon R7 M520 1002:6660 17aa 3633 sun : Radeon R5 A330 1002:6660 17aa 3804 sun : Radeon R5 M330 1002:6660 17aa 3809 sun : Radeon R5 M330 1002:6660 17aa 381a sun : Radeon R5 M430 1002:6660 17aa 390c sun : Radeon R5 M330 1002:6663 0000 0000 sun : Sun PRO [Radeon HD 8570A/8570M] 1002:6663 1025 0846 sun : Radeon HD 8570A 1002:6663 17aa 3805 sun : Radeon HD 8570M 1002:6664 0000 0000 jet : Jet XT [Radeon R5 M240] 1002:6665 0000 0000 jet : Jet PRO [Radeon R5 M230] 1002:6665 17aa 368f jet : Radeon R5 A230 1002:6667 0000 0000 jet : Jet ULT [Radeon R5 M230] 1002:666f 0000 0000 sun : Sun LE [Radeon HD 8550M / R5 M230] 1002:66a0 0000 0000 vega20 : Vega 20 [Radeon Instinct] 1002:66a1 0000 0000 vega20 : Vega 20 1002:66a2 0000 0000 vega20 : Vega 20 1002:66a3 0000 0000 vega20 : Vega 20 1002:66a7 0000 0000 vega20 : Vega 20 [Radeon Pro Vega 20] 1002:66af 0000 0000 vega20 : Vega 20 1002:7360 0000 0000 navi12 : Navi 12 1002:73a1 0000 0000 navi21 : Navi 21 1002:73a2 0000 0000 navi21 : Navi 21 1002:73a3 0000 0000 navi21 : Navi 21 1002:73a4 0000 0000 navi21 : Navi 21 1002:73a5 0000 0000 navi21 : Navi 21 1002:73a6 0000 0000 navi21 : Navi 21 1002:73ae 0000 0000 navi21 : Navi 21 1002:73bf 0000 0000 navi21 : Navi 21 1002:73c8 0000 0000 n3a : n3a 1002:7408 0000 0000 NRAXJ2 : NRAXJ2 1002:740c 0000 0000 NRAXJ2 : NRAXJ2 1002:740f 0000 0000 NRAXJ2 : NRAXJ2 1002:7410 0000 0000 NRAXJ2 : NRAXJ2 1002:6718 0000 0000 cayman : Cayman XT [Radeon HD 6970] 1002:6719 0000 0000 cayman : Cayman PRO [Radeon HD 6950] 1002:671c 0000 0000 antilles : Antilles [Radeon HD 6990] 1002:671d 0000 0000 antilles : Antilles [Radeon HD 6990] 1002:671f 0000 0000 cayman : Cayman CE [Radeon HD 6930] 1002:6720 0000 0000 blackcomb : Blackcomb [Radeon HD 6970M/6990M] 1002:6720 1028 048f blackcomb : Radeon HD 6990M 1002:6720 1028 0490 blackcomb : Alienware M17x R3 Radeon HD 6970M 1002:6720 1028 04a4 blackcomb : FirePro M8900 1002:6720 1028 04ba blackcomb : Radeon HD 6990M 1002:6720 1028 053f blackcomb : FirePro M8900 1002:6720 106b 0b00 blackcomb : Radeon HD 6970M 1002:6720 1558 5102 blackcomb : Radeon HD 6970M 1002:6720 1558 5104 blackcomb : Radeon HD 6990M 1002:6720 1558 7201 blackcomb : Radeon HD 6990M 1002:6720 174b e188 blackcomb : Radeon HD 6970M 1002:6738 0000 0000 barts : Barts XT [Radeon HD 6870] 1002:6738 1682 3103 barts : Radeon HD 8670 1002:6738 1787 201a barts : Barts XT [Radeon HD 6870 X2] 1002:6738 1787 201b barts : Barts XT [Radeon HD 6870 X2] 1002:6739 0000 0000 barts : Barts PRO [Radeon HD 6850] 1002:6739 1043 03b4 barts : EAH6850 [Radeon HD 6850] 1002:673e 0000 0000 barts : Barts LE [Radeon HD 6790] 1002:673e 148c 7720 barts : Radeon HD 7720 OEM 1002:6740 0000 0000 whistler : Whistler [Radeon HD 6730M/6770M/7690M XT] 1002:6740 1019 238c whistler : Radeon HD 6730M 1002:6740 1019 238e whistler : Radeon HD 6730M 1002:6740 1019 2391 whistler : Radeon HD 6730M 1002:6740 1019 2392 whistler : Radeon HD 6770M 1002:6740 1028 04a3 whistler : Precision M4600 1002:6740 1028 053e whistler : FirePro M5950 1002:6740 103c 1630 whistler : FirePro M5950 1002:6740 103c 1631 whistler : FirePro M5950 1002:6740 103c 164b whistler : Radeon HD 6730M 1002:6740 103c 164e whistler : Radeon HD 6730M 1002:6740 103c 1657 whistler : Radeon HD 6770M 1002:6740 103c 1658 whistler : Radeon HD 6770M 1002:6740 103c 165a whistler : Radeon HD 6770M 1002:6740 103c 165b whistler : Radeon HD 6770M 1002:6740 103c 1688 whistler : Radeon HD 6770M 1002:6740 103c 1689 whistler : Radeon HD 6770M 1002:6740 103c 168a whistler : Radeon HD 6770M 1002:6740 103c 185e whistler : Radeon HD 7690M XT 1002:6740 103c 3388 whistler : Radeon HD 6770M 1002:6740 103c 3389 whistler : Radeon HD 6770M 1002:6740 103c 3582 whistler : Radeon HD 6770M 1002:6740 103c 366c whistler : Radeon HD 6730M 1002:6740 1043 1d02 whistler : Radeon HD 6730M 1002:6740 1043 1d12 whistler : Radeon HD 6730M 1002:6740 104d 9084 whistler : Radeon HD 6730M 1002:6740 104d 9085 whistler : Radeon HD 6730M 1002:6740 144d b074 whistler : Radeon HD 6730M 1002:6740 144d b077 whistler : Radeon HD 6730M 1002:6740 144d b084 whistler : Radeon HD 6730M 1002:6740 144d b088 whistler : Radeon HD 6730M 1002:6740 17aa 3982 whistler : Radeon HD 6730M 1002:6741 0000 0000 whistler : Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] 1002:6741 1019 238e whistler : Radeon HD 6650M 1002:6741 1019 238f whistler : Radeon HD 6650M 1002:6741 1025 0379 whistler : Radeon HD 6650M 1002:6741 1025 037b whistler : Radeon HD 6650M 1002:6741 1025 037e whistler : Radeon HD 6650M 1002:6741 1025 0382 whistler : Radeon HD 6650M 1002:6741 1025 0384 whistler : Radeon HD 6650M 1002:6741 1025 0385 whistler : Radeon HD 6650M 1002:6741 1025 0386 whistler : Radeon HD 6650M 1002:6741 1025 0387 whistler : Radeon HD 6650M 1002:6741 1025 0388 whistler : Radeon HD 6650M 1002:6741 1025 0442 whistler : Radeon HD 6650M 1002:6741 1025 0451 whistler : Radeon HD 6650M 1002:6741 1025 0489 whistler : Radeon HD 6650M 1002:6741 1025 048b whistler : Radeon HD 6650M 1002:6741 1025 048c whistler : Radeon HD 6650M 1002:6741 1025 050a whistler : Radeon HD 6650M 1002:6741 1025 050b whistler : Radeon HD 6650M 1002:6741 1025 050c whistler : Radeon HD 6650M 1002:6741 1025 050e whistler : Radeon HD 6650M 1002:6741 1025 050f whistler : Radeon HD 6650M 1002:6741 1025 0513 whistler : Radeon HD 6650M 1002:6741 1025 0514 whistler : Radeon HD 6650M 1002:6741 1025 0515 whistler : Radeon HD 6650M 1002:6741 1025 0516 whistler : Radeon HD 6650M 1002:6741 1025 051e whistler : Radeon HD 6650M 1002:6741 1025 051f whistler : Radeon HD 6650M 1002:6741 1025 0520 whistler : Radeon HD 6650M 1002:6741 1025 0521 whistler : Radeon HD 6650M 1002:6741 1025 052a whistler : Radeon HD 6650M 1002:6741 1025 0555 whistler : Radeon HD 6650M 1002:6741 1025 0556 whistler : Radeon HD 6650M 1002:6741 1025 055d whistler : Radeon HD 6650M 1002:6741 1025 055e whistler : Radeon HD 6650M 1002:6741 1025 056d whistler : Radeon HD 6650M 1002:6741 1025 059a whistler : Radeon HD 6650M 1002:6741 1025 059b whistler : Radeon HD 6650M 1002:6741 1025 059e whistler : Radeon HD 6650M 1002:6741 1025 059f whistler : Radeon HD 6650M 1002:6741 1025 0600 whistler : Radeon HD 6650M 1002:6741 1025 0605 whistler : Radeon HD 6650M 1002:6741 1025 0606 whistler : Radeon HD 6650M 1002:6741 1025 0619 whistler : Radeon HD 6650M 1002:6741 1028 04c1 whistler : Radeon HD 6630M 1002:6741 1028 04c5 whistler : Radeon HD 6630M 1002:6741 1028 04cd whistler : Radeon HD 6630M 1002:6741 1028 04d7 whistler : Radeon HD 6630M 1002:6741 1028 04d9 whistler : Radeon HD 6630M 1002:6741 1028 052d whistler : Radeon HD 6630M 1002:6741 103c 1617 whistler : Radeon HD 6650M 1002:6741 103c 1646 whistler : Radeon HD 6750M 1002:6741 103c 1647 whistler : Radeon HD 6650M 1002:6741 103c 164b whistler : Radeon HD 6650M 1002:6741 103c 164e whistler : Radeon HD 6650M 1002:6741 103c 1688 whistler : Radeon HD 6750M 1002:6741 103c 1689 whistler : Radeon HD 6750M 1002:6741 103c 168a whistler : Radeon HD 6750M 1002:6741 103c 1860 whistler : Radeon HD 7690M 1002:6741 103c 3385 whistler : Radeon HD 6630M 1002:6741 103c 3560 whistler : Radeon HD 6750M 1002:6741 103c 358d whistler : Radeon HD 6750M 1002:6741 103c 3590 whistler : Radeon HD 6750M 1002:6741 103c 3593 whistler : Radeon HD 6750M 1002:6741 103c 366c whistler : Radeon HD 6650M 1002:6741 1043 1cd2 whistler : Radeon HD 6650M 1002:6741 1043 2121 whistler : Radeon HD 6650M 1002:6741 1043 2122 whistler : Radeon HD 6650M 1002:6741 1043 2123 whistler : Radeon HD 6650M 1002:6741 1043 2125 whistler : Radeon HD 7670M 1002:6741 1043 2127 whistler : Radeon HD 7670M 1002:6741 104d 907b whistler : Radeon HD 6630M 1002:6741 104d 9080 whistler : Radeon HD 6630M 1002:6741 104d 9081 whistler : Radeon HD 6630M 1002:6741 106b 00e2 whistler : MacBookPro8,2 [Core i7, 15", Late 2011] 1002:6741 1179 fd63 whistler : Radeon HD 6630M 1002:6741 1179 fd65 whistler : Radeon HD 6630M 1002:6741 144d c093 whistler : Radeon HD 6650M 1002:6741 144d c0ac whistler : Radeon HD 6650M 1002:6741 144d c0b3 whistler : Radeon HD 6750M 1002:6741 144d c539 whistler : Radeon HD 6630M 1002:6741 144d c609 whistler : Radeon HD 6630M 1002:6741 152d 0914 whistler : Radeon HD 6650M 1002:6741 17aa 21e1 whistler : Radeon HD 6630M 1002:6741 17aa 3970 whistler : Radeon HD 6650M 1002:6741 17aa 3976 whistler : Radeon HD 6650M 1002:6741 1854 0907 whistler : Radeon HD 6650M 1002:6742 0000 0000 whistler : Whistler LE [Radeon HD 6610M/7610M] 1002:6742 1002 6570 whistler : Turks [Radeon HD 6570] 1002:6742 1019 2393 whistler : Radeon HD 6610M 1002:6742 1043 1d82 whistler : K53SK Laptop Radeon HD 7610M 1002:6742 1179 fb22 whistler : Radeon HD 7610M 1002:6742 1179 fb23 whistler : Radeon HD 7610M 1002:6742 1179 fb27 whistler : Radeon HD 7610M 1002:6742 1179 fb2a whistler : Radeon HD 7610M 1002:6742 1179 fb2c whistler : Radeon HD 7610M 1002:6742 1179 fb30 whistler : Radeon HD 7610M 1002:6742 1179 fb31 whistler : Radeon HD 7610M 1002:6742 1179 fb32 whistler : Radeon HD 7610M 1002:6742 1179 fb38 whistler : Radeon HD 7610M 1002:6742 1179 fb39 whistler : Radeon HD 7610M 1002:6742 1179 fb3a whistler : Radeon HD 7610M 1002:6742 1179 fb3b whistler : Radeon HD 7610M 1002:6742 1179 fb40 whistler : Radeon HD 7610M 1002:6742 1179 fb41 whistler : Radeon HD 7610M 1002:6742 1179 fb47 whistler : Radeon HD 7610M 1002:6742 1179 fb48 whistler : Radeon HD 7610M 1002:6742 1179 fb49 whistler : Radeon HD 7610M 1002:6742 1179 fb51 whistler : Radeon HD 7610M 1002:6742 1179 fb52 whistler : Radeon HD 7610M 1002:6742 1179 fb53 whistler : Radeon HD 7610M 1002:6742 1179 fb56 whistler : Radeon HD 7610M 1002:6742 1179 fb81 whistler : Radeon HD 7610M 1002:6742 1179 fb82 whistler : Radeon HD 7610M 1002:6742 1179 fb83 whistler : Radeon HD 7610M 1002:6742 1179 fc56 whistler : Radeon HD 7610M 1002:6742 1179 fcd4 whistler : Radeon HD 7610M 1002:6742 1179 fcee whistler : Radeon HD 7610M 1002:6742 1458 6570 whistler : Turks [Radeon HD 6570] 1002:6742 1462 6570 whistler : Turks [Radeon HD 6570] 1002:6742 148c 6570 whistler : Turks [Radeon HD 6570] 1002:6742 1682 6570 whistler : Turks [Radeon HD 6570] 1002:6742 174b 5570 whistler : Turks [Radeon HD 5570] 1002:6742 174b 6570 whistler : Turks [Radeon HD 6570] 1002:6742 174b 7570 whistler : Turks [Radeon HD 7570] 1002:6742 174b 8510 whistler : Turks [Radeon HD 8510] 1002:6742 174b 8570 whistler : Turks [Radeon HD 8570] 1002:6742 1787 6570 whistler : Turks [Radeon HD 6570] 1002:6742 17af 6570 whistler : Turks [Radeon HD 6570] 1002:6742 8086 2111 whistler : Radeon HD 6625M 1002:6743 0000 0000 whistler : Whistler [Radeon E6760] 1002:6750 0000 0000 onega : Onega [Radeon HD 6650A/7650A] 1002:6750 1462 2670 onega : Radeon HD 6670A 1002:6750 17aa 3079 onega : Radeon HD 7650A 1002:6750 17aa 307a onega : Radeon HD 6650A 1002:6750 17aa 3087 onega : Radeon HD 7650A 1002:6750 17aa 3618 onega : Radeon HD 6650A 1002:6750 17aa 3623 onega : Radeon HD 6650A 1002:6750 17aa 3627 onega : Radeon HD 6650A 1002:6751 0000 0000 turks : Turks [Radeon HD 7650A/7670A] 1002:6751 1028 0548 turks : Radeon HD 7650A 1002:6751 1462 2671 turks : Radeon HD 7670A 1002:6751 1462 2672 turks : Radeon HD 7670A 1002:6751 1462 2680 turks : Radeon HD 7650A 1002:6751 1462 2681 turks : Radeon HD 7650A 1002:6751 17aa 3087 turks : Radeon HD 7650A 1002:6758 0000 0000 turks : Turks XT [Radeon HD 6670/7670] 1002:6758 1028 0b0e turks : Radeon HD 6670 1002:6758 103c 6882 turks : Radeon HD 6670 1002:6758 1462 250a turks : Radeon HD 7670 1002:6758 148c 7670 turks : Radeon HD 7670 1002:6758 1545 7670 turks : Radeon HD 7670 1002:6758 1682 3300 turks : Radeon HD 7670 1002:6758 174b 7670 turks : Radeon HD 7670 1002:6758 174b e181 turks : Radeon HD 6670 1002:6758 1787 2309 turks : Radeon HD 6670 1002:6759 0000 0000 turks : Turks PRO [Radeon HD 6570/7570/8550] 1002:6759 103c 3130 turks : Radeon HD 6570 1002:6759 1043 0403 turks : Radeon HD 6570 1002:6759 1462 2500 turks : Radeon HD 6570 1002:6759 1462 2509 turks : Radeon HD 7570 1002:6759 148c 7570 turks : Radeon HD 7570 1002:6759 1642 3a67 turks : Radeon HD 6570 1002:6759 1682 3280 turks : Radeon HD 7570 1002:6759 1682 3530 turks : Radeon HD 8550 1002:6759 174b 7570 turks : Radeon HD 7570 1002:6759 174b e142 turks : Radeon HD 6570 1002:6759 174b e181 turks : Radeon HD 6570 1002:6759 1b0a 908f turks : Radeon HD 6570 1002:6759 1b0a 9090 turks : Radeon HD 6570 1002:6759 1b0a 9091 turks : Radeon HD 6570 1002:6759 1b0a 9092 turks : Radeon HD 6570 1002:6759 1b0a 909e turks : Radeon HD 6570 1002:6759 1b0a 90b5 turks : Radeon HD 7570 1002:6759 1b0a 90b6 turks : Radeon HD 7570 1002:675b 0000 0000 turks : Turks [Radeon HD 7600 Series] 1002:675d 0000 0000 turks : Turks PRO [Radeon HD 7570] 1002:675f 0000 0000 turks : Turks LE [Radeon HD 5570/6510/7510/8510] 1002:675f 148c 6510 turks : Radeon HD 6510 1002:675f 148c 6530 turks : Radeon HD 6530 1002:675f 148c 7510 turks : Radeon HD 7510 1002:675f 1545 7570 turks : Radeon HD 7570 1002:675f 174b 6510 turks : Radeon HD 6510 1002:675f 174b 7510 turks : Radeon HD 7510 1002:675f 174b 8510 turks : Radeon HD 8510 1002:675f 1787 2012 turks : Radeon HD 5570 2GB GDDR3 1002:675f 1787 2314 turks : Radeon HD 5570 1GB DDR2/GDDR3 1002:6760 0000 0000 seymour : Seymour [Radeon HD 6400M/7400M Series] 1002:6760 1002 0124 seymour : Radeon HD 6470M 1002:6760 1002 0134 seymour : Radeon HD 6470M 1002:6760 1019 238b seymour : Radeon HD 6470M 1002:6760 1019 238e seymour : Radeon HD 6470M 1002:6760 1019 2390 seymour : Radeon HD 6470M 1002:6760 1019 9985 seymour : Radeon HD 6470M 1002:6760 1028 04c1 seymour : Radeon HD 6470M 1002:6760 1028 04c3 seymour : Radeon HD 6470M 1002:6760 1028 04ca seymour : Radeon HD 6470M 1002:6760 1028 04cb seymour : Radeon HD 6470M 1002:6760 1028 04cc seymour : Vostro 3350 1002:6760 1028 04d1 seymour : Radeon HD 6470M 1002:6760 1028 04d3 seymour : Radeon HD 6470M 1002:6760 1028 04d7 seymour : Radeon HD 6470M 1002:6760 1028 0502 seymour : Radeon HD 6470M 1002:6760 1028 0503 seymour : Radeon HD 6470M 1002:6760 1028 0506 seymour : Radeon HD 6470M 1002:6760 1028 0507 seymour : Radeon HD 6470M 1002:6760 1028 0514 seymour : Radeon HD 6470M 1002:6760 1028 051c seymour : Radeon HD 6450M 1002:6760 1028 051d seymour : Radeon HD 6450M 1002:6760 103c 161a seymour : Radeon HD 6470M 1002:6760 103c 161b seymour : Radeon HD 6470M 1002:6760 103c 161e seymour : Radeon HD 6470M 1002:6760 103c 161f seymour : Radeon HD 6470M 1002:6760 103c 1622 seymour : Radeon HD 6450M 1002:6760 103c 1623 seymour : Radeon HD 6450M 1002:6760 103c 164a seymour : Radeon HD 6470M 1002:6760 103c 164d seymour : Radeon HD 6470M 1002:6760 103c 1651 seymour : Radeon HD 6470M 1002:6760 103c 1656 seymour : Radeon HD 6490M 1002:6760 103c 1658 seymour : Radeon HD 6490M 1002:6760 103c 1659 seymour : Radeon HD 6490M 1002:6760 103c 165b seymour : Radeon HD 6490M 1002:6760 103c 165d seymour : Radeon HD 6470M 1002:6760 103c 165f seymour : Radeon HD 6470M 1002:6760 103c 1661 seymour : Radeon HD 6470M 1002:6760 103c 1663 seymour : Radeon HD 6470M 1002:6760 103c 1665 seymour : Radeon HD 6470M 1002:6760 103c 1667 seymour : Radeon HD 6470M 1002:6760 103c 1669 seymour : Radeon HD 6470M 1002:6760 103c 166b seymour : Radeon HD 6470M 1002:6760 103c 166c seymour : Radeon HD 6470M 1002:6760 103c 166e seymour : Radeon HD 6470M 1002:6760 103c 1670 seymour : Radeon HD 6470M 1002:6760 103c 1672 seymour : Radeon HD 6470M 1002:6760 103c 167a seymour : Radeon HD 6470M 1002:6760 103c 167b seymour : Radeon HD 6470M 1002:6760 103c 167d seymour : Radeon HD 6490M 1002:6760 103c 167f seymour : Radeon HD 6490M 1002:6760 103c 168c seymour : Radeon HD 6470M 1002:6760 103c 168f seymour : Radeon HD 6470M 1002:6760 103c 1694 seymour : Radeon HD 6470M 1002:6760 103c 1696 seymour : Radeon HD 6470M 1002:6760 103c 1698 seymour : Radeon HD 6470M 1002:6760 103c 169a seymour : Radeon HD 6470M 1002:6760 103c 169c seymour : Radeon HD 6490M 1002:6760 103c 1855 seymour : Radeon HD 7450M 1002:6760 103c 1859 seymour : Radeon HD 7450M 1002:6760 103c 185c seymour : Radeon HD 7450M 1002:6760 103c 185d seymour : Radeon HD 7470M 1002:6760 103c 185f seymour : Radeon HD 7470M 1002:6760 103c 1863 seymour : Radeon HD 7450M 1002:6760 103c 355c seymour : Radeon HD 6490M 1002:6760 103c 355f seymour : Radeon HD 6490M 1002:6760 103c 3563 seymour : Radeon HD 6470M 1002:6760 103c 3565 seymour : Radeon HD 6470M 1002:6760 103c 3567 seymour : Radeon HD 6470M 1002:6760 103c 3569 seymour : Radeon HD 6470M 1002:6760 103c 3581 seymour : Radeon HD 6490M 1002:6760 103c 3584 seymour : Radeon HD 6470M 1002:6760 103c 358c seymour : Radeon HD 6490M 1002:6760 103c 358f seymour : Radeon HD 6490M 1002:6760 103c 3592 seymour : Radeon HD 6490M 1002:6760 103c 3596 seymour : Radeon HD 6490M 1002:6760 103c 366b seymour : Radeon HD 6470M 1002:6760 103c 3671 seymour : FirePro M3900 1002:6760 103c 3673 seymour : Radeon HD 6470M 1002:6760 1043 100a seymour : Radeon HD 7470M 1002:6760 1043 100c seymour : Radeon HD 6470M 1002:6760 1043 101b seymour : Radeon HD 6470M 1002:6760 1043 101c seymour : Radeon HD 6470M 1002:6760 1043 102a seymour : Radeon HD 7450M 1002:6760 1043 102c seymour : Radeon HD 6470M 1002:6760 1043 104b seymour : Radeon HD 7470M 1002:6760 1043 105d seymour : Radeon HD 7470M 1002:6760 1043 106b seymour : Radeon HD 7470M 1002:6760 1043 106d seymour : Radeon HD 7470M 1002:6760 1043 107d seymour : Radeon HD 7470M 1002:6760 1043 1cb2 seymour : Radeon HD 6470M 1002:6760 1043 1d22 seymour : Radeon HD 6470M 1002:6760 1043 1d32 seymour : Radeon HD 6470M 1002:6760 1043 2001 seymour : Radeon HD 6470M 1002:6760 1043 2002 seymour : Radeon HD 7470M 1002:6760 1043 2107 seymour : Radeon HD 7470M 1002:6760 1043 2108 seymour : Radeon HD 7470M 1002:6760 1043 2109 seymour : Radeon HD 7470M 1002:6760 1043 84a0 seymour : Radeon HD 6470M 1002:6760 1043 84e9 seymour : Radeon HD 6470M 1002:6760 1043 8515 seymour : Radeon HD 7470M 1002:6760 1043 8517 seymour : Radeon HD 7470M 1002:6760 1043 855a seymour : Radeon HD 7470M 1002:6760 104d 907b seymour : Radeon HD 6470M 1002:6760 104d 9081 seymour : Radeon HD 6470M 1002:6760 104d 9084 seymour : Radeon HD 6470M 1002:6760 104d 9085 seymour : Radeon HD 6470M 1002:6760 1179 0001 seymour : Radeon HD 6450M 1002:6760 1179 0003 seymour : Radeon HD 6450M 1002:6760 1179 0004 seymour : Radeon HD 6450M 1002:6760 1179 fb22 seymour : Radeon HD 7470M 1002:6760 1179 fb23 seymour : Radeon HD 7470M 1002:6760 1179 fb2c seymour : Radeon HD 7470M 1002:6760 1179 fb31 seymour : Radeon HD 7470M 1002:6760 1179 fb32 seymour : Radeon HD 7470M 1002:6760 1179 fb33 seymour : Radeon HD 7470M 1002:6760 1179 fb38 seymour : Radeon HD 7470M 1002:6760 1179 fb39 seymour : Radeon HD 7470M 1002:6760 1179 fb3a seymour : Radeon HD 7470M 1002:6760 1179 fb40 seymour : Radeon HD 7470M 1002:6760 1179 fb41 seymour : Radeon HD 7470M 1002:6760 1179 fb42 seymour : Radeon HD 7470M 1002:6760 1179 fb47 seymour : Radeon HD 7470M 1002:6760 1179 fb48 seymour : Radeon HD 7470M 1002:6760 1179 fb51 seymour : Radeon HD 7470M 1002:6760 1179 fb52 seymour : Radeon HD 7470M 1002:6760 1179 fb53 seymour : Radeon HD 7470M 1002:6760 1179 fb81 seymour : Radeon HD 7470M 1002:6760 1179 fb82 seymour : Radeon HD 7470M 1002:6760 1179 fb83 seymour : Radeon HD 7470M 1002:6760 1179 fc51 seymour : Radeon HD 6470M 1002:6760 1179 fc52 seymour : Radeon HD 7470M 1002:6760 1179 fc56 seymour : Radeon HD 7470M 1002:6760 1179 fcd3 seymour : Radeon HD 7470M 1002:6760 1179 fcd4 seymour : Radeon HD 7470M 1002:6760 1179 fcee seymour : Radeon HD 7470M 1002:6760 1179 fdee seymour : Radeon HD 7470M 1002:6760 144d b074 seymour : Radeon HD 6470M 1002:6760 144d b084 seymour : Radeon HD 6470M 1002:6760 144d c095 seymour : Radeon HD 6470M 1002:6760 144d c0b3 seymour : Radeon HD 6490M 1002:6760 144d c538 seymour : Radeon HD 6470M 1002:6760 144d c581 seymour : Radeon HD 6470M 1002:6760 144d c589 seymour : Radeon HD 6470M 1002:6760 144d c609 seymour : Radeon HD 7470M 1002:6760 144d c625 seymour : Radeon HD 7470M 1002:6760 144d c636 seymour : Radeon HD 7450M 1002:6760 1462 10ac seymour : Radeon HD 6470M 1002:6760 152d 0916 seymour : Radeon HD 6470M 1002:6760 17aa 21e5 seymour : Radeon HD 6470M 1002:6760 17aa 3900 seymour : Radeon HD 7450M 1002:6760 17aa 3902 seymour : Radeon HD 7450M 1002:6760 17aa 3969 seymour : Radeon HD 6470M 1002:6760 17aa 3970 seymour : Radeon HD 7450M 1002:6760 17aa 3976 seymour : Radeon HD 6470M 1002:6760 17aa 397b seymour : Radeon HD 6470M 1002:6760 17aa 397d seymour : Radeon HD 6470M 1002:6760 17aa 5101 seymour : Radeon HD 7470M 1002:6760 17aa 5102 seymour : Radeon HD 7450M 1002:6760 17aa 5103 seymour : Radeon HD 7450M 1002:6760 17aa 5106 seymour : Radeon HD 7450M 1002:6760 1854 0897 seymour : Radeon HD 6470M 1002:6760 1854 0900 seymour : Radeon HD 6470M 1002:6760 1854 0908 seymour : Radeon HD 6470M 1002:6760 1854 2015 seymour : Radeon HD 6470M 1002:6761 0000 0000 seymour : Seymour LP [Radeon HD 6430M] 1002:6763 0000 0000 seymour : Seymour [Radeon E6460] 1002:6764 0000 0000 seymour : Seymour [Radeon HD 6400M Series] 1002:6765 0000 0000 seymour : Seymour [Radeon HD 6400M Series] 1002:6770 0000 0000 caicos : Caicos [Radeon HD 6450A/7450A] 1002:6770 17aa 308d caicos : Radeon HD 7450A 1002:6770 17aa 3623 caicos : Radeon HD 6450A 1002:6770 17aa 3627 caicos : Radeon HD 6450A 1002:6770 17aa 3629 caicos : Radeon HD 6450A 1002:6770 17aa 363c caicos : Radeon HD 6450A 1002:6770 17aa 3658 caicos : Radeon HD 7470A 1002:6771 0000 0000 caicos : Caicos XTX [Radeon HD 8490 / R5 235X OEM] 1002:6772 0000 0000 caicos : Caicos [Radeon HD 7450A] 1002:6778 0000 0000 caicos : Caicos XT [Radeon HD 7470/8470 / R5 235/310 OEM] 1002:6778 1019 0024 caicos : Radeon HD 7470 1002:6778 1019 0027 caicos : Radeon HD 8470 1002:6778 1028 2120 caicos : Radeon HD 7470 1002:6778 1462 b491 caicos : Radeon HD 8470 1002:6778 1462 b492 caicos : Radeon HD 8470 1002:6778 1462 b493 caicos : Radeon HD 8470 OEM 1002:6778 1462 b499 caicos : Radeon R5 235 OEM 1002:6778 1642 3c65 caicos : Radeon HD 8470 1002:6778 1642 3c75 caicos : Radeon HD 8470 1002:6778 174b 8145 caicos : Radeon HD 8470 1002:6778 174b d145 caicos : Radeon R5 235 OEM 1002:6778 174b d335 caicos : Radeon R5 310 OEM 1002:6778 174b e145 caicos : Radeon HD 7470 1002:6778 17aa 3694 caicos : Radeon R5 A220 1002:6779 0000 0000 caicos : Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] 1002:6779 1019 0016 caicos : Radeon HD 6450 1002:6779 1019 0017 caicos : Radeon HD 6450 1002:6779 1019 0018 caicos : Radeon HD 6450 1002:6779 1028 2120 caicos : Radeon HD 6450 1002:6779 103c 2128 caicos : Radeon HD 6450 1002:6779 103c 2aee caicos : Radeon HD 7450A 1002:6779 1462 2125 caicos : Radeon HD 6450 1002:6779 1462 2346 caicos : Radeon HD 7450 1002:6779 1462 2490 caicos : Radeon HD 6450 1002:6779 1462 2494 caicos : Radeon HD 6450 1002:6779 1462 2496 caicos : Radeon HD 7450 1002:6779 148c 7450 caicos : Radeon HD 7450 1002:6779 148c 8450 caicos : Radeon HD 8450 OEM 1002:6779 1545 7470 caicos : Radeon HD 7470 1002:6779 1642 3a65 caicos : Radeon HD 6450 1002:6779 1642 3a66 caicos : Radeon HD 7450 1002:6779 1642 3a75 caicos : Radeon HD 6450 1002:6779 1642 3a76 caicos : Radeon HD 7450 1002:6779 1682 3200 caicos : Radeon HD 7450 1002:6779 174b 7450 caicos : Radeon HD 7450 1002:6779 174b e127 caicos : Radeon HD 6450 1002:6779 174b e153 caicos : Radeon HD 6450 1002:6779 174b e164 caicos : Radeon HD 6450 1 GB DDR3 1002:6779 174b e180 caicos : Radeon HD 6450 1002:6779 174b e201 caicos : Radeon HD 6450 1002:6779 17af 8450 caicos : Radeon HD 8450 OEM 1002:6779 1b0a 9096 caicos : Radeon HD 6450 1002:6779 1b0a 9097 caicos : Radeon HD 6450 1002:6779 1b0a 90a8 caicos : Radeon HD 6450A 1002:6779 1b0a 90b1 caicos : Radeon HD 6450 1002:6779 1b0a 90b3 caicos : Radeon HD 7450A 1002:6779 1b0a 90bb caicos : Radeon HD 7450A 1002:677b 0000 0000 caicos : Caicos PRO [Radeon HD 7450] 1002:6798 0000 0000 tahiti : Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] 1002:6798 1002 3000 tahiti : Tahiti XT2 [Radeon HD 7970 GHz Edition] 1002:6798 1002 3001 tahiti : Tahiti XTL [Radeon R9 280X] 1002:6798 1002 4000 tahiti : Radeon HD 8970 OEM 1002:6798 1043 041c tahiti : HD 7970 DirectCU II 1002:6798 1043 0420 tahiti : HD 7970 DirectCU II TOP 1002:6798 1043 0444 tahiti : HD 7970 DirectCU II TOP 1002:6798 1043 0448 tahiti : HD 7970 DirectCU II TOP 1002:6798 1043 044a tahiti : Tahiti XT2 [Matrix HD 7970] 1002:6798 1043 044c tahiti : Tahiti XT2 [Matrix HD 7970 Platinum] 1002:6798 1043 3001 tahiti : Tahiti XTL [ROG Matrix R9 280X] 1002:6798 1043 3006 tahiti : Tahiti XTL [Radeon R9 280X DirectCU II TOP] 1002:6798 1043 9999 tahiti : ARES II 1002:6798 106b 0127 tahiti : FirePro D700 1002:6798 106b 0128 tahiti : FirePro D700 1002:6798 1092 3000 tahiti : Tahiti XT2 [Radeon HD 7970 GHz Edition] 1002:6798 1458 2261 tahiti : Tahiti XT2 [Radeon HD 7970 GHz Edition OC] 1002:6798 1458 3001 tahiti : Tahiti XTL [Radeon R9 280X OC] 1002:6798 1462 2774 tahiti : HD 7970 TwinFrozr III Boost Edition OC 1002:6798 1682 3001 tahiti : Tahiti XTL [Radeon R9 280X] 1002:6798 1682 3211 tahiti : Double D HD 7970 Black Edition 1002:6798 1682 3213 tahiti : HD 7970 Black Edition 1002:6798 1682 3214 tahiti : Double D HD 7970 1002:6798 1787 201c tahiti : HD 7970 IceQ X² 1002:6798 1787 2317 tahiti : Radeon HD 7990 1002:6798 1787 3000 tahiti : Tahiti XT2 [Radeon HD 7970 GHz Edition] 1002:679a 0000 0000 tahiti : Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] 1002:679a 1002 0b01 tahiti : Radeon HD 8950 OEM 1002:679a 1002 3000 tahiti : Tahiti PRO2 [Radeon HD 7950 Boost] 1002:679a 1462 3000 tahiti : Radeon HD 8950 OEM 1002:679a 174b a003 tahiti : Radeon R9 280 1002:679b 0000 0000 malta : Malta [Radeon HD 7990/8990 OEM] 1002:679b 1002 0b28 malta : Radeon HD 8990 OEM 1002:679b 1002 0b2a malta : Radeon HD 7990 1002:679b 1462 8036 malta : Radeon HD 8990 OEM 1002:679b 148c 8990 malta : Radeon HD 8990 OEM 1002:679e 0000 0000 tahiti : Tahiti LE [Radeon HD 7870 XT] 1002:679e 106b 0125 tahiti : FirePro D500 1002:679e 106b 0126 tahiti : FirePro D500 1002:679e 1787 2328 tahiti : Radeon HD 7870 Black Edition 2 GB GDDR5 [2GBD5-2DHV3E] 1002:67b0 0000 0000 hawaii : Hawaii XT / Grenada XT [Radeon R9 290X/390X] 1002:67b0 1028 0b00 hawaii : Grenada XT [Radeon R9 390X] 1002:67b0 103c 6566 hawaii : Radeon R9 390X 1002:67b0 1043 046a hawaii : R9 290X DirectCU II 1002:67b0 1043 046c hawaii : R9 290X DirectCU II OC 1002:67b0 1043 0474 hawaii : Matrix R9 290X Platinum 1002:67b0 1043 0476 hawaii : ARES III 1002:67b0 1043 04d7 hawaii : Radeon R9 390X 1002:67b0 1043 04db hawaii : Radeon R9 390X 1002:67b0 1043 04df hawaii : Radeon R9 390X 1002:67b0 1043 04e9 hawaii : Radeon R9 390X 1002:67b0 1458 227c hawaii : R9 290X WindForce 3X OC 1002:67b0 1458 2281 hawaii : R9 290X WindForce 3X OC 1002:67b0 1458 228c hawaii : R9 290X WindForce 3X 1002:67b0 1458 228d hawaii : R9 290X WindForce 3X OC 1002:67b0 1458 2290 hawaii : R9 290X WindForce 3X 1002:67b0 1458 22bc hawaii : Radeon R9 390X 1002:67b0 1458 22c1 hawaii : Grenada PRO [Radeon R9 390] 1002:67b0 1462 2015 hawaii : Radeon R9 390X 1002:67b0 1462 3070 hawaii : R9 290X Lightning 1002:67b0 1462 3071 hawaii : R9 290X Lightning 1002:67b0 1462 3072 hawaii : R9 290X Lightning LE 1002:67b0 1462 3080 hawaii : R9 290X Gaming 1002:67b0 1462 3082 hawaii : R9 290X Gaming OC 1002:67b0 148c 2347 hawaii : Devil 13 Dual Core R9 290X 1002:67b0 148c 2357 hawaii : Grenada XT [Radeon R9 390X] 1002:67b0 1682 9290 hawaii : Double Dissipation R9 290X 1002:67b0 1682 9395 hawaii : Grenada XT [Radeon R9 390X] 1002:67b0 174b 0e34 hawaii : Radeon R9 390X 1002:67b0 174b e282 hawaii : Vapor-X R9 290X Tri-X OC 1002:67b0 174b e285 hawaii : R9 290X Tri-X OC 1002:67b0 174b e324 hawaii : Grenada XT2 [Radeon R9 390X] 1002:67b0 1787 2020 hawaii : R9 290X IceQ X² Turbo 1002:67b0 1787 2357 hawaii : Grenada XT [Radeon R9 390X] 1002:67b1 0000 0000 hawaii : Hawaii PRO [Radeon R9 290/390] 1002:67b1 1043 04dd hawaii : STRIX R9 390 1002:67b1 148c 2358 hawaii : Radeon R9 390 1002:67b1 174b e324 hawaii : Sapphire Nitro R9 390 1002:67b9 0000 0000 vesuvius : Vesuvius [Radeon R9 295X2] 1002:67c0 0000 0000 ellesmere : Ellesmere [Radeon Pro WX 7100 Mobile] 1002:67c2 0000 0000 ellesmere : Ellesmere [Radeon Pro V7300X / V7350x2] 1002:67c4 0000 0000 ellesmere : Ellesmere [Radeon Pro WX 7100] 1002:67c4 1002 0336 ellesmere : Radeon Pro Duo 1002:67c4 1002 1336 ellesmere : Radeon Pro Duo 1002:67c7 0000 0000 ellesmere : Ellesmere [Radeon Pro WX 5100] 1002:67d0 0000 0000 ellesmere : Ellesmere [Radeon Pro V7300X / V7350x2] 1002:67df 0000 0000 ellesmere : Ellesmere [Radeon RX 470/480/570/570X/580/580X] 1002:67df 1002 0b37 ellesmere : Radeon RX 480 1002:67df 1028 1722 ellesmere : Radeon RX 570X 1002:67df 1028 1723 ellesmere : Radeon RX 580X 1002:67df 1043 04a8 ellesmere : Radeon RX 480 1002:67df 1043 04b0 ellesmere : Radeon RX 470 1002:67df 1043 04fb ellesmere : Radeon RX 480 1002:67df 1043 04fd ellesmere : Radeon RX 480 8GB 1002:67df 106b 0161 ellesmere : Radeon Pro 580 1002:67df 106b 0162 ellesmere : Radeon Pro 575 1002:67df 106b 0163 ellesmere : Radeon Pro 570 1002:67df 1458 22f0 ellesmere : Radeon RX 570 1002:67df 1458 22f7 ellesmere : Radeon RX 570 Gaming 4G 1002:67df 1462 3411 ellesmere : Radeon RX 470 1002:67df 1462 3413 ellesmere : Radeon RX 480 Gaming X 8GB 1002:67df 1462 3416 ellesmere : Radeon RX 570 1002:67df 1462 3418 ellesmere : Radeon RX 580 Armor 4G OC 1002:67df 148c 2372 ellesmere : Radeon RX 480 1002:67df 148c 2373 ellesmere : Radeon RX 470 1002:67df 1682 9470 ellesmere : Radeon RX 470 1002:67df 1682 9480 ellesmere : Radeon RX 480 1002:67df 1682 9588 ellesmere : Radeon RX 580 XTR 1002:67df 174b e347 ellesmere : Radeon RX 470/480 1002:67df 174b e349 ellesmere : Radeon RX 470 1002:67df 1787 a470 ellesmere : Radeon RX 470 1002:67df 1787 a480 ellesmere : Radeon RX 480 1002:67df 1849 5001 ellesmere : Phantom Gaming X RX 580 OC 1002:67df 1da2 e353 ellesmere : Sapphire Radeon RX 580 Pulse 8GB 1002:67df 1da2 e366 ellesmere : Nitro+ Radeon RX 580 4GB 1002:67e0 0000 0000 baffin : Baffin [Radeon Pro WX 4170] 1002:67e0 103c 8270 baffin : Radeon Pro WX 4170 1002:67e0 103c 8272 baffin : Radeon Pro WX 4170 1002:67e3 0000 0000 baffin : Baffin [Radeon Pro WX 4100] 1002:67e8 0000 0000 baffin : Baffin [Radeon Pro WX 4130/4150] 1002:67e8 1028 075d baffin : Radeon Pro WX 4150 1002:67e8 1028 07b0 baffin : Radeon Pro WX 4130/4150 1002:67e8 1028 07b1 baffin : Radeon Pro WX 4130 1002:67e8 1028 175d baffin : Radeon Pro WX 4150 1002:67e8 1028 17b0 baffin : Radeon Pro WX 4130/4150 1002:67e8 1028 17b1 baffin : Radeon Pro WX 4130 1002:67e8 103c 8275 baffin : Radeon Pro WX 4150 1002:67e8 103c 8277 baffin : Radeon Pro WX 4150 1002:67eb 0000 0000 baffin : Baffin [Radeon Pro V5300X] 1002:67ef 0000 0000 baffin : Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] 1002:67ef 106b 0160 baffin : Radeon Pro 460 1002:67ef 106b 0166 baffin : Radeon Pro 455 1002:67ef 106b 0167 baffin : Radeon Pro 450 1002:67ef 106b 0179 baffin : Radeon Pro 560 1002:67ef 106b 017a baffin : Radeon Pro 555 1002:67ef 106b 018f baffin : Radeon Pro 560X 1002:67ef 106b 0190 baffin : Radeon Pro 555X 1002:67ef 1642 1727 baffin : Polaris 21 XL [Radeon RX 560D] 1002:67ef 1682 956d baffin : Polaris 21 XL [Radeon RX 560D] 1002:67ff 0000 0000 baffin : Baffin [Radeon RX 550 640SP / RX 560/560X] 1002:67ff 1002 0b04 baffin : Radeon RX 560 1002:67ff 1028 1721 baffin : Radeon RX 560X 1002:67ff 1028 1726 baffin : Radeon RX 560DX 1002:67ff 103c 8479 baffin : Radeon RX 560X Mobile 1002:67ff 1043 04bc baffin : Radeon RX 560 1002:67ff 1458 22ed baffin : Radeon RX 560 1002:67ff 148c 2381 baffin : Radeon RX 560 1002:67ff 1682 9560 baffin : Radeon RX 560 1002:67ff 1da2 e348 baffin : Radeon RX 560 1002:67ff 1da2 e367 baffin : Radeon RX 550 640SP 1002:6800 0000 0000 wimbledon : Wimbledon XT [Radeon HD 7970M] 1002:6800 1002 0124 wimbledon : Radeon HD 7970M 1002:6800 8086 2110 wimbledon : Radeon HD 7970M 1002:6800 8086 2111 wimbledon : Radeon HD 7970M 1002:6801 0000 0000 neptune : Neptune XT [Radeon HD 8970M] 1002:6801 1002 0124 neptune : Radeon HD 8970M 1002:6801 1462 1117 neptune : Radeon R9 M290X 1002:6801 8086 2110 neptune : Radeon HD 8970M 1002:6801 8086 2111 neptune : Radeon HD 8970M 1002:6810 0000 0000 curacao : Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X] 1002:6810 106b 012a curacao : FirePro D300 1002:6810 106b 012b curacao : FirePro D300 1002:6810 148c 0908 curacao : Radeon R9 370 OEM 1002:6810 1682 7370 curacao : Radeon R7 370 1002:6811 0000 0000 curacao : Curacao PRO [Radeon R7 370 / R9 270/370 OEM] 1002:6811 1028 0b00 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6811 1043 2016 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6811 1458 2016 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6811 1462 2016 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6811 1462 3050 curacao : R9 270 Gaming OC 1002:6811 148c 2016 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6811 1682 2015 curacao : Trinidad PRO [Radeon R7 370] 1002:6811 174b 2015 curacao : NITRO Radeon R7 370 1002:6811 174b 2016 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6811 1787 2016 curacao : Trinidad PRO [Radeon R9 370 OEM] 1002:6818 0000 0000 pitcairn : Pitcairn XT [Radeon HD 7870 GHz Edition] 1002:6818 1002 0b05 pitcairn : Radeon HD 8870 OEM 1002:6818 174b 8b04 pitcairn : Radeon HD 8860 1002:6819 0000 0000 pitcairn : Pitcairn PRO [Radeon HD 7850 / R7 265 / R9 270 1024SP] 1002:6819 1043 042c pitcairn : Radeon HD 7850 1002:6819 1682 7269 pitcairn : Radeon R9 270 1024SP 1002:6819 1682 9278 pitcairn : Radeon R9 270 1024SP 1002:6819 174b a008 pitcairn : Radeon R9 270 1024SP 1002:6819 174b e221 pitcairn : Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP 1002:6820 0000 0000 venus : Venus XTX [Radeon HD 8890M / R9 M275X/M375X] 1002:6820 103c 1851 venus : Radeon HD 7750M 1002:6820 17aa 3643 venus : Radeon R9 A375 1002:6820 17aa 3801 venus : Radeon R9 M275 1002:6820 17aa 3824 venus : Radeon R9 M375 1002:6821 0000 0000 venus : Venus XT [Radeon HD 8870M / R9 M270X/M370X] 1002:6821 1002 031e venus : FirePro SX4000 1002:6821 1028 05cc venus : FirePro M5100 1002:6821 1028 15cc venus : FirePro M5100 1002:6821 106b 0149 venus : Radeon R9 M370X Mac Edition 1002:6822 0000 0000 venus : Venus PRO [Radeon E8860] 1002:6823 0000 0000 venus : Venus PRO [Radeon HD 8850M / R9 M265X] 1002:6825 0000 0000 heathrow : Heathrow XT [Radeon HD 7870M] 1002:6825 1028 053f heathrow : FirePro M6000 1002:6825 1028 05cd heathrow : FirePro M6000 1002:6825 1028 15cd heathrow : FirePro M6000 1002:6825 103c 176c heathrow : FirePro M6000 1002:6825 8086 2111 heathrow : Chelsea PRO 1002:6826 0000 0000 chelsea : Chelsea LP [Radeon HD 7700M Series] 1002:6827 0000 0000 heathrow : Heathrow PRO [Radeon HD 7850M/8850M] 1002:682b 0000 0000 venus : Venus LE / Tropo PRO-L [Radeon HD 8830M / R7 M465X] 1002:682b 0128 079c venus : Radeon R7 465X 1002:682f 0000 0000 chelsea : Chelsea LP [Radeon HD 7730M] 1002:682f 103c 1851 chelsea : Radeon HD 7750M 1002:6835 0000 0000 cape : Cape Verde PRX [Radeon R9 255 OEM] 1002:6837 0000 0000 cape : Cape Verde LE [Radeon HD 7730/8730] 1002:6837 1462 2796 cape : Radeon HD 8730 1002:6837 1462 8092 cape : Radeon HD 8730 1002:6837 148c 8730 cape : Radeon HD 8730 1002:6837 1787 3000 cape : Radeon HD 6570 1002:683d 0000 0000 cape : Cape Verde XT [Radeon HD 7770/8760 / R7 250X] 1002:683d 1002 0030 cape : Radeon HD 8760 OEM 1002:683d 1019 0030 cape : Radeon HD 8760 OEM 1002:683d 103c 6890 cape : Radeon HD 8760 OEM 1002:683d 1043 8760 cape : Radeon HD 8760 OEM 1002:683d 1462 2710 cape : R7770-PMD1GD5 1002:683d 174b 8304 cape : Radeon HD 8760 OEM 1002:683f 0000 0000 cape : Cape Verde PRO [Radeon HD 7750/8740 / R7 250E] 1002:683f 1462 2790 cape : Radeon HD 8740 1002:683f 1462 2791 cape : Radeon HD 8740 1002:683f 1642 3b97 cape : Radeon HD 8740 1002:6840 0000 0000 thames : Thames [Radeon HD 7500M/7600M Series] 1002:6840 1025 050e thames : Radeon HD 7670M 1002:6840 1025 050f thames : Radeon HD 7670M 1002:6840 1025 0513 thames : Radeon HD 7670M 1002:6840 1025 0514 thames : Radeon HD 7670M 1002:6840 1025 056d thames : Radeon HD 7670M 1002:6840 1025 059a thames : Radeon HD 7670M 1002:6840 1025 059b thames : Radeon HD 7670M 1002:6840 1025 059e thames : Radeon HD 7670M 1002:6840 1025 0600 thames : Radeon HD 7670M 1002:6840 1025 0606 thames : Radeon HD 7670M 1002:6840 1025 0696 thames : Radeon HD 7650M 1002:6840 1025 0697 thames : Radeon HD 7650M 1002:6840 1025 0698 thames : Radeon HD 7650M 1002:6840 1025 0699 thames : Radeon HD 7650M 1002:6840 1025 0757 thames : Radeon HD 7670M 1002:6840 1028 056a thames : Radeon HD 7670M 1002:6840 1028 056e thames : Radeon HD 7670M 1002:6840 1028 0598 thames : Radeon HD 7670M 1002:6840 1028 059d thames : Radeon HD 7670M 1002:6840 1028 05a3 thames : Radeon HD 7670M 1002:6840 1028 05b9 thames : Radeon HD 7670M 1002:6840 1028 05bb thames : Radeon HD 7670M 1002:6840 103c 1789 thames : FirePro M2000 1002:6840 103c 17f1 thames : Radeon HD 7570M 1002:6840 103c 17f4 thames : Radeon HD 7650M 1002:6840 103c 1813 thames : Radeon HD 7590M 1002:6840 103c 182f thames : Radeon HD 7670M 1002:6840 103c 1830 thames : Radeon HD 7670M 1002:6840 103c 1835 thames : Radeon HD 7670M 1002:6840 103c 183a thames : Radeon HD 7670M 1002:6840 103c 183c thames : Radeon HD 7670M 1002:6840 103c 183e thames : Radeon HD 7670M 1002:6840 103c 1840 thames : Radeon HD 7670M 1002:6840 103c 1842 thames : Radeon HD 7670M 1002:6840 103c 1844 thames : Radeon HD 7670M 1002:6840 103c 1848 thames : Radeon HD 7670M 1002:6840 103c 184a thames : Radeon HD 7670M 1002:6840 103c 184c thames : Radeon HD 7670M 1002:6840 103c 1895 thames : Radeon HD 7670M 1002:6840 103c 1897 thames : Radeon HD 7670M 1002:6840 103c 18a5 thames : Radeon HD 7670M 1002:6840 103c 18a7 thames : Radeon HD 7670M 1002:6840 103c 18f4 thames : Radeon HD 7670M 1002:6840 1043 100a thames : Radeon HD 7670M 1002:6840 1043 104b thames : Radeon HD 7670M 1002:6840 1043 10dc thames : Radeon HD 7670M 1002:6840 1043 2121 thames : Radeon HD 7670M 1002:6840 1043 2122 thames : Radeon HD 7670M 1002:6840 1043 2123 thames : Radeon HD 7670M 1002:6840 1043 2125 thames : Radeon HD 7670M 1002:6840 1043 2127 thames : Radeon HD 7670M 1002:6840 1179 fb11 thames : Radeon HD 7670M 1002:6840 1179 fb22 thames : Radeon HD 7670M 1002:6840 1179 fb23 thames : Radeon HD 7670M 1002:6840 1179 fb2c thames : Radeon HD 7670M 1002:6840 1179 fb31 thames : Radeon HD 7670M 1002:6840 1179 fb32 thames : Radeon HD 7670M 1002:6840 1179 fb38 thames : Radeon HD 7670M 1002:6840 1179 fb39 thames : Radeon HD 7670M 1002:6840 1179 fb3a thames : Radeon HD 7670M 1002:6840 1179 fb40 thames : Radeon HD 7670M 1002:6840 1179 fb41 thames : Radeon HD 7670M 1002:6840 1179 fb47 thames : Radeon HD 7670M 1002:6840 1179 fb48 thames : Radeon HD 7670M 1002:6840 1179 fb51 thames : Radeon HD 7670M 1002:6840 1179 fb52 thames : Radeon HD 7670M 1002:6840 1179 fb53 thames : Radeon HD 7670M 1002:6840 1179 fb81 thames : Radeon HD 7670M 1002:6840 1179 fb82 thames : Radeon HD 7670M 1002:6840 1179 fb83 thames : Radeon HD 7670M 1002:6840 1179 fc56 thames : Radeon HD 7670M 1002:6840 1179 fcd4 thames : Radeon HD 7670M 1002:6840 1179 fcee thames : Radeon HD 7670M 1002:6840 144d c0c5 thames : Radeon HD 7690M 1002:6840 144d c0ce thames : Radeon HD 7670M 1002:6840 144d c0da thames : Radeon HD 7670M 1002:6840 17aa 3970 thames : Radeon HD 7670M 1002:6840 17aa 397b thames : Radeon HD 7670M 1002:6840 17aa 5101 thames : Radeon HD 7670M 1002:6840 17aa 5102 thames : Radeon HD 7670M 1002:6840 17aa 5103 thames : Radeon HD 7670M 1002:6841 0000 0000 thames : Thames [Radeon HD 7550M/7570M/7650M] 1002:6841 1028 0561 thames : Radeon HD 7650M 1002:6841 1028 056c thames : Radeon HD 7650M 1002:6841 1028 057f thames : Radeon HD 7570M 1002:6841 103c 17f1 thames : Radeon HD 7570M 1002:6841 103c 17f4 thames : Radeon HD 7650M 1002:6841 103c 1813 thames : Radeon HD 7570M 1002:6841 103c 183a thames : Radeon HD 7650M 1002:6841 103c 183c thames : Radeon HD 7650M 1002:6841 103c 183e thames : Radeon HD 7650M 1002:6841 103c 1840 thames : Radeon HD 7650M 1002:6841 103c 1842 thames : Radeon HD 7650M 1002:6841 103c 1844 thames : Radeon HD 7650M 1002:6841 1043 100a thames : Radeon HD 7650M 1002:6841 1043 104b thames : Radeon HD 7650M 1002:6841 1043 10dc thames : Radeon HD 7650M 1002:6841 1043 2134 thames : Radeon HD 7650M 1002:6841 1179 0001 thames : Radeon HD 7570M 1002:6841 1179 0002 thames : Radeon HD 7570M 1002:6841 1179 fb43 thames : Radeon HD 7550M 1002:6841 1179 fb91 thames : Radeon HD 7550M 1002:6841 1179 fb92 thames : Radeon HD 7550M 1002:6841 1179 fb93 thames : Radeon HD 7550M 1002:6841 1179 fba2 thames : Radeon HD 7550M 1002:6841 1179 fba3 thames : Radeon HD 7550M 1002:6841 144d c0c7 thames : Radeon HD 7550M 1002:6842 0000 0000 thames : Thames LE [Radeon HD 7000M Series] 1002:6843 0000 0000 thames : Thames [Radeon HD 7670M] 1002:6860 0000 0000 vega : Vega 10 [Radeon Instinct MI25] 1002:6860 1002 0c35 vega : Radeon PRO V320 1002:6860 1002 6c75 vega : Radeon PRO V320 1002:6860 106b 017c vega : Radeon Pro Vega 64 1002:6861 0000 0000 vega : Vega 10 XT [Radeon PRO WX 9100] 1002:6862 0000 0000 vega : Vega 10 XT [Radeon PRO SSG] 1002:6863 0000 0000 vega : Vega 10 XTX [Radeon Vega Frontier Edition] 1002:6864 0000 0000 vega : Vega 1002:6867 0000 0000 vega : Vega 10 XL [Radeon Pro Vega 56] 1002:6868 0000 0000 vega : Vega 10 [Radeon PRO WX 8100] 1002:686c 0000 0000 vega : Vega 10 [Radeon Instinct MI25 MxGPU] 1002:687f 0000 0000 vega : Vega 10 XL/XT [Radeon RX Vega 56/64] 1002:6880 0000 0000 lexington : Lexington [Radeon HD 6550M] 1002:6880 103c 163c lexington : Pavilion dv6 Radeon HD 6550M 1002:6898 0000 0000 cypress : Cypress XT [Radeon HD 5870] 1002:6898 1002 0b00 cypress : Radeon HD 5870 Eyefinity⁶ Edition 1002:6898 106b 00d0 cypress : Radeon HD 5870 Mac Edition 1002:6898 1462 8032 cypress : Radeon HD 5870 1 GB GDDR5 1002:6898 174b 6870 cypress : Radeon HD 6870 1600SP Edition 1002:6899 0000 0000 cypress : Cypress PRO [Radeon HD 5850] 1002:6899 1043 0330 cypress : Radeon HD 5850 1002:6899 174b 237b cypress : Radeon HD 5850 X2 1002:6899 174b 6850 cypress : Radeon HD 6850 1440SP Edition 1002:689b 0000 0000 cypress : Cypress PRO [Radeon HD 6800 Series] 1002:689c 0000 0000 hemlock : Hemlock [Radeon HD 5970] 1002:689c 1043 0352 hemlock : ARES 1002:689d 0000 0000 hemlock : Hemlock [Radeon HD 5970] 1002:689e 0000 0000 cypress : Cypress LE [Radeon HD 5830] 1002:68a0 0000 0000 broadway : Broadway XT [Mobility Radeon HD 5870] 1002:68a0 1028 12ef broadway : FirePro M7820 1002:68a0 103c 1520 broadway : FirePro M7820 1002:68a1 0000 0000 broadway : Broadway PRO [Mobility Radeon HD 5850] 1002:68a1 106b 00cc broadway : iMac MC511 Mobility Radeon HD 5850 MXM Module 1002:68a8 0000 0000 granville : Granville [Radeon HD 6850M/6870M] 1002:68a8 1025 0442 granville : Radeon HD 6850M 1002:68a8 1025 0451 granville : Radeon HD 6850M 1002:68a8 1025 050a granville : Radeon HD 6850M 1002:68a8 1025 050b granville : Radeon HD 6850M 1002:68a8 1025 050c granville : Radeon HD 6850M 1002:68a8 1025 050e granville : Radeon HD 6850M 1002:68a8 1025 050f granville : Radeon HD 6850M 1002:68a8 1025 0513 granville : Radeon HD 6850M 1002:68a8 1025 0514 granville : Radeon HD 6850M 1002:68a8 1025 0515 granville : Radeon HD 6850M 1002:68a8 1025 0516 granville : Radeon HD 6850M 1002:68a8 1025 0525 granville : Radeon HD 6850M 1002:68a8 1025 0526 granville : Radeon HD 6850M 1002:68a8 1025 056d granville : Radeon HD 6850M 1002:68a8 1028 048f granville : Radeon HD 6870M 1002:68a8 1028 0490 granville : Radeon HD 6870M 1002:68a8 1028 04b9 granville : Radeon HD 6870M 1002:68a8 1028 04ba granville : Radeon HD 6870M 1002:68a8 103c 159b granville : Radeon HD 6850M 1002:68a8 144d c0ad granville : Radeon HD 6850M 1002:68b8 0000 0000 juniper : Juniper XT [Radeon HD 5770] 1002:68b8 106b 00cf juniper : MacPro5,1 [Mac Pro 2.8GHz DDR3] 1002:68b9 0000 0000 juniper : Juniper LE [Radeon HD 5670 640SP Edition] 1002:68ba 0000 0000 juniper : Juniper XT [Radeon HD 6770] 1002:68be 0000 0000 juniper : Juniper PRO [Radeon HD 5750] 1002:68be 148c 3000 juniper : Radeon HD 6750 1002:68bf 0000 0000 juniper : Juniper PRO [Radeon HD 6750] 1002:68bf 174b 6750 juniper : Radeon HD 6750 1002:68c0 0000 0000 madison : Madison [Mobility Radeon HD 5730 / 6570M] 1002:68c0 1019 2383 madison : Mobility Radeon HD 5730 1002:68c0 1028 02a2 madison : Mobility Radeon HD 5730 1002:68c0 1028 02fe madison : Mobility Radeon HD 5730 1002:68c0 1028 0419 madison : Mobility Radeon HD 5730 1002:68c0 103c 147d madison : Mobility Radeon HD 5730 1002:68c0 103c 1521 madison : Madison XT [FirePro M5800] 1002:68c0 103c 1593 madison : Mobility Radeon HD 6570 1002:68c0 103c 1596 madison : Mobility Radeon HD 6570 1002:68c0 103c 1599 madison : Mobility Radeon HD 6570 1002:68c0 1043 1c22 madison : Mobility Radeon HD 5730 1002:68c0 17aa 3927 madison : Mobility Radeon HD 5730 1002:68c0 17aa 3952 madison : Mobility Radeon HD 5730 1002:68c0 17aa 3978 madison : Radeon HD 6570M 1002:68c1 0000 0000 madison : Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] 1002:68c1 1025 0205 madison : Mobility Radeon HD 5650 1002:68c1 1025 0293 madison : Mobility Radeon HD 5650 1002:68c1 1025 0294 madison : Mobility Radeon HD 5650 1002:68c1 1025 0296 madison : Mobility Radeon HD 5650 1002:68c1 1025 0308 madison : Mobility Radeon HD 5650 1002:68c1 1025 030a madison : Mobility Radeon HD 5650 1002:68c1 1025 0311 madison : Mobility Radeon HD 5650 1002:68c1 1025 0312 madison : Mobility Radeon HD 5650 1002:68c1 1025 031c madison : Mobility Radeon HD 5650 1002:68c1 1025 031d madison : Mobility Radeon HD 5650 1002:68c1 1025 033d madison : Mobility Radeon HD 5650 1002:68c1 1025 033e madison : Mobility Radeon HD 5650 1002:68c1 1025 033f madison : Mobility Radeon HD 5650 1002:68c1 1025 0346 madison : Mobility Radeon HD 5650 1002:68c1 1025 0347 madison : Aspire 7740G 1002:68c1 1025 0348 madison : Mobility Radeon HD 5650 1002:68c1 1025 0356 madison : Mobility Radeon HD 5650 1002:68c1 1025 0357 madison : Mobility Radeon HD 5650 1002:68c1 1025 0358 madison : Mobility Radeon HD 5650 1002:68c1 1025 0359 madison : Mobility Radeon HD 5650 1002:68c1 1025 035a madison : Mobility Radeon HD 5650 1002:68c1 1025 035b madison : Mobility Radeon HD 5650 1002:68c1 1025 035c madison : Mobility Radeon HD 5650 1002:68c1 1025 035d madison : Mobility Radeon HD 5650 1002:68c1 1025 035e madison : Mobility Radeon HD 5650 1002:68c1 1025 0360 madison : Mobility Radeon HD 5650 1002:68c1 1025 0362 madison : Mobility Radeon HD 5650 1002:68c1 1025 0364 madison : Mobility Radeon HD 5650 1002:68c1 1025 0365 madison : Mobility Radeon HD 5650 1002:68c1 1025 0366 madison : Mobility Radeon HD 5650 1002:68c1 1025 0367 madison : Mobility Radeon HD 5650 1002:68c1 1025 0368 madison : Mobility Radeon HD 5650 1002:68c1 1025 036c madison : Mobility Radeon HD 5650 1002:68c1 1025 036d madison : Mobility Radeon HD 5650 1002:68c1 1025 036e madison : Mobility Radeon HD 5650 1002:68c1 1025 036f madison : Mobility Radeon HD 5650 1002:68c1 1025 0372 madison : Mobility Radeon HD 5650 1002:68c1 1025 0373 madison : Mobility Radeon HD 5650 1002:68c1 1025 0377 madison : Mobility Radeon HD 5650 1002:68c1 1025 0378 madison : Mobility Radeon HD 5650 1002:68c1 1025 0379 madison : Mobility Radeon HD 5650 1002:68c1 1025 037a madison : Mobility Radeon HD 5650 1002:68c1 1025 037b madison : Mobility Radeon HD 5650 1002:68c1 1025 037e madison : Mobility Radeon HD 5650 1002:68c1 1025 037f madison : Mobility Radeon HD 5650 1002:68c1 1025 0382 madison : Mobility Radeon HD 5650 1002:68c1 1025 0383 madison : Mobility Radeon HD 5650 1002:68c1 1025 0384 madison : Mobility Radeon HD 5650 1002:68c1 1025 0385 madison : Mobility Radeon HD 5650 1002:68c1 1025 0386 madison : Mobility Radeon HD 5650 1002:68c1 1025 0387 madison : Mobility Radeon HD 5650 1002:68c1 1025 0388 madison : Mobility Radeon HD 5650 1002:68c1 1025 038b madison : Mobility Radeon HD 5650 1002:68c1 1025 038c madison : Mobility Radeon HD 5650 1002:68c1 1025 039a madison : Mobility Radeon HD 5650 1002:68c1 1025 0411 madison : Mobility Radeon HD 5650 1002:68c1 1025 0412 madison : Mobility Radeon HD 5650 1002:68c1 1025 0418 madison : Mobility Radeon HD 5650 1002:68c1 1025 0419 madison : Mobility Radeon HD 5650 1002:68c1 1025 0420 madison : Mobility Radeon HD 5650 1002:68c1 1025 0421 madison : Mobility Radeon HD 5650 1002:68c1 1025 0425 madison : Mobility Radeon HD 5650 1002:68c1 1025 042a madison : Mobility Radeon HD 5650 1002:68c1 1025 042e madison : Mobility Radeon HD 5650 1002:68c1 1025 042f madison : Mobility Radeon HD 5650 1002:68c1 1025 0432 madison : Mobility Radeon HD 5650 1002:68c1 1025 0433 madison : Mobility Radeon HD 5650 1002:68c1 1025 0442 madison : Mobility Radeon HD 5650 1002:68c1 1025 044c madison : Mobility Radeon HD 5650 1002:68c1 1025 044e madison : Mobility Radeon HD 5650 1002:68c1 1025 0451 madison : Mobility Radeon HD 5650 1002:68c1 1025 0454 madison : Mobility Radeon HD 5650 1002:68c1 1025 0455 madison : Mobility Radeon HD 5650 1002:68c1 1025 0475 madison : Mobility Radeon HD 5650 1002:68c1 1025 0476 madison : Mobility Radeon HD 5650 1002:68c1 1025 0487 madison : Mobility Radeon HD 5650 1002:68c1 1025 0489 madison : Mobility Radeon HD 5650 1002:68c1 1025 0498 madison : Mobility Radeon HD 5650 1002:68c1 1025 0517 madison : Radeon HD 6550M 1002:68c1 1025 051a madison : Radeon HD 6550M 1002:68c1 1025 051b madison : Radeon HD 6550M 1002:68c1 1025 051c madison : Radeon HD 6550M 1002:68c1 1025 051d madison : Radeon HD 6550M 1002:68c1 1025 0525 madison : Radeon HD 6550M 1002:68c1 1025 0526 madison : Radeon HD 6550M 1002:68c1 1025 052b madison : Radeon HD 6550M 1002:68c1 1025 052c madison : Radeon HD 6550M 1002:68c1 1025 053c madison : Radeon HD 6550M 1002:68c1 1025 053d madison : Radeon HD 6550M 1002:68c1 1025 053e madison : Radeon HD 6550M 1002:68c1 1025 053f madison : Radeon HD 6550M 1002:68c1 1025 0607 madison : Radeon HD 6550M 1002:68c1 1028 041b madison : Mobility Radeon HD 5650 1002:68c1 1028 0447 madison : Mobility Radeon HD 5650 1002:68c1 1028 0448 madison : Mobility Radeon HD 5650 1002:68c1 1028 0456 madison : Mobility Radeon HD 5650 1002:68c1 1028 0457 madison : Mobility Radeon HD 5650 1002:68c1 103c 1436 madison : Mobility Radeon HD 5650 1002:68c1 103c 1437 madison : Mobility Radeon HD 5650 1002:68c1 103c 1440 madison : Mobility Radeon HD 5650 1002:68c1 103c 1448 madison : Mobility Radeon HD 5650 1002:68c1 103c 1449 madison : Mobility Radeon HD 5650 1002:68c1 103c 144a madison : Mobility Radeon HD 5650 1002:68c1 103c 144b madison : Mobility Radeon HD 5650 1002:68c1 103c 147b madison : Mobility Radeon HD 5650 1002:68c1 103c 149c madison : Mobility Radeon HD 5650 1002:68c1 103c 149e madison : Mobility Radeon HD 5650 1002:68c1 103c 1521 madison : Madison Pro [FirePro M5800] 1002:68c1 1043 1bc2 madison : Mobility Radeon HD 5650 1002:68c1 104d 9071 madison : Mobility Radeon HD 5650 1002:68c1 104d 9077 madison : Mobility Radeon HD 5650 1002:68c1 104d 9081 madison : Mobility Radeon HD 5650 1002:68c1 1179 fd00 madison : Mobility Radeon HD 5650 1002:68c1 1179 fd12 madison : Mobility Radeon HD 5650 1002:68c1 1179 fd1a madison : Mobility Radeon HD 5650 1002:68c1 1179 fd30 madison : Mobility Radeon HD 5650 1002:68c1 1179 fd31 madison : Mobility Radeon HD 5650 1002:68c1 1179 fd50 madison : Mobility Radeon HD 5650 1002:68c1 1179 fd52 madison : Radeon HD 6530M 1002:68c1 1179 fd63 madison : Radeon HD 6530M 1002:68c1 1179 fd65 madison : Radeon HD 6530M 1002:68c1 1179 fdd0 madison : Mobility Radeon HD 5650 1002:68c1 1179 fdd2 madison : Radeon HD 6530M 1002:68c1 144d c07e madison : Mobility Radeon HD 5650 1002:68c1 144d c085 madison : Mobility Radeon HD 5650 1002:68c1 14c0 0043 madison : Mobility Radeon HD 5650 1002:68c1 14c0 004d madison : Mobility Radeon HD 5650 1002:68c1 17aa 3928 madison : Mobility Radeon HD 5650 1002:68c1 17aa 3951 madison : Mobility Radeon HD 5650 1002:68c1 17aa 3977 madison : Radeon HD 6550M 1002:68c7 0000 0000 pinewood : Pinewood [Mobility Radeon HD 5570/6550A] 1002:68c7 1462 2241 pinewood : Mobility Radeon HD 5570 1002:68c7 1462 2243 pinewood : Mobility Radeon HD 5570 1002:68c7 1462 2244 pinewood : Mobility Radeon HD 5570 1002:68c7 1462 2245 pinewood : Radeon HD 6550A 1002:68c7 1462 2246 pinewood : Radeon HD 6550A 1002:68d8 0000 0000 redwood : Redwood XT [Radeon HD 5670/5690/5730] 1002:68d8 1028 68e0 redwood : Radeon HD 5670 1002:68d8 174b 5690 redwood : Radeon HD 5690 1002:68d8 174b 5730 redwood : Radeon HD 5730 1002:68d8 174b e151 redwood : Radeon HD 5670 1002:68d8 1787 3000 redwood : Radeon HD 5730 1002:68d8 17af 3010 redwood : Radeon HD 5730 1002:68d8 17af 3011 redwood : Radeon HD 5690 1002:68d9 0000 0000 redwood : Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] 1002:68d9 103c 6870 redwood : Radeon HD 5570 1002:68d9 103c 6872 redwood : Radeon HD 5570 1002:68d9 1043 03ce redwood : Radeon HD 5550 1002:68d9 1462 2151 redwood : Radeon HD 5570 1002:68d9 1462 2240 redwood : Radeon HD 5570 1002:68d9 148c 3000 redwood : Radeon HD 6510 1002:68d9 148c 3001 redwood : Radeon HD 6610 1002:68d9 1545 5550 redwood : Radeon HD 5550 1002:68d9 1545 7570 redwood : Radeon HD 7570 1002:68d9 1642 3985 redwood : Radeon HD 5570 1002:68d9 1642 3996 redwood : Radeon HD 5570 1002:68d9 174b 3000 redwood : Radeon HD 6510 1002:68d9 174b 6510 redwood : Radeon HD 6510 1002:68d9 174b 6610 redwood : Radeon HD 6610 1002:68d9 174b e142 redwood : Radeon HD 5570 1002:68d9 1787 3000 redwood : Radeon HD 6510 1002:68d9 17af 3000 redwood : Radeon HD 6510 1002:68d9 17af 3010 redwood : Radeon HD 5630 1002:68da 0000 0000 redwood : Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] 1002:68da 148c 3000 redwood : Radeon HD 6390 1002:68da 148c 3001 redwood : Radeon HD 6490 1002:68da 1545 7570 redwood : Radeon HD 7570 1002:68da 174b 3000 redwood : Radeon HD 6390 1002:68da 174b 5570 redwood : Radeon HD 5570 1002:68da 174b 5630 redwood : Radeon HD 5630 1002:68da 174b 6490 redwood : Radeon HD 6490 1002:68da 1787 3000 redwood : Radeon HD 5630 1002:68da 17af 3000 redwood : Radeon HD 6390 1002:68da 17af 3010 redwood : Radeon HD 5630 1002:68e0 0000 0000 park : Park [Mobility Radeon HD 5430/5450/5470] 1002:68e0 1028 0404 park : Mobility Radeon HD 5450 1002:68e0 1028 0414 park : Mobility Radeon HD 5450 1002:68e0 1028 0434 park : Mobility Radeon HD 5450 1002:68e0 103c 1433 park : Mobility Radeon HD 5450 1002:68e0 103c 1434 park : Mobility Radeon HD 5450 1002:68e0 103c 1469 park : Mobility Radeon HD 5450 1002:68e0 103c 146b park : Mobility Radeon HD 5450 1002:68e0 103c 1486 park : TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450) 1002:68e0 103c 1622 park : Mobility Radeon HD 5450 1002:68e0 103c 1623 park : Mobility Radeon HD 5450 1002:68e0 103c eeee park : Mobility Radeon HD 5450 1002:68e0 104d 9076 park : Mobility Radeon HD 5450 1002:68e0 1682 304e park : Caicos [Radeon HD 5450] 1002:68e0 1682 6000 park : Caicos [Radeon HD 5450] 1002:68e0 17aa 9e52 park : FirePro M3800 1002:68e0 17aa 9e53 park : FirePro M3800 1002:68e1 0000 0000 park : Park [Mobility Radeon HD 5430] 1002:68e1 1043 041f park : Caicos [Radeon HD 7350] 1002:68e1 1043 3000 park : Caicos [Radeon HD 5450] 1002:68e1 148c 3000 park : Caicos [Radeon HD 5450] 1002:68e1 148c 3001 park : Caicos [Radeon HD 6230] 1002:68e1 148c 3002 park : Caicos [Radeon HD 6250] 1002:68e1 148c 3003 park : Caicos [Radeon HD 6350] 1002:68e1 148c 7350 park : Caicos [Radeon HD 7350] 1002:68e1 148c 8350 park : Caicos [Radeon HD 8350] 1002:68e1 1545 5450 park : Caicos [Radeon HD 5450] 1002:68e1 1545 7350 park : Caicos [Radeon HD 7350] 1002:68e1 1682 3000 park : Caicos [Radeon HD 5450] 1002:68e1 1682 6000 park : Caicos [Radeon HD 5450] 1002:68e1 1682 7350 park : Caicos [Radeon HD 7350] 1002:68e1 174b 3000 park : Caicos [Radeon HD 5450] 1002:68e1 174b 5470 park : Caicos [Radeon HD 5470] 1002:68e1 174b 6000 park : Caicos [Radeon HD 5450] 1002:68e1 174b 6230 park : Caicos [Radeon HD 6230] 1002:68e1 174b 6350 park : Caicos [Radeon HD 6350] 1002:68e1 174b 7350 park : Caicos [Radeon HD 7350] 1002:68e1 1787 3000 park : Caicos [Radeon HD 5450] 1002:68e1 17af 3000 park : Caicos [Radeon HD 5450] 1002:68e1 17af 3001 park : Caicos [Radeon HD 6230] 1002:68e1 17af 3014 park : Caicos [Radeon HD 6350] 1002:68e1 17af 3015 park : Caicos [Radeon HD 7350] 1002:68e1 17af 8350 park : Caicos [Radeon HD 8350 OEM] 1002:68e4 0000 0000 robson : Robson CE [Radeon HD 6370M/7370M] 1002:68e4 1019 2386 robson : Radeon HD 6350M 1002:68e4 1019 2387 robson : Radeon HD 6350M 1002:68e4 1019 238d robson : Radeon HD 6370M 1002:68e4 1019 238e robson : Radeon HD 6370M 1002:68e4 1025 0382 robson : Radeon HD 6370M 1002:68e4 1025 0489 robson : Radeon HD 6370M 1002:68e4 1025 048a robson : Radeon HD 6370M 1002:68e4 1025 048b robson : Radeon HD 6370M 1002:68e4 1025 048c robson : Radeon HD 6370M 1002:68e4 1028 04c1 robson : Radeon HD 6370M 1002:68e4 1028 04ca robson : Radeon HD 6370M 1002:68e4 1028 04cc robson : Radeon HD 6370M 1002:68e4 1028 04cd robson : Radeon HD 6370M 1002:68e4 1028 04d7 robson : Radeon HD 6370M 1002:68e4 103c 1411 robson : Radeon HD 6370M 1002:68e4 103c 1421 robson : Radeon HD 6370M 1002:68e4 103c 1426 robson : Radeon HD 6370M 1002:68e4 103c 1428 robson : Radeon HD 6370M 1002:68e4 103c 142a robson : Radeon HD 6370M 1002:68e4 103c 142b robson : Radeon HD 6370M 1002:68e4 103c 143a robson : Radeon HD 6370M 1002:68e4 103c 143c robson : Radeon HD 6370M 1002:68e4 103c 1445 robson : Radeon HD 6370M 1002:68e4 103c 162c robson : Radeon HD 6370M 1002:68e4 103c 162d robson : Radeon HD 6370M 1002:68e4 103c 162e robson : Radeon HD 6370M 1002:68e4 103c 162f robson : Radeon HD 6370M 1002:68e4 103c 1639 robson : Radeon HD 6370M 1002:68e4 103c 163a robson : Radeon HD 6370M 1002:68e4 103c 163b robson : Radeon HD 6370M 1002:68e4 103c 163c robson : Radeon HD 6370M 1002:68e4 103c 163d robson : Radeon HD 6370M 1002:68e4 103c 163e robson : Radeon HD 6370M 1002:68e4 103c 163f robson : Radeon HD 6370M 1002:68e4 103c 1641 robson : Radeon HD 6370M 1002:68e4 103c 1643 robson : Radeon HD 6370M 1002:68e4 103c 3578 robson : Radeon HD 6370M 1002:68e4 103c 357a robson : Radeon HD 6370M 1002:68e4 103c 3673 robson : Radeon HD 6370M 1002:68e4 103c 3675 robson : Radeon HD 6370M 1002:68e4 1043 1c92 robson : Radeon HD 6370M 1002:68e4 1043 84a1 robson : Radeon HD 6370M 1002:68e4 1043 84ad robson : Radeon HD 6370M 1002:68e4 104d 9081 robson : Radeon HD 6370M 1002:68e4 1545 7350 robson : Cedar [Radeon HD 7350] 1002:68e4 1558 4510 robson : Radeon HD 6370M 1002:68e4 1558 5505 robson : Radeon HD 6370M 1002:68e4 174b 5450 robson : Cedar [Radeon HD 5450] 1002:68e4 17aa 21dd robson : Radeon HD 6370M 1002:68e4 17aa 21e9 robson : Radeon HD 6370M 1002:68e4 17aa 3971 robson : Radeon HD 6370M 1002:68e4 17aa 3972 robson : Radeon HD 7370M 1002:68e4 17aa 397a robson : Radeon HD 6370M/7370M 1002:68e4 17aa 397b robson : Radeon HD 6370M/7370M 1002:68e4 17aa 397f robson : Radeon HD 7370M 1002:68e5 0000 0000 robson : Robson LE [Radeon HD 6330M] 1002:68e5 1179 fd3c robson : Radeon HD 6330M 1002:68e5 1179 fd50 robson : Radeon HD 6330M 1002:68e5 1179 fd52 robson : Radeon HD 6330M 1002:68e5 1179 fd63 robson : Radeon HD 6330M 1002:68e5 1179 fd65 robson : Radeon HD 6330M 1002:68e5 1179 fd73 robson : Radeon HD 6330M 1002:68e5 1179 fd75 robson : Radeon HD 6330M 1002:68e5 1179 fdd0 robson : Radeon HD 6330M 1002:68e5 1179 fdd2 robson : Radeon HD 6330M 1002:68e5 1179 fdea robson : Radeon HD 6330M 1002:68e5 1179 fdf8 robson : Radeon HD 6330M 1002:68e5 148c 5450 robson : Cedar [Radeon HD 5450] 1002:68e5 148c 6350 robson : Cedar [Radeon HD 6350] 1002:68e5 148c 7350 robson : Cedar [Radeon HD 7350] 1002:68e5 148c 8350 robson : Cedar [Radeon HD 8350] 1002:68e5 1545 7350 robson : Cedar [Radeon HD 7350] 1002:68f8 0000 0000 cedar : Cedar [Radeon HD 7300 Series] 1002:68f9 0000 0000 cedar : Cedar [Radeon HD 5000/6000/7350/8350 Series] 1002:68f9 1019 0001 cedar : Radeon HD 5450 1002:68f9 1019 0002 cedar : Radeon HD 5450 1002:68f9 1019 0019 cedar : Radeon HD 6350 1002:68f9 1025 0518 cedar : Radeon HD 5450 1002:68f9 1025 0519 cedar : Radeon HD 5450 1002:68f9 1028 010e cedar : XPS 8300 1002:68f9 1028 2126 cedar : Radeon HD 6350 1002:68f9 103c 2126 cedar : Radeon HD 6350 1002:68f9 103c 2aac cedar : Radeon HD 5450 1002:68f9 103c 2aae cedar : Radeon HD 5450 1002:68f9 103c 3580 cedar : Radeon HD 5450 1002:68f9 1043 0386 cedar : Radeon HD 5450 1002:68f9 1043 03c2 cedar : EAH5450 SILENT/DI/512MD2 (LP) 1002:68f9 1462 2130 cedar : Radeon HD 5450 1002:68f9 1462 2131 cedar : Radeon HD 5450 1002:68f9 1462 2133 cedar : Radeon HD 6350 1002:68f9 1462 2180 cedar : Radeon HD 5450 1002:68f9 1462 2181 cedar : Radeon HD 5450 1002:68f9 1462 2182 cedar : Radeon HD 6350 1002:68f9 1462 2183 cedar : Radeon HD 6350 1002:68f9 1462 2230 cedar : Radeon HD 5450 1002:68f9 1462 2231 cedar : Radeon HD 5450 1002:68f9 1462 2495 cedar : Radeon HD 6350 1002:68f9 148c 3001 cedar : Radeon HD 5530/6250 1002:68f9 148c 3002 cedar : Radeon HD 6290 1002:68f9 148c 3003 cedar : Radeon HD 6230 1002:68f9 148c 3004 cedar : Radeon HD 6350 1002:68f9 148c 7350 cedar : Radeon HD 7350 1002:68f9 148c 8350 cedar : Radeon HD 8350 1002:68f9 1545 7350 cedar : Radeon HD 7350 1002:68f9 1642 3983 cedar : Radeon HD 5450 1002:68f9 1642 3984 cedar : Radeon HD 6350 1002:68f9 1642 3987 cedar : Radeon HD 6350 1002:68f9 1642 3997 cedar : Radeon HD 5450 1002:68f9 1642 3a05 cedar : Radeon HD 5450 1002:68f9 1642 3b31 cedar : Radeon HD 6350A 1002:68f9 1682 3270 cedar : Radeon HD 7350 1002:68f9 174b 3000 cedar : Radeon HD 6230 1002:68f9 174b 3987 cedar : Radeon HD 6350 1002:68f9 174b 5470 cedar : Radeon HD 5470 1002:68f9 174b 5490 cedar : Radeon HD 5490 1002:68f9 174b 5530 cedar : Radeon HD 5530 1002:68f9 174b 6230 cedar : Radeon HD 6230 1002:68f9 174b 6250 cedar : Radeon HD 6250 1002:68f9 174b 6290 cedar : Radeon HD 6290 1002:68f9 174b 6350 cedar : Radeon HD 6350 1002:68f9 174b 7350 cedar : Radeon HD 7350 1002:68f9 174b 8350 cedar : Radeon HD 8350 1002:68f9 174b e127 cedar : Radeon HD 5450 1002:68f9 174b e145 cedar : Radeon HD 5450 1002:68f9 174b e153 cedar : Radeon HD 5450 1002:68f9 1787 3000 cedar : Radeon HD 5470 1002:68f9 1787 3001 cedar : Radeon HD 5530 1002:68f9 1787 3002 cedar : Radeon HD 5490 1002:68f9 17aa 3602 cedar : Radeon HD 5450 1002:68f9 17aa 3603 cedar : Radeon HD 5450 1002:68f9 17aa 360f cedar : Radeon HD 5450 1002:68f9 17aa 3619 cedar : Radeon HD 5450 1002:68f9 17af 3000 cedar : Radeon HD 6250 1002:68f9 17af 3001 cedar : Radeon HD 6230 1002:68f9 17af 3002 cedar : Radeon HD 6290 1002:68f9 17af 3011 cedar : Radeon HD 5470 1002:68f9 17af 3012 cedar : Radeon HD 5490 1002:68f9 17af 3013 cedar : Radeon HD 5470 1002:68f9 17af 3014 cedar : Radeon HD 6350 1002:68fa 0000 0000 cedar : Cedar [Radeon HD 7350/8350 / R5 220] 1002:68fa 1019 0019 cedar : Radeon HD 7350 1002:68fa 1019 0021 cedar : Radeon HD 7350 1002:68fa 1019 0022 cedar : Radeon HD 7350 1002:68fa 1019 0026 cedar : Radeon HD 8350 1002:68fa 103c 2adf cedar : Radeon HD 7350A 1002:68fa 103c 2ae8 cedar : Radeon HD 7350A 1002:68fa 1043 8350 cedar : Radeon HD 8350 1002:68fa 1462 2128 cedar : Radeon HD 7350 1002:68fa 1462 2184 cedar : Radeon HD 7350 1002:68fa 1462 2186 cedar : Radeon HD 7350 1002:68fa 1462 2495 cedar : Radeon HD 7350 1002:68fa 1462 b490 cedar : Radeon HD 7350 1002:68fa 1642 3985 cedar : Radeon HD 7350 1002:68fa 174b 3510 cedar : Radeon HD 8350 1002:68fa 174b 3521 cedar : Radeon R5 220 1002:68fa 174b 3522 cedar : Radeon R5 220 1002:68fa 174b 7350 cedar : Radeon HD 7350 1002:68fa 174b 8153 cedar : Radeon HD 8350 1002:68fa 174b e127 cedar : Radeon HD 7350 1002:68fa 174b e153 cedar : Radeon HD 7350 1002:68fa 174b e180 cedar : Radeon HD 7350 1002:68fa 17af 3015 cedar : Radeon HD 7350 1002:6900 0000 0000 topaz : Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445] 1002:6900 1025 1056 topaz : Radeon R7 M360 / R8 M365DX 1002:6900 1028 0640 topaz : Radeon R7 M260/M265 1002:6900 1028 0643 topaz : Radeon R7 M260/M265 1002:6900 1028 067f topaz : Radeon R7 M260 1002:6900 1028 0767 topaz : Radeon R7 M445 1002:6900 1028 130a topaz : Radeon R7 M260 1002:6900 103c 2263 topaz : Radeon R7 M260 1002:6900 103c 2269 topaz : Radeon R7 M260 1002:6900 103c 22c6 topaz : Radeon R7 M260 1002:6900 103c 22c8 topaz : Radeon R7 M260 1002:6900 103c 2b45 topaz : Radeon R7 A360 1002:6900 103c 808c topaz : Radeon R7 M260 1002:6900 103c 8099 topaz : Radeon R7 M360 1002:6900 103c 80b5 topaz : Radeon R7 M360 1002:6900 103c 80b9 topaz : Radeon R7 M360 1002:6900 103c 811c topaz : Radeon R7 M340 1002:6900 103c 8226 topaz : Radeon R7 M440 1002:6900 10cf 1906 topaz : Radeon R7 M260 1002:6900 1170 9979 topaz : Radeon R7 M360 1002:6900 1179 f903 topaz : Radeon R7 M260 1002:6900 1179 f922 topaz : Radeon R7 M260 1002:6900 1179 f923 topaz : Radeon R7 M260 1002:6900 1179 f934 topaz : Radeon R7 M260 1002:6900 17aa 3822 topaz : Radeon R7 M360 1002:6900 17aa 3824 topaz : Radeon R7 M360 1002:6900 17aa 5021 topaz : Radeon R7 M260 1002:6901 0000 0000 topaz : Topaz PRO [Radeon R5 M255] 1002:6901 103c 1318 topaz : Radeon R6 M255DX 1002:6907 0000 0000 meso : Meso XT [Radeon R5 M315] 1002:6921 0000 0000 amethyst : Amethyst XT [Radeon R9 M295X] 1002:6938 0000 0000 tonga : Tonga XT / Amethyst XT [Radeon R9 380X / R9 M295X] 1002:6938 1043 04f5 tonga : Radeon R9 380X 1002:6938 1043 04f7 tonga : Radeon R9 380X 1002:6938 106b 013a tonga : Radeon R9 M295X Mac Edition 1002:6938 1458 22c8 tonga : Radeon R9 380X 1002:6938 148c 2350 tonga : Radeon R9 380X 1002:6938 1682 9385 tonga : Radeon R9 380X 1002:6938 174b e308 tonga : Radeon R9 380X Nitro 4G D5 1002:6938 17af 2006 tonga : Radeon R9 380X 1002:6939 0000 0000 tonga : Tonga PRO [Radeon R9 285/380] 1002:6939 148c 9380 tonga : Radeon R9 380 1002:6939 174b e308 tonga : Radeon R9 380 Nitro 4G D5 1002:694c 0000 0000 vega : Polaris 22 [Radeon RX Vega M GH] 1002:694e 0000 0000 vega : Polaris 22 XL [Radeon RX Vega M GL] 1002:6985 0000 0000 lexa : Lexa XT [Radeon PRO WX 3100] 1002:6987 0000 0000 lexa : Lexa [Radeon E9171 MCM] 1002:6995 0000 0000 lexa : Lexa XT [Radeon PRO WX 2100] 1002:699f 0000 0000 lexa : Lexa PRO [Radeon RX 550/550X] 1002:699f 1028 1720 lexa : Radeon RX 550X 1002:699f 148c 2380 lexa : Lexa XL [Radeon RX 550] 1002:699f 1da2 e367 lexa : Lexa PRO [Radeon RX 550] 1002:69a0 0000 0000 vega : Vega 12 1002:69a1 0000 0000 vega : Vega 12 1002:69a2 0000 0000 vega : Vega 12 1002:69a3 0000 0000 vega : Vega 12 1002:69af 0000 0000 vega : Vega 12 1002:7100 0000 0000 r520 : R520 [Radeon X1800 XT] 1002:7101 0000 0000 r520/m58 : R520/M58 [Mobility Radeon X1800 XT] 1002:7102 0000 0000 r520/m58 : R520/M58 [Mobility Radeon X1800] 1002:7109 0000 0000 r520 : R520 [Radeon X1800 XL] 1002:7109 1002 0322 r520 : All-in-Wonder X1800XL 1002:7109 1002 0d02 r520 : Radeon X1800 CrossFire Edition 1002:710a 0000 0000 r520 : R520 [Radeon X1800 GTO] 1002:710a 1002 0b12 r520 : Radeon X1800 GTO² 1002:710b 0000 0000 r520 : R520 [Radeon X1800 GTO] 1002:7120 0000 0000 r520 : R520 [Radeon X1800] (Secondary) 1002:7129 0000 0000 r520 : R520 [Radeon X1800] (Secondary) 1002:7129 1002 0323 r520 : All-In-Wonder X1800 XL (Secondary) 1002:7129 1002 0d03 r520 : Radeon X1800 CrossFire Edition (Secondary) 1002:7140 0000 0000 rv515 : RV515 [Radeon X1300/X1550/X1600 Series] 1002:7142 0000 0000 rv515 : RV515 PRO [Radeon X1300/X1550 Series] 1002:7142 1002 0322 rv515 : All-in-Wonder 2006 PCI-E Edition 1002:7142 1043 0142 rv515 : EAX1300PRO/TD/256M 1002:7143 0000 0000 rv505 : RV505 [Radeon X1300/X1550 Series] 1002:7145 0000 0000 rv515/m54 : RV515/M54 [Mobility Radeon X1400] 1002:7145 17aa 2006 rv515/m54 : Thinkpad T60 model 2007 1002:7146 0000 0000 rv515 : RV515 [Radeon X1300/X1550] 1002:7146 1002 0322 rv515 : All-in-Wonder 2006 PCI-E Edition 1002:7146 1545 1996 rv515 : Radeon X1300 512MB PCI-e 1002:7147 0000 0000 rv505 : RV505 [Radeon X1550 64-bit] 1002:7149 0000 0000 rv515/m52 : RV515/M52 [Mobility Radeon X1300] 1002:714a 0000 0000 rv515/m52 : RV515/M52 [Mobility Radeon X1300] 1002:715f 0000 0000 rv505 : RV505 CE [Radeon X1550 64-bit] 1002:7162 0000 0000 rv515 : RV515 PRO [Radeon X1300/X1550 Series] (Secondary) 1002:7162 1002 0323 rv515 : All-in-Wonder 2006 PCI-E Edition (Secondary) 1002:7163 0000 0000 rv505 : RV505 [Radeon X1550 Series] (Secondary) 1002:7166 0000 0000 rv515 : RV515 [Radeon X1300/X1550 Series] (Secondary) 1002:7166 1002 0323 rv515 : All-in-Wonder 2006 PCI-E Edition (Secondary) 1002:7166 1545 1997 rv515 : Radeon X1300 512MB PCI-e (Secondary) 1002:7167 0000 0000 rv515 : RV515 [Radeon X1550 64-bit] (Secondary) 1002:7181 0000 0000 rv516 : RV516 [Radeon X1600/X1650 Series] 1002:7183 0000 0000 rv516 : RV516 [Radeon X1300/X1550 Series] 1002:7186 0000 0000 rv516/m64 : RV516/M64 [Mobility Radeon X1450] 1002:7187 0000 0000 rv516 : RV516 [Radeon X1300/X1550 Series] 1002:7188 0000 0000 rv516/m64-s : RV516/M64-S [Mobility Radeon X2300] 1002:7188 103c 30c1 rv516/m64-s : 6910p 1002:718a 0000 0000 rv516/m64 : RV516/M64 [Mobility Radeon X2300] 1002:718b 0000 0000 rv516/m62 : RV516/M62 [Mobility Radeon X1350] 1002:718b 1071 8209 rv516/m62 : Medion MIM 2240 Notebook PC [MD98100] 1002:718c 0000 0000 rv516/m62-csp64 : RV516/M62-CSP64 [Mobility Radeon X1350] 1002:718d 0000 0000 rv516/m64-csp128 : RV516/M64-CSP128 [Mobility Radeon X1450] 1002:7193 0000 0000 rv516 : RV516 [Radeon X1550 Series] 1002:7196 0000 0000 rv516/m62-s : RV516/M62-S [Mobility Radeon X1350] 1002:719f 0000 0000 rv516 : RV516 [Radeon X1550 Series] 1002:71a0 0000 0000 rv516 : RV516 [Radeon X1300/X1550 Series] (Secondary) 1002:71a1 0000 0000 rv516 : RV516 [Radeon X1600/X1650 Series] (Secondary) 1002:71a3 0000 0000 rv516 : RV516 [Radeon X1300/X1550 Series] (Secondary) 1002:71a7 0000 0000 rv516 : RV516 [Radeon X1300/X1550 Series] (Secondary) 1002:71c0 0000 0000 rv530 : RV530 [Radeon X1600 XT/X1650 GTO] 1002:71c0 1002 e160 rv530 : Radeon X1650 GTO 1002:71c0 174b e160 rv530 : Radeon X1650 GTO 1002:71c1 0000 0000 rv535 : RV535 [Radeon X1650 PRO] 1002:71c1 174b 0880 rv535 : Radeon X1700 FSC 1002:71c2 0000 0000 rv530 : RV530 [Radeon X1600 PRO] 1002:71c5 0000 0000 rv530/m56-p : RV530/M56-P [Mobility Radeon X1600] 1002:71c5 103c 309f rv530/m56-p : Compaq nx9420 Notebook 1002:71c5 103c 30a3 rv530/m56-p : Compaq NW8440 1002:71c5 1043 10b2 rv530/m56-p : A6J-Q008 1002:71c5 106b 0080 rv530/m56-p : MacBook Pro 1002:71c6 0000 0000 rv530le : RV530LE [Radeon X1600/X1650 PRO] 1002:71c7 0000 0000 rv535 : RV535 [Radeon X1650 PRO] 1002:71c7 1787 3000 rv535 : PowerColor X1650 PRO AGP 1002:71ce 0000 0000 rv530 : RV530 [Radeon X1300 XT/X1600 PRO] 1002:71d5 0000 0000 rv530/m66-p : RV530/M66-P [Mobility Radeon X1700] 1002:71d6 0000 0000 rv530/m66-xt : RV530/M66-XT [Mobility Radeon X1700] 1002:71de 0000 0000 rv530/m66 : RV530/M66 [Mobility Radeon X1700/X2500] 1002:71e0 0000 0000 rv530 : RV530 [Radeon X1600] (Secondary) 1002:71e0 174b e161 rv530 : Radeon X1600 GTO (Secondary) 1002:71e1 0000 0000 rv535 : RV535 [Radeon X1650 PRO] (Secondary) 1002:71e1 174b 0881 rv535 : Radeon X1700 FSC (Secondary) 1002:71e2 0000 0000 rv530 : RV530 [Radeon X1600] (Secondary) 1002:71e6 0000 0000 rv530 : RV530 [Radeon X1650] (Secondary) 1002:71e7 0000 0000 rv535 : RV535 [Radeon X1650 PRO] (Secondary) 1002:71e7 1787 3001 rv535 : Radeon X1650 PRO AGP 1002:7210 0000 0000 rv550/m71 : RV550/M71 [Mobility Radeon HD 2300] 1002:7211 0000 0000 rv550/m71 : RV550/M71 [Mobility Radeon X2300 HD] 1002:7240 0000 0000 r580+ : R580+ [Radeon X1950 XTX] 1002:7240 1002 0d02 r580+ : Radeon X1950 CrossFire Edition 1002:7244 0000 0000 r580+ : R580+ [Radeon X1950 XT] 1002:7248 0000 0000 r580 : R580 [Radeon X1950] 1002:7249 0000 0000 r580 : R580 [Radeon X1900 XT] 1002:7249 1002 0412 r580 : All-In-Wonder X1900 1002:7249 1002 0b12 r580 : Radeon X1900 XT/XTX 1002:7249 1002 0d02 r580 : Radeon X1900 CrossFire Edition 1002:7249 1043 0160 r580 : Radeon X1900 XTX 512 MB GDDR3 1002:724b 0000 0000 r580 : R580 [Radeon X1900 GT] 1002:724b 1002 0b12 r580 : Radeon X1900 (Primary) 1002:724b 1002 0b13 r580 : Radeon X1900 (Secondary) 1002:7269 0000 0000 r580 : R580 [Radeon X1900 XT] (Secondary) 1002:726b 0000 0000 r580 : R580 [Radeon X1900 GT] (Secondary) 1002:7280 0000 0000 rv570 : RV570 [Radeon X1950 PRO] 1002:7288 0000 0000 rv570 : RV570 [Radeon X1950 GT] 1002:7291 0000 0000 rv560 : RV560 [Radeon X1650 XT] 1002:7291 1462 0810 rv560 : Radeon X1700 SE 1002:7293 0000 0000 rv560 : RV560 [Radeon X1650 GT] 1002:72a0 0000 0000 rv570 : RV570 [Radeon X1950 PRO] (Secondary) 1002:72a8 0000 0000 rv570 : RV570 [Radeon X1950 GT] (Secondary) 1002:72b1 0000 0000 rv560 : RV560 [Radeon X1650 XT] (Secondary) 1002:72b3 0000 0000 rv560 : RV560 [Radeon X1650 GT] (Secondary) 1002:7300 0000 0000 fiji : Fiji [Radeon R9 FURY / NANO Series] 1002:7300 1002 0b36 fiji : Radeon R9 FURY X / NANO 1002:7300 1002 1b36 fiji : Radeon Pro Duo 1002:7300 1043 049e fiji : Radeon R9 FURY 1002:7300 1043 04a0 fiji : Radeon R9 FURY X 1002:7300 174b e329 fiji : Radeon R9 FURY 1002:738c 0000 0000 NRAXJ : NRAXJ 1002:7834 0000 0000 rs350 : RS350 [Radeon 9100 PRO/XT IGP] 1002:7835 0000 0000 rs350m : RS350M [Mobility Radeon 9000 IGP] 1002:7919 0000 0000 rs690 : RS690 HDMI Audio [Radeon Xpress 1200 Series] 1002:7919 1179 7919 rs690 : Satellite P305D-S8995E 1002:7919 17f2 5000 rs690 : KI690-AM2 Motherboard 1002:791e 0000 0000 rs690 : RS690 [Radeon X1200] 1002:791e 1462 7327 rs690 : K9AG Neo2 1002:791e 17f2 5000 rs690 : KI690-AM2 Motherboard 1002:791f 0000 0000 rs690m : RS690M [Radeon Xpress 1200/1250/1270] 1002:791f 1179 ff50 rs690m : Satellite P305D-S8995E 1002:793b 0000 0000 rs600 : RS600 HDMI Audio [Radeon Xpress 1250] 1002:793f 0000 0000 rs690m : RS690M [Radeon Xpress 1200/1250/1270] (Secondary) 1002:7941 0000 0000 rs600 : RS600 [Radeon Xpress 1250] 1002:7942 0000 0000 rs600m : RS600M [Radeon Xpress 1250] 1002:796e 0000 0000 rs740 : RS740 [Radeon 2100] 1002:796e 105b 0e13 rs740 : N15235/A74MX mainboard 1002:9400 0000 0000 r600 : R600 [Radeon HD 2900 PRO/XT] 1002:9400 1002 2552 r600 : Radeon HD 2900 XT 1002:9400 1002 3000 r600 : Radeon HD 2900 PRO 1002:9400 1002 3142 r600 : HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe 1002:9401 0000 0000 r600 : R600 [Radeon HD 2900 XT] 1002:9403 0000 0000 r600 : R600 [Radeon HD 2900 PRO] 1002:9405 0000 0000 r600 : R600 [Radeon HD 2900 GT] 1002:9440 0000 0000 rv770 : RV770 [Radeon HD 4870] 1002:9441 0000 0000 r700 : R700 [Radeon HD 4870 X2] 1002:9442 0000 0000 rv770 : RV770 [Radeon HD 4850] 1002:9442 1002 0502 rv770 : MSI Radeon HD 4850 512MB GDDR3 1002:9442 174b e810 rv770 : Radeon HD 4850 512MB GDDR3 1002:9443 0000 0000 r700 : R700 [Radeon HD 4850 X2] 1002:944a 0000 0000 rv770/m98l : RV770/M98L [Mobility Radeon HD 4850] 1002:944b 0000 0000 rv770/m98 : RV770/M98 [Mobility Radeon HD 4850 X2] 1002:944c 0000 0000 rv770 : RV770 LE [Radeon HD 4830] 1002:944e 0000 0000 rv770 : RV770 CE [Radeon HD 4710] 1002:944e 174b 3261 rv770 : Radeon HD 4810 1002:945a 0000 0000 rv770/m98-xt : RV770/M98-XT [Mobility Radeon HD 4870] 1002:9460 0000 0000 rv790 : RV790 [Radeon HD 4890] 1002:9462 0000 0000 rv790 : RV790 [Radeon HD 4860] 1002:9480 0000 0000 rv730/m96 : RV730/M96 [Mobility Radeon HD 4650/5165] 1002:9480 103c 3628 rv730/m96 : Mobility Radeon HD 4650 [dv6-1190en] 1002:9488 0000 0000 rv730/m96-xt : RV730/M96-XT [Mobility Radeon HD 4670] 1002:9490 0000 0000 rv730 : RV730 XT [Radeon HD 4670] 1002:9490 174b e880 rv730 : Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO 1002:9491 0000 0000 rv730/m96-csp : RV730/M96-CSP [Radeon E4690] 1002:9495 0000 0000 rv730 : RV730 [Radeon HD 4600 AGP Series] 1002:9495 1002 0028 rv730 : Radeon HD 4650/4670 AGP 1002:9495 1092 0028 rv730 : Radeon HD 4670 AGP 512MB DDR2 1002:9495 1458 0028 rv730 : Radeon HD 4650 AGP 1002:9495 1682 0028 rv730 : Radeon HD 4650 AGP 1002:9495 174b 0028 rv730 : Radeon HD 4650 AGP DDR2 1002:9498 0000 0000 rv730 : RV730 PRO [Radeon HD 4650] 1002:94a0 0000 0000 rv740/m97 : RV740/M97 [Mobility Radeon HD 4830] 1002:94a1 0000 0000 rv740/m97-xt : RV740/M97-XT [Mobility Radeon HD 4860] 1002:94b3 0000 0000 rv740 : RV740 PRO [Radeon HD 4770] 1002:94b4 0000 0000 rv740 : RV740 PRO [Radeon HD 4750] 1002:94c1 0000 0000 rv610 : RV610 [Radeon HD 2400 PRO/XT] 1002:94c1 1028 0211 rv610 : Optiplex 755 1002:94c1 1028 0d02 rv610 : Optiplex 755 1002:94c3 0000 0000 rv610 : RV610 [Radeon HD 2400 PRO] 1002:94c3 1028 0302 rv610 : Radeon HD 2400 Pro 1002:94c3 174b e400 rv610 : Radeon HD 2400 PRO 1002:94c3 18bc 3550 rv610 : Radeon HD 2400 PRO 1002:94c4 0000 0000 rv610 : RV610 LE [Radeon HD 2400 PRO AGP] 1002:94c5 0000 0000 rv610 : RV610 [Radeon HD 2400 LE] 1002:94c7 0000 0000 rv610 : RV610 [Radeon HD 2350] 1002:94c8 0000 0000 rv610/m74 : RV610/M74 [Mobility Radeon HD 2400 XT] 1002:94c9 0000 0000 rv610/m72-s : RV610/M72-S [Mobility Radeon HD 2400] 1002:94c9 1002 94c9 rv610/m72-s : Radeon HD2400 1002:94cb 0000 0000 rv610 : RV610 [Radeon E2400] 1002:94cc 0000 0000 rv610 : RV610 LE [Radeon HD 2400 PRO PCI] 1002:9500 0000 0000 rv670 : RV670 [Radeon HD 3850 X2] 1002:9501 0000 0000 rv670 : RV670 [Radeon HD 3870] 1002:9501 174b e620 rv670 : Radeon HD 3870 1002:9504 0000 0000 rv670/m88 : RV670/M88 [Mobility Radeon HD 3850] 1002:9505 0000 0000 rv670 : RV670 [Radeon HD 3690/3850] 1002:9505 148c 3000 rv670 : Radeon HD 3850 1002:9505 174b 3000 rv670 : Radeon HD 3690/3850 1002:9505 1787 3000 rv670 : Radeon HD 3690 1002:9506 0000 0000 rv670/m88 : RV670/M88 [Mobility Radeon HD 3850 X2] 1002:9507 0000 0000 rv670 : RV670 [Radeon HD 3830] 1002:9508 0000 0000 rv670/m88-xt : RV670/M88-XT [Mobility Radeon HD 3870] 1002:9509 0000 0000 rv670/m88 : RV670/M88 [Mobility Radeon HD 3870 X2] 1002:950f 0000 0000 r680 : R680 [Radeon HD 3870 X2] 1002:9513 0000 0000 rv670 : RV670 [Radeon HD 3850 X2] 1002:9515 0000 0000 rv670 : RV670 PRO [Radeon HD 3850 AGP] 1002:9540 0000 0000 rv710 : RV710 [Radeon HD 4550] 1002:954f 0000 0000 rv710 : RV710 [Radeon HD 4350/4550] 1002:954f 1462 1618 rv710 : R4350 MD512H (MS-V161) 1002:9552 0000 0000 rv710/m92 : RV710/M92 [Mobility Radeon HD 4330/4350/4550] 1002:9552 1028 1103 rv710/m92 : M92 [Mobility Radeon HD 4330] 1002:9552 1458 21ac rv710/m92 : Radeon HD 4350 1002:9552 1458 21ed rv710/m92 : Radeon HD 4550 1002:9552 148c 3000 rv710/m92 : Radeon HD 4350 Go! Green 512MB GDDR3 1002:9552 174b 3000 rv710/m92 : Radeon HD 4350/4550 HyperMemory DDR2 1002:9553 0000 0000 rv710/m92 : RV710/M92 [Mobility Radeon HD 4530/4570/545v] 1002:9553 1025 015e rv710/m92 : Mobility Radeon HD 4570 1002:9553 1025 017d rv710/m92 : Mobility Radeon HD 4570 1002:9553 1025 0205 rv710/m92 : Mobility Radeon HD 4570 / 545v 1002:9553 1025 0206 rv710/m92 : Mobility Radeon HD 4570 1002:9553 1025 0237 rv710/m92 : Mobility Radeon HD 4570 1002:9553 1028 02be rv710/m92 : Mobility Radeon HD 4570 / 545v 1002:9553 1028 02e8 rv710/m92 : Mobility Radeon HD 4530 1002:9553 103c 143c rv710/m92 : Mobility Radeon HD 545v 1002:9553 103c 1446 rv710/m92 : Mobility Radeon HD 545v 1002:9553 103c 3624 rv710/m92 : Mobility Radeon HD 4530 1002:9553 103c 3628 rv710/m92 : Mobility Radeon HD 4530 1002:9553 103c 3636 rv710/m92 : Mobility Radeon HD 4530 1002:9553 1043 1b32 rv710/m92 : Mobility Radeon HD 4570 1002:9553 1043 1b42 rv710/m92 : Mobility Radeon HD 4570 1002:9553 104d 9056 rv710/m92 : Mobility Radeon HD 4570 1002:9553 1179 ff82 rv710/m92 : Satellite L505-13T GPU (Mobility Radeon HD 5145) 1002:9553 144d c07f rv710/m92 : Mobility Radeon HD 545v 1002:9553 144d c571 rv710/m92 : Mobility Radeon HD 545v 1002:9553 1462 1006 rv710/m92 : Mobility Radeon HD 545v 1002:9553 17aa 2129 rv710/m92 : Mobility Radeon HD 545v 1002:9553 17aa 215b rv710/m92 : Mobility Radeon HD 545v 1002:9553 17aa 21bb rv710/m92 : Mobility Radeon HD 545v 1002:9555 0000 0000 rv710/m92 : RV710/M92 [Mobility Radeon HD 4350/4550] 1002:9555 103c 1411 rv710/m92 : ProBook 4720s GPU (Mobility Radeon HD 4350) 1002:955f 0000 0000 rv710/m92 : RV710/M92 [Mobility Radeon HD 4330] 1002:9580 0000 0000 rv630 : RV630 [Radeon HD 2600 PRO] 1002:9581 0000 0000 rv630/m76 : RV630/M76 [Mobility Radeon HD 2600] 1002:9583 0000 0000 rv630/m76 : RV630/M76 [Mobility Radeon HD 2600 XT/2700] 1002:9583 106b 0083 rv630/m76 : iMac 7,1 1002:9583 1734 1107 rv630/m76 : Mobility Radeon HD 2700 1002:9586 0000 0000 rv630 : RV630 XT [Radeon HD 2600 XT AGP] 1002:9587 0000 0000 rv630 : RV630 PRO [Radeon HD 2600 PRO AGP] 1002:9588 0000 0000 rv630 : RV630 XT [Radeon HD 2600 XT] 1002:9588 1458 216c rv630 : Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H) 1002:9589 0000 0000 rv630 : RV630 PRO [Radeon HD 2600 PRO] 1002:9589 1787 3000 rv630 : Radeon HD 3610 1002:958a 0000 0000 rv630 : RV630 [Radeon HD 2600 X2] 1002:958b 0000 0000 rv630/m76 : RV630/M76 [Mobility Radeon HD 2600 XT] 1002:9591 0000 0000 rv635/m86 : RV635/M86 [Mobility Radeon HD 3650] 1002:9591 1002 9591 rv635/m86 : Mobility Radeon HD 3650 1002:9593 0000 0000 rv635/m86 : RV635/M86 [Mobility Radeon HD 3670] 1002:9596 0000 0000 rv635 : RV635 PRO [Radeon HD 3650 AGP] 1002:9596 1043 0028 rv635 : EAH3650 SILENT/HTDI/512M/A 1002:9597 0000 0000 rv635 : RV635 PRO [Radeon HD 3650 AGP] 1002:9598 0000 0000 rv635 : RV635 [Radeon HD 3650/3750/4570/4580] 1002:9598 1002 9598 rv635 : Mobility Radeon HD 3600 1002:9598 1043 01d6 rv635 : EAH3650 Silent 1002:9598 1043 3001 rv635 : Radeon HD 4570 1002:9598 174b 3001 rv635 : Radeon HD 3750 1002:9598 174b 4580 rv635 : RV635 PRO [Radeon HD 4580] 1002:9598 17af 3011 rv635 : RV635 PRO [Radeon HD 4580] 1002:9599 0000 0000 rv635 : RV635 PRO [Radeon HD 3650 AGP] 1002:95c0 0000 0000 rv620 : RV620 PRO [Radeon HD 3470] 1002:95c0 1002 95c0 rv620 : Mobility Radeon HD 3470 1002:95c2 0000 0000 rv620/m82 : RV620/M82 [Mobility Radeon HD 3410/3430] 1002:95c4 0000 0000 rv620/m82 : RV620/M82 [Mobility Radeon HD 3450/3470] 1002:95c4 1002 95c4 rv620/m82 : Mobility Radeon HD 3400 1002:95c5 0000 0000 rv620 : RV620 LE [Radeon HD 3450] 1002:95c5 1028 0342 rv620 : OptiPlex 980 1002:95c6 0000 0000 rv620 : RV620 LE [Radeon HD 3450 AGP] 1002:95c9 0000 0000 rv620 : RV620 LE [Radeon HD 3450 PCI] 1002:960f 0000 0000 rs780 : RS780 HDMI Audio [Radeon 3000/3100 / HD 3200/3300] 1002:9610 0000 0000 rs780 : RS780 [Radeon HD 3200] 1002:9610 1458 d000 rs780 : GA-MA78GM-S2H Motherboard 1002:9611 0000 0000 rs780c : RS780C [Radeon 3100] 1002:9612 0000 0000 rs780m : RS780M [Mobility Radeon HD 3200] 1002:9613 0000 0000 rs780mc : RS780MC [Mobility Radeon HD 3100] 1002:9614 0000 0000 rs780d : RS780D [Radeon HD 3300] 1002:9616 0000 0000 rs780l : RS780L [Radeon 3000] 1002:9640 0000 0000 beavercreek : BeaverCreek [Radeon HD 6550D] 1002:9641 0000 0000 beavercreek : BeaverCreek [Radeon HD 6620G] 1002:9642 0000 0000 sumo : Sumo [Radeon HD 6370D] 1002:9643 0000 0000 sumo : Sumo [Radeon HD 6380G] 1002:9644 0000 0000 sumo : Sumo [Radeon HD 6410D] 1002:9645 0000 0000 sumo : Sumo [Radeon HD 6410D] 1002:9647 0000 0000 beavercreek : BeaverCreek [Radeon HD 6520G] 1002:9648 0000 0000 sumo : Sumo [Radeon HD 6480G] 1002:9649 0000 0000 sumo : Sumo [Radeon HD 6480G] 1002:964a 0000 0000 beavercreek : BeaverCreek [Radeon HD 6530D] 1002:970f 0000 0000 rs880 : RS880 HDMI Audio [Radeon HD 4200 Series] 1002:970f 1019 2120 rs880 : A785GM-M 1002:970f 1043 83a2 rs880 : M4A785TD Motherboard 1002:970f 1043 843e rs880 : M5A88-V EVO 1002:9710 0000 0000 rs880 : RS880 [Radeon HD 4200] 1002:9710 1019 2120 rs880 : A785GM-M 1002:9710 1043 83a2 rs880 : M4A785TD Motherboard 1002:9712 0000 0000 rs880m : RS880M [Mobility Radeon HD 4225/4250] 1002:9713 0000 0000 rs880m : RS880M [Mobility Radeon HD 4100] 1002:9714 0000 0000 rs880 : RS880 [Radeon HD 4290] 1002:9715 0000 0000 rs880 : RS880 [Radeon HD 4250] 1002:9715 1043 843e rs880 : M5A88-V EVO 1002:9802 0000 0000 wrestler : Wrestler [Radeon HD 6310] 1002:9802 174b 1001 wrestler : PURE Fusion Mini 1002:9803 0000 0000 wrestler : Wrestler [Radeon HD 6310] 1002:9804 0000 0000 wrestler : Wrestler [Radeon HD 6250] 1002:9805 0000 0000 wrestler : Wrestler [Radeon HD 6250] 1002:9806 0000 0000 wrestler : Wrestler [Radeon HD 6320] 1002:9807 0000 0000 wrestler : Wrestler [Radeon HD 6290] 1002:9808 0000 0000 wrestler : Wrestler [Radeon HD 7340] 1002:9809 0000 0000 wrestler : Wrestler [Radeon HD 7310] 1002:980a 0000 0000 wrestler : Wrestler [Radeon HD 7290] 1002:9830 0000 0000 kabini : Kabini [Radeon HD 8400 / R3 Series] 1002:9831 0000 0000 kabini : Kabini [Radeon HD 8400E] 1002:9832 0000 0000 kabini : Kabini [Radeon HD 8330] 1002:9833 0000 0000 kabini : Kabini [Radeon HD 8330E] 1002:9834 0000 0000 kabini : Kabini [Radeon HD 8210] 1002:9835 0000 0000 kabini : Kabini [Radeon HD 8310E] 1002:9836 0000 0000 kabini : Kabini [Radeon HD 8280 / R3 Series] 1002:9837 0000 0000 kabini : Kabini [Radeon HD 8280E] 1002:9838 0000 0000 kabini : Kabini [Radeon HD 8240 / R3 Series] 1002:9839 0000 0000 kabini : Kabini [Radeon HD 8180] 1002:983d 0000 0000 temash : Temash [Radeon HD 8250/8280G] 1002:9850 0000 0000 mullins : Mullins [Radeon R3 Graphics] 1002:9851 0000 0000 mullins : Mullins [Radeon R4/R5 Graphics] 1002:9851 1179 f928 mullins : Beema [Radeon R5 Graphics] 1002:9852 0000 0000 mullins : Mullins [Radeon R2 Graphics] 1002:9853 0000 0000 mullins : Mullins [Radeon R2 Graphics] 1002:9854 0000 0000 mullins : Mullins [Radeon R3E Graphics] 1002:9855 0000 0000 mullins : Mullins [Radeon R6 Graphics] 1002:9856 0000 0000 mullins : Mullins [Radeon R1E/R2E Graphics] 1002:9857 0000 0000 mullins : Mullins [Radeon APU XX-2200M with R2 Graphics] 1002:9874 0000 0000 wani : Wani [Radeon R5/R6/R7 Graphics] 1002:9874 1002 1871 wani : Radeon R5 Graphics 1002:9874 1002 1e20 wani : Radeon R7 Graphics 1002:9874 1028 06bd wani : Radeon R6 Graphics 1002:9874 103c 2b44 wani : Radeon R6 Graphics 1002:9874 103c 8221 wani : Radeon R5 Graphics 1002:9874 103c 8223 wani : Radeon R5 Graphics 1002:9874 103c 8238 wani : Radeon R7 Graphics 1002:9874 103c 8353 wani : Radeon R7 Graphics 1002:9874 1458 d000 wani : Radeon R7 Graphics 1002:9874 17aa 5113 wani : Radeon R6 Graphics 1002:9874 17aa 5116 wani : Radeon R6 Graphics 1002:9874 17aa 5118 wani : Radeon R5 Graphics 1002:98e4 0000 0000 stoney : Stoney [Radeon R2/R3/R4/R5 Graphics] 1002:9900 0000 0000 trinity : Trinity [Radeon HD 7660G] 1002:9900 103c 1985 trinity : Pavilion 17-e163sg Notebook PC 1002:9901 0000 0000 trinity : Trinity [Radeon HD 7660D] 1002:9903 0000 0000 trinity : Trinity [Radeon HD 7640G] 1002:9903 103c 194e trinity : ProBook 455 G1 Notebook 1002:9903 103c 1952 trinity : ProBook 455 G1 Notebook 1002:9904 0000 0000 trinity : Trinity [Radeon HD 7560D] 1002:9907 0000 0000 trinity : Trinity [Radeon HD 7620G] 1002:9908 0000 0000 trinity : Trinity [Radeon HD 7600G] 1002:9909 0000 0000 trinity : Trinity [Radeon HD 7500G] 1002:990a 0000 0000 trinity : Trinity [Radeon HD 7500G] 1002:990b 0000 0000 richland : Richland [Radeon HD 8650G] 1002:990c 0000 0000 richland : Richland [Radeon HD 8670D] 1002:990d 0000 0000 richland : Richland [Radeon HD 8550G] 1002:990e 0000 0000 richland : Richland [Radeon HD 8570D] 1002:990f 0000 0000 richland : Richland [Radeon HD 8610G] 1002:9910 0000 0000 trinity : Trinity [Radeon HD 7660G] 1002:9913 0000 0000 trinity : Trinity [Radeon HD 7640G] 1002:9917 0000 0000 trinity : Trinity [Radeon HD 7620G] 1002:9918 0000 0000 trinity : Trinity [Radeon HD 7600G] 1002:9919 0000 0000 trinity : Trinity [Radeon HD 7500G] 1002:9990 0000 0000 trinity : Trinity [Radeon HD 7520G] 1002:9991 0000 0000 trinity : Trinity [Radeon HD 7540D] 1002:9992 0000 0000 trinity : Trinity [Radeon HD 7420G] 1002:9993 0000 0000 trinity : Trinity [Radeon HD 7480D] 1002:9994 0000 0000 trinity : Trinity [Radeon HD 7400G] 1002:9995 0000 0000 richland : Richland [Radeon HD 8450G] 1002:9996 0000 0000 richland : Richland [Radeon HD 8470D] 1002:9997 0000 0000 richland : Richland [Radeon HD 8350G] 1002:9998 0000 0000 richland : Richland [Radeon HD 8370D] 1002:9999 0000 0000 richland : Richland [Radeon HD 8510G] 1002:999a 0000 0000 richland : Richland [Radeon HD 8410G] 1002:999b 0000 0000 richland : Richland [Radeon HD 8310G] 1002:999d 0000 0000 richland : Richland [Radeon HD 8550D] 1002:99a0 0000 0000 trinity : Trinity [Radeon HD 7520G] 1002:99a2 0000 0000 trinity : Trinity [Radeon HD 7420G] 1002:99a4 0000 0000 trinity : Trinity [Radeon HD 7400G] 1002:aa00 0000 0000 r600 : R600 HDMI Audio [Radeon HD 2900 GT/PRO/XT] 1002:aa01 0000 0000 rv635 : RV635 HDMI Audio [Radeon HD 3650/3730/3750] 1002:aa08 0000 0000 rv630 : RV630 HDMI Audio [Radeon HD 2600 PRO/XT / HD 3610] 1002:aa10 0000 0000 rv610 : RV610 HDMI Audio [Radeon HD 2350 PRO / 2400 PRO/XT / HD 3410] 1002:aa10 174b aa10 rv610 : Radeon HD 2400 PRO 1002:aa10 18bc aa10 rv610 : Radeon HD 2400 PRO 1002:aa18 0000 0000 rv670/680 : RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] 1002:aa20 0000 0000 rv635 : RV635 HDMI Audio [Radeon HD 3650/3730/3750] 1002:aa28 0000 0000 rv620 : RV620 HDMI Audio [Radeon HD 3450/3470/3550/3570] 1002:aa30 0000 0000 rv770 : RV770 HDMI Audio [Radeon HD 4850/4870] 1002:aa30 174b aa30 rv770 : Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink 1002:aa38 0000 0000 rv710/730 : RV710/730 HDMI Audio [Radeon HD 4000 series] 1002:aa38 103c 3628 rv710/730 : dv6-1190en 1002:aa50 0000 0000 cypress : Cypress HDMI Audio [Radeon HD 5830/5850/5870 / 6850/6870 Rebrand] 1002:aa58 0000 0000 juniper : Juniper HDMI Audio [Radeon HD 5700 Series] 1002:aa60 0000 0000 redwood : Redwood HDMI Audio [Radeon HD 5000 Series] 1002:aa60 1025 033d redwood : Mobility Radeon HD 5650 1002:aa60 1025 0347 redwood : Aspire 7740G 1002:aa68 0000 0000 cedar : Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series] 1002:aa68 1028 aa68 cedar : XPS 8300 1002:aa80 0000 0000 cayman/antilles : Cayman/Antilles HDMI Audio [Radeon HD 6930/6950/6970/6990] 1002:aa88 0000 0000 barts : Barts HDMI Audio [Radeon HD 6790/6850/6870 / 7720 OEM] 1002:aa90 0000 0000 turks : Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series] 1002:aa90 1028 04a3 turks : Precision M4600 1002:aa98 0000 0000 caicos : Caicos HDMI Audio [Radeon HD 6450 / 7450/8450/8490 OEM / R5 230/235/235X OEM] 1002:aa98 174b aa98 caicos : Radeon HD 6450 1GB DDR3 1002:aaa0 0000 0000 tahiti : Tahiti HDMI Audio [Radeon HD 7870 XT / 7950/7970] 1002:aab0 0000 0000 cape : Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series] 1002:aac0 0000 0000 tobago : Tobago HDMI Audio [Radeon R7 360 / R9 360 OEM] 1002:aac8 0000 0000 hawaii : Hawaii HDMI Audio [Radeon R9 290/290X / 390/390X] 1002:aad8 0000 0000 tonga : Tonga HDMI Audio [Radeon R9 285/380] 1002:aad8 174b aad8 tonga : Radeon R9 285/380 HDMI Audio 1002:aae8 0000 0000 fiji : Fiji HDMI/DP Audio [Radeon R9 Nano / FURY/FURY X] 1002:aaf0 0000 0000 ellesmere : Ellesmere [Radeon RX 580] 10de:0040 0000 0000 6800 : NV40 [GeForce 6800 Ultra] 10de:0041 0000 0000 6800 : NV40 [GeForce 6800] 10de:0041 1043 817b 6800 : V9999 Gamer Edition 10de:0041 107d 2992 6800 : WinFast A400 10de:0041 1458 310f 6800 : Geforce 6800 GV-N6812 10de:0042 0000 0000 6800le : NV40 [GeForce 6800 LE] 10de:0042 107d 299b 6800le : WinFast A400 LE 10de:0043 0000 0000 6800xe : NV40 [GeForce 6800 XE] 10de:0044 0000 0000 6800xt : NV40 [GeForce 6800 XT] 10de:0045 0000 0000 6800gt : NV40 [GeForce 6800 GT] 10de:0045 1043 817d 6800gt : V9999GT 10de:0045 1458 3140 6800gt : GV-N68T256D 10de:0047 0000 0000 6800gs : NV40 [GeForce 6800 GS] 10de:0047 1682 2109 6800gs : GeForce 6800 GS 10de:0048 0000 0000 6800xt : NV40 [GeForce 6800 XT] 10de:004e 0000 0000 fx4000 : NV40GL [Quadro FX 4000] 10de:0090 0000 0000 7800gtx : G70 [GeForce 7800 GTX] 10de:0091 0000 0000 7800gtx : G70 [GeForce 7800 GTX] 10de:0092 0000 0000 7800gt : G70 [GeForce 7800 GT] 10de:0093 0000 0000 7800gs : G70 [GeForce 7800 GS] 10de:0095 0000 0000 7800sli : G70 [GeForce 7800 SLI] 10de:0097 0000 0000 gts250 : G70 [GeForce GTS 250] 10de:0098 0000 0000 go7800 : G70M [GeForce Go 7800] 10de:0099 0000 0000 go7800gtx : G70M [GeForce Go 7800 GTX] 10de:009d 0000 0000 fx4500 : G70GL [Quadro FX 4500] 10de:00c0 0000 0000 6800gs : NV41 [GeForce 6800 GS] 10de:00c1 0000 0000 6800 : NV41 [GeForce 6800] 10de:00c2 0000 0000 6800le : NV41 [GeForce 6800 LE] 10de:00c3 0000 0000 6800xt : NV41 [GeForce 6800 XT] 10de:00c8 0000 0000 go6800 : NV41M [GeForce Go 6800] 10de:00c9 0000 0000 go6800 : NV41M [GeForce Go 6800 Ultra] 10de:00cc 0000 0000 fxgo1400 : NV41GLM [Quadro FX Go1400] 10de:00cd 0000 0000 fx3450/4000sdi : NV42GL [Quadro FX 3450/4000 SDI] 10de:00cd 10de 029b fx3450/4000sdi : Quadro FX 3450 10de:00ce 0000 0000 fx1400 : NV41GL [Quadro FX 1400] 10de:00f1 0000 0000 6600gt : NV43 [GeForce 6600 GT] 10de:00f1 1043 81a6 6600gt : N6600GT TD 128M AGP 10de:00f1 1043 81c6 6600gt : N6600GT TD 128M AGP 10de:00f1 1458 3150 6600gt : GV-N66T128VP 10de:00f1 1554 1191 6600gt : PixelView PV-N43UA (128KD) 10de:00f1 1682 2119 6600gt : GeForce 6600 GT AGP 10de:00f2 0000 0000 6600 : NV43 [GeForce 6600] 10de:00f2 1554 1194 6600 : PixelView PV-N43AT (256KD) 10de:00f2 1682 211c 6600 : GeForce 6600 256MB DDR DUAL DVI TV 10de:00f3 0000 0000 6200 : NV43 [GeForce 6200] 10de:00f4 0000 0000 6600le : NV43 [GeForce 6600 LE] 10de:00f5 0000 0000 7800gs : G71 [GeForce 7800 GS] 10de:00f6 0000 0000 6800gs/xt : NV43 [GeForce 6800 GS/XT] 10de:00f6 1682 217e 6800gs/xt : XFX GeForce 6800 XTreme 256MB DDR3 AGP 10de:00f8 0000 0000 fx3400/4400 : NV45GL [Quadro FX 3400/4400] 10de:00f9 0000 0000 6800gt/gto/ultra : NV40 [GeForce 6800 GT/GTO/Ultra] 10de:00f9 10de 00f9 6800gt/gto/ultra : NV40 [GeForce 6800 GT] 10de:00f9 1682 2120 6800gt/gto/ultra : GEFORCE 6800 GT PCI-E 10de:00fa 0000 0000 pcx5750 : NV39 [GeForce PCX 5750] 10de:00fb 0000 0000 pcx5900 : NV35 [GeForce PCX 5900] 10de:00fc 0000 0000 fx330/geforcepcx5300 : NV37GL [Quadro FX 330/GeForce PCX 5300] 10de:00fd 0000 0000 pci-eseries : NV37GL [Quadro PCI-E Series] 10de:00fe 0000 0000 fx1300 : NV38GL [Quadro FX 1300] 10de:00ff 0000 0000 pcx4300 : NV19 [GeForce PCX 4300] 10de:0100 0000 0000 256sdr : NV10 [GeForce 256 SDR] 10de:0100 1043 0200 256sdr : AGP-V6600 SGRAM 10de:0100 1043 0201 256sdr : AGP-V6600 SDRAM 10de:0100 1043 4008 256sdr : AGP-V6600 SGRAM 10de:0100 1043 4009 256sdr : AGP-V6600 SDRAM 10de:0100 1048 0c41 256sdr : Erazor X 10de:0100 1048 0c43 256sdr : ERAZOR X PCI 10de:0100 1048 0c48 256sdr : Synergy Force 10de:0100 1102 102d 256sdr : CT6941 GeForce 256 10de:0100 14af 5022 256sdr : 3D Prophet SE 10de:0101 0000 0000 256ddr : NV10 [GeForce 256 DDR] 10de:0101 1043 0202 256ddr : AGP-V6800 DDR 10de:0101 1043 400a 256ddr : AGP-V6800 DDR SGRAM 10de:0101 1043 400b 256ddr : AGP-V6800 DDR SDRAM 10de:0101 1048 0c42 256ddr : Erazor X 10de:0101 107d 2822 256ddr : WinFast GeForce 256 10de:0101 1102 102e 256ddr : CT6970/CT6971 10de:0101 14af 5021 256ddr : 3D Prophet DDR-DVI 10de:0140 0000 0000 6600gt : NV43 [GeForce 6600 GT] 10de:0140 1458 3125 6600gt : GV-NX66T128D 10de:0140 1458 3126 6600gt : GV-NX66T256DE 10de:0140 1462 8939 6600gt : MS-8983 10de:0141 0000 0000 6600 : NV43 [GeForce 6600] 10de:0141 1043 81b0 6600 : EN6600 Silencer 10de:0141 107d 593a 6600 : LR2A22 128MB TV OUT 10de:0141 107d 597b 6600 : WINFAST PX6600 10de:0141 1458 3124 6600 : GV-NX66128DP Turbo Force Edition 10de:0142 0000 0000 6600le : NV43 [GeForce 6600 LE] 10de:0143 0000 0000 6600ve : NV43 [GeForce 6600 VE] 10de:0144 0000 0000 go6600 : NV43M [GeForce Go 6600] 10de:0145 0000 0000 6610xl : NV43 [GeForce 6610 XL] 10de:0146 0000 0000 go6200te6600te : NV43M [GeForce Go6200 TE / 6600 TE] 10de:0147 0000 0000 6700xl : NV43 [GeForce 6700 XL] 10de:0148 0000 0000 go6600 : NV43M [GeForce Go 6600] 10de:0149 0000 0000 go6600gt : NV43M [GeForce Go 6600 GT] 10de:014a 0000 0000 nvs440 : NV43 [Quadro NVS 440] 10de:014d 0000 0000 fx550 : NV43GL [Quadro FX 550] 10de:014e 0000 0000 fx540 : NV43GL [Quadro FX 540] 10de:014f 0000 0000 6200 : NV43 [GeForce 6200] 10de:0160 0000 0000 6500 : NV44 [GeForce 6500] 10de:0161 0000 0000 6200turbocache : NV44 [GeForce 6200 TurboCache] 10de:0162 0000 0000 6200turbocache : NV44 [GeForce 6200 SE TurboCache] 10de:0163 0000 0000 6200le : NV44 [GeForce 6200 LE] 10de:0164 0000 0000 go6200 : NV44M [GeForce Go 6200] 10de:0165 0000 0000 nvs285 : NV44 [Quadro NVS 285] 10de:0166 0000 0000 go6400 : NV44M [GeForce Go 6400] 10de:0167 0000 0000 go6200 : NV44M [GeForce Go 6200] 10de:0168 0000 0000 go6400 : NV44M [GeForce Go 6400] 10de:0169 0000 0000 6250 : NV44 [GeForce 6250] 10de:016a 0000 0000 7100gs : NV44 [GeForce 7100 GS] 10de:017a 0000 0000 nvs : NV17GL [Quadro NVS] 10de:018a 0000 0000 nvs280sd : NV18GL [Quadro NVS 280 SD] 10de:018c 0000 0000 nvs50 : NV18GL [Quadro NVS 50 PCI] 10de:0190 0000 0000 8800gts8800gtx : G80 [GeForce 8800 GTS / 8800 GTX] 10de:0191 0000 0000 8800gtx : G80 [GeForce 8800 GTX] 10de:0192 0000 0000 8800gts : G80 [GeForce 8800 GTS] 10de:0193 0000 0000 8800gts : G80 [GeForce 8800 GTS] 10de:0193 107d 20bd 8800gts : WinFast PX 8800 GTS TDH 10de:0194 0000 0000 8800 : G80 [GeForce 8800 Ultra] 10de:0197 0000 0000 c870 : G80GL [Tesla C870] 10de:019d 0000 0000 fx5600 : G80GL [Quadro FX 5600] 10de:019e 0000 0000 fx4600 : G80GL [Quadro FX 4600] 10de:01d0 0000 0000 7350le : G72 [GeForce 7350 LE] 10de:01d1 0000 0000 7300le : G72 [GeForce 7300 LE] 10de:01d1 107d 5efa 7300le : WinFast PX7300LE-TD128 10de:01d1 107d 5efb 7300le : WinFast PX7300LE-TD256 10de:01d1 1462 0345 7300le : 7300LE PCI Express Graphics Adapter 10de:01d2 0000 0000 7550le : G72 [GeForce 7550 LE] 10de:01d3 0000 0000 7200gs7300 : G72 [GeForce 7200 GS / 7300 SE] 10de:01d3 1043 8203 7200gs7300 : EN7300SE 10de:01d3 1043 8250 7200gs7300 : EN7200GS 10de:01d6 0000 0000 go7200 : G72M [GeForce Go 7200] 10de:01d7 0000 0000 nvs110m/geforcego7300 : G72M [Quadro NVS 110M/GeForce Go 7300] 10de:01d8 0000 0000 go7400 : G72M [GeForce Go 7400] 10de:01d8 1028 01d7 go7400 : XPS M1210 10de:01d9 0000 0000 go7450 : G72M [GeForce Go 7450] 10de:01da 0000 0000 nvs110m : G72M [Quadro NVS 110M] 10de:01db 0000 0000 nvs120m : G72M [Quadro NVS 120M] 10de:01dc 0000 0000 fx350m : G72GLM [Quadro FX 350M] 10de:01dd 0000 0000 7500le : G72 [GeForce 7500 LE] 10de:01de 0000 0000 fx350 : G72GL [Quadro FX 350] 10de:01de 10de 01dc fx350 : Quadro FX Go350M 10de:01df 0000 0000 7300gs : G72 [GeForce 7300 GS] 10de:0203 0000 0000 dcc : NV20GL [Quadro DCC] 10de:0211 0000 0000 6800 : NV48 [GeForce 6800] 10de:0212 0000 0000 6800le : NV48 [GeForce 6800 LE] 10de:0215 0000 0000 6800gt : NV48 [GeForce 6800 GT] 10de:0218 0000 0000 6800xt : NV48 [GeForce 6800 XT] 10de:0221 0000 0000 6200 : NV44A [GeForce 6200] 10de:0221 1043 81e1 6200 : N6200/TD/256M/A 10de:0221 3842 a341 6200 : 256A8N341DX 10de:0222 0000 0000 6200a-le : NV44 [GeForce 6200 A-LE] 10de:0240 0000 0000 6150 : C51PV [GeForce 6150] 10de:0240 1043 81cd 6150 : A8N-VM CSM 10de:0240 1462 7207 6150 : K8NGM2 series 10de:0241 0000 0000 6150le : C51 [GeForce 6150 LE] 10de:0242 0000 0000 6100 : C51G [GeForce 6100] 10de:0242 105b 0cad 6100 : Winfast 6100K8MB 10de:0244 0000 0000 go6150 : C51 [GeForce Go 6150] 10de:0244 103c 30b5 go6150 : Presario V3242AU 10de:0244 103c 30b7 go6150 : Presario V6133CL 10de:0244 10de 0244 go6150 : GeForce Go 6150 10de:0245 0000 0000 nvs210s/geforce6150le : C51 [Quadro NVS 210S/GeForce 6150LE] 10de:0247 0000 0000 go6100 : C51 [GeForce Go 6100] 10de:0247 1043 1382 go6100 : MCP51 PCI-X GeForce Go 6100 10de:0290 0000 0000 7900gtx : G71 [GeForce 7900 GTX] 10de:0291 0000 0000 7900gt/gto : G71 [GeForce 7900 GT/GTO] 10de:0291 10de 042b 7900gt/gto : NX7900GTO-T2D512E [7900 GTO] 10de:0292 0000 0000 7900gs : G71 [GeForce 7900 GS] 10de:0293 0000 0000 7900gx2 : G71 [GeForce 7900 GX2] 10de:0294 0000 0000 7950gx2 : G71 [GeForce 7950 GX2] 10de:0295 0000 0000 7950gt : G71 [GeForce 7950 GT] 10de:0295 1043 8225 7950gt : GeForce 7950 GT 10de:0295 107d 2a68 7950gt : WinFast PX7950GT TDH 10de:0295 1462 0663 7950gt : NX7950GT-VT2D512EZ-HD 10de:0297 0000 0000 go7950gtx : G71M [GeForce Go 7950 GTX] 10de:0298 0000 0000 go7900gs : G71M [GeForce Go 7900 GS] 10de:0299 0000 0000 go7900gtx : G71M [GeForce Go 7900 GTX] 10de:029a 0000 0000 fx2500m : G71GLM [Quadro FX 2500M] 10de:029b 0000 0000 fx1500m : G71GLM [Quadro FX 1500M] 10de:029c 0000 0000 fx5500 : G71GL [Quadro FX 5500] 10de:029d 0000 0000 fx3500 : G71GL [Quadro FX 3500] 10de:029d 1028 019b fx3500 : G71GLM [Quadro FX 3500M] 10de:029e 0000 0000 fx1500 : G71GL [Quadro FX 1500] 10de:029f 0000 0000 fx4500x2 : G71GL [Quadro FX 4500 X2] 10de:02e0 0000 0000 7600gt : G73 [GeForce 7600 GT] 10de:02e0 02e0 2249 7600gt : GF 7600GT 560M 256MB DDR3 DUAL DVI TV 10de:02e1 0000 0000 7600gs : G73 [GeForce 7600 GS] 10de:02e1 1682 222b 7600gs : PV-T73K-UAL3 (256MB) 10de:02e1 1682 2247 7600gs : GF 7600GS 512MB DDR2 10de:02e2 0000 0000 7300gt : G73 [GeForce 7300 GT] 10de:02e3 0000 0000 7900gs : G71 [GeForce 7900 GS] 10de:02e4 0000 0000 7950gt : G71 [GeForce 7950 GT] 10de:02e4 1682 2271 7950gt : PV-T71A-YDF7 (512MB) 10de:0300 0000 0000 fx : NV30 [GeForce FX] 10de:0301 0000 0000 fx5800 : NV30 [GeForce FX 5800 Ultra] 10de:0302 0000 0000 fx5800 : NV30 [GeForce FX 5800] 10de:0308 0000 0000 fx2000 : NV30GL [Quadro FX 2000] 10de:0309 0000 0000 fx1000 : NV30GL [Quadro FX 1000] 10de:0311 0000 0000 fx5600 : NV31 [GeForce FX 5600 Ultra] 10de:0312 0000 0000 fx5600 : NV31 [GeForce FX 5600] 10de:0314 0000 0000 fx5600xt : NV31 [GeForce FX 5600XT] 10de:0314 1043 814a fx5600xt : V9560XT/TD 10de:031a 0000 0000 fxgo5600 : NV31M [GeForce FX Go5600] 10de:031b 0000 0000 fxgo5650 : NV31M [GeForce FX Go5650] 10de:031c 0000 0000 fxgo700 : NV31GLM [Quadro FX Go700] 10de:0320 0000 0000 fx5200 : NV34 [GeForce FX 5200] 10de:0321 0000 0000 fx5200 : NV34 [GeForce FX 5200 Ultra] 10de:0322 0000 0000 fx5200 : NV34 [GeForce FX 5200] 10de:0322 1043 02fb fx5200 : V9250 Magic 10de:0322 1043 8180 fx5200 : V9520-X/TD/128M 10de:0322 107d 2967 fx5200 : WinFast A340T 128MB 10de:0322 1462 9110 fx5200 : MS-8911 (FX5200-TD128) 10de:0322 1462 9171 fx5200 : MS-8917 (FX5200-T128) 10de:0322 1462 9360 fx5200 : MS-8936 (FX5200-T128) 10de:0322 1682 1351 fx5200 : GeForce FX 5200 10de:0323 0000 0000 fx5200le : NV34 [GeForce FX 5200LE] 10de:0324 0000 0000 fxgo520064m : NV34M [GeForce FX Go5200 64M] 10de:0324 1028 0196 fxgo520064m : Inspiron 5160 10de:0324 103c 006a fxgo520064m : Pavilion ZD7000 laptop 10de:0324 1071 8160 fxgo520064m : MIM2000 10de:0325 0000 0000 fxgo5250 : NV34M [GeForce FX Go5250] 10de:0326 0000 0000 fx5500 : NV34 [GeForce FX 5500] 10de:0326 1458 310d fx5500 : GeForce FX 5500 128 MB 10de:0326 1682 2034 fx5500 : GeForce 5500 256 MB 10de:0327 0000 0000 fx5100 : NV34 [GeForce FX 5100] 10de:0328 0000 0000 fxgo520032m/64m : NV34M [GeForce FX Go5200 32M/64M] 10de:0329 0000 0000 fxgo5200 : NV34M [GeForce FX Go5200] 10de:0329 10de 0010 fxgo5200 : Powerbook G4 10de:032a 0000 0000 nvs280 : NV34GL [Quadro NVS 280 PCI] 10de:032b 0000 0000 fx500/600 : NV34GL [Quadro FX 500/600 PCI] 10de:032c 0000 0000 fxgo5300go5350 : NV34M [GeForce FX Go5300 / Go5350] 10de:032d 0000 0000 fxgo5100 : NV34M [GeForce FX Go5100] 10de:032f 0000 0000 fx5200 : NV34 [GeForce FX 5200] 10de:0330 0000 0000 fx5900 : NV35 [GeForce FX 5900 Ultra] 10de:0330 1043 8137 fx5900 : V9950 Ultra / 256 MB 10de:0331 0000 0000 fx5900 : NV35 [GeForce FX 5900] 10de:0331 1043 8145 fx5900 : V9950GE 10de:0332 0000 0000 fx5900xt : NV35 [GeForce FX 5900XT] 10de:0333 0000 0000 fx5950 : NV38 [GeForce FX 5950 Ultra] 10de:0334 0000 0000 fx5900zt : NV35 [GeForce FX 5900ZT] 10de:0334 1462 9373 fx5900zt : FX5900ZT-VTD128 (MS-8937) 10de:0338 0000 0000 fx3000 : NV35GL [Quadro FX 3000] 10de:033f 0000 0000 fx700 : NV35GL [Quadro FX 700] 10de:0341 0000 0000 fx5700 : NV36 [GeForce FX 5700 Ultra] 10de:0341 1462 9380 fx5700 : MS-8938 (FX5700U-TD128) 10de:0342 0000 0000 fx5700 : NV36 [GeForce FX 5700] 10de:0343 0000 0000 fx5700le : NV36 [GeForce FX 5700LE] 10de:0344 0000 0000 fx5700ve : NV36 [GeForce FX 5700VE] 10de:0347 0000 0000 fxgo5700 : NV36M [GeForce FX Go5700] 10de:0347 103c 006a fxgo5700 : NX9500 10de:0348 0000 0000 fxgo5700 : NV36M [GeForce FX Go5700] 10de:034c 0000 0000 fxgo1000 : NV36 [Quadro FX Go1000] 10de:034e 0000 0000 fx1100 : NV36GL [Quadro FX 1100] 10de:038b 0000 0000 7650gs : G73 [GeForce 7650 GS] 10de:0390 0000 0000 7650gs : G73 [GeForce 7650 GS] 10de:0391 0000 0000 7600gt : G73 [GeForce 7600 GT] 10de:0391 1458 3427 7600gt : GV-NX76T128D-RH 10de:0391 1462 0452 7600gt : NX7600GT-VT2D256E 10de:0392 0000 0000 7600gs : G73 [GeForce 7600 GS] 10de:0392 1462 0622 7600gs : NX7600GS-T2D256EH 10de:0393 0000 0000 7300gt : G73 [GeForce 7300 GT] 10de:0393 10de 0412 7300gt : NX7300GT-TD256EH 10de:0393 1462 0412 7300gt : NX7300GT-TD256EH 10de:0394 0000 0000 7600le : G73 [GeForce 7600 LE] 10de:0395 0000 0000 7300gt : G73 [GeForce 7300 GT] 10de:0397 0000 0000 go7700 : G73M [GeForce Go 7700] 10de:0398 0000 0000 go7600 : G73M [GeForce Go 7600] 10de:0398 1025 006c go7600 : Aspire 9814WKMi 10de:0399 0000 0000 go7600gt : G73M [GeForce Go 7600 GT] 10de:039a 0000 0000 nvs300m : G73M [Quadro NVS 300M] 10de:039b 0000 0000 go7900 : G73M [GeForce Go 7900 SE] 10de:039c 0000 0000 fx550m : G73GLM [Quadro FX 550M] 10de:039c 10de 039c fx550m : Quadro FX 560M 10de:039e 0000 0000 fx560 : G73GL [Quadro FX 560] 10de:03d0 0000 0000 6150senforce430 : C61 [GeForce 6150SE nForce 430] 10de:03d0 1028 020e 6150senforce430 : Inspiron 531 10de:03d1 0000 0000 6100nforce405 : C61 [GeForce 6100 nForce 405] 10de:03d2 0000 0000 6100nforce400 : C61 [GeForce 6100 nForce 400] 10de:03d5 0000 0000 6100nforce420 : C61 [GeForce 6100 nForce 420] 10de:03d6 0000 0000 7025nforce630a : C61 [GeForce 7025 / nForce 630a] 10de:0400 0000 0000 8600gts : G84 [GeForce 8600 GTS] 10de:0400 1043 8241 8600gts : EN8600GTS 10de:0401 0000 0000 8600gt : G84 [GeForce 8600 GT] 10de:0402 0000 0000 8600gt : G84 [GeForce 8600 GT] 10de:0402 1458 3455 8600gt : GV-NX86T512H 10de:0402 1462 0910 8600gt : NX8600GT-T2D256EZ 10de:0403 0000 0000 8600gs : G84 [GeForce 8600 GS] 10de:0404 0000 0000 8400gs : G84 [GeForce 8400 GS] 10de:0404 1462 1230 8400gs : NX8400GS-TD256E 10de:0405 0000 0000 9500mgs : G84M [GeForce 9500M GS] 10de:0406 0000 0000 8300gs : G84 [GeForce 8300 GS] 10de:0407 0000 0000 8600mgt : G84M [GeForce 8600M GT] 10de:0408 0000 0000 9650mgs : G84M [GeForce 9650M GS] 10de:0409 0000 0000 8700mgt : G84M [GeForce 8700M GT] 10de:040a 0000 0000 fx370 : G84GL [Quadro FX 370] 10de:040b 0000 0000 nvs320m : G84GLM [Quadro NVS 320M] 10de:040c 0000 0000 fx570m : G84GLM [Quadro FX 570M] 10de:040c 17aa 20d9 fx570m : ThinkPad T61p 10de:040d 0000 0000 fx1600m : G84GLM [Quadro FX 1600M] 10de:040e 0000 0000 fx570 : G84GL [Quadro FX 570] 10de:040f 0000 0000 fx1700 : G84GL [Quadro FX 1700] 10de:0410 0000 0000 gt330 : G92 [GeForce GT 330] 10de:0414 0000 0000 9800gt : G92 [GeForce 9800 GT] 10de:0418 0000 0000 gt330 : G92 [GeForce GT 330 OEM] 10de:0420 0000 0000 8400 : G86 [GeForce 8400 SE] 10de:0421 0000 0000 8500gt : G86 [GeForce 8500 GT] 10de:0421 1462 0960 8500gt : NX8500GT-TD512EH/M2 10de:0422 0000 0000 8400gs : G86 [GeForce 8400 GS] 10de:0423 0000 0000 8300gs : G86 [GeForce 8300 GS] 10de:0424 0000 0000 8400gs : G86 [GeForce 8400 GS] 10de:0425 0000 0000 8600mgs : G86M [GeForce 8600M GS] 10de:0425 1025 0121 8600mgs : Aspire 5920G 10de:0425 1043 1514 8600mgs : F3SV 10de:0426 0000 0000 8400mgt : G86M [GeForce 8400M GT] 10de:0427 0000 0000 8400mgs : G86M [GeForce 8400M GS] 10de:0427 103c 30cc 8400mgs : Pavilion dv6700 10de:0427 103c 30cf 8400mgs : Pavilion dv9668eg Laptop 10de:0428 0000 0000 8400mg : G86M [GeForce 8400M G] 10de:0429 0000 0000 nvs140m : G86M [Quadro NVS 140M] 10de:0429 17aa 20d8 nvs140m : ThinkPad T61 10de:042a 0000 0000 nvs130m : G86M [Quadro NVS 130M] 10de:042b 0000 0000 nvs135m : G86M [Quadro NVS 135M] 10de:042c 0000 0000 9400gt : G86 [GeForce 9400 GT] 10de:042d 0000 0000 fx360m : G86GLM [Quadro FX 360M] 10de:042e 0000 0000 9300mg : G86M [GeForce 9300M G] 10de:042f 0000 0000 nvs290 : G86 [Quadro NVS 290] 10de:0531 0000 0000 7150mnforce630m : C67 [GeForce 7150M / nForce 630M] 10de:0533 0000 0000 7000mnforce610m : C67 [GeForce 7000M / nForce 610M] 10de:053a 0000 0000 7050pvnforce630a : C68 [GeForce 7050 PV / nForce 630a] 10de:053b 0000 0000 7050pvnforce630a : C68 [GeForce 7050 PV / nForce 630a] 10de:053b 1043 8308 7050pvnforce630a : M2N68-AM Motherboard 10de:053e 0000 0000 7025nforce630a : C68 [GeForce 7025 / nForce 630a] 10de:0569 0000 0000 8200 : MCP78S [GeForce 8200] PCI Express Bridge 10de:0569 103c 2a9e 8200 : Pavilion p6310f 10de:0569 1043 82e8 8200 : M3N72-D 10de:0569 1462 7508 8200 : K9N2GM-FIH 10de:0569 1849 0569 8200 : K10N78FullHD-hSLI R3.0 PCI Express Bridge 10de:05e0 0000 0000 gtx295 : GT200b [GeForce GTX 295] 10de:05e1 0000 0000 gtx280 : GT200 [GeForce GTX 280] 10de:05e2 0000 0000 gtx260 : GT200 [GeForce GTX 260] 10de:05e3 0000 0000 gtx285 : GT200b [GeForce GTX 285] 10de:05e3 1682 2490 gtx285 : GX-285N-ZDF 10de:05e6 0000 0000 gtx275 : GT200b [GeForce GTX 275] 10de:05e7 0000 0000 c1060m1060 : GT200GL [Tesla C1060 / M1060] 10de:05e7 10de 0595 c1060m1060 : Tesla T10 Processor 10de:05e7 10de 068f c1060m1060 : Tesla T10 Processor 10de:05e7 10de 0697 c1060m1060 : Tesla M1060 10de:05e7 10de 0714 c1060m1060 : Tesla M1060 10de:05e7 10de 0743 c1060m1060 : Tesla M1060 10de:05ea 0000 0000 gtx260 : GT200 [GeForce GTX 260] 10de:05eb 0000 0000 gtx295 : GT200 [GeForce GTX 295] 10de:05ed 0000 0000 plex2200d2 : GT200GL [Quadro Plex 2200 D2] 10de:05f1 0000 0000 gtx280 : GT200 [GeForce GTX 280] 10de:05f2 0000 0000 gtx260 : GT200 [GeForce GTX 260] 10de:05f8 0000 0000 plex2200s4 : GT200GL [Quadro Plex 2200 S4] 10de:05f9 0000 0000 cx : GT200GL [Quadro CX] 10de:05fd 0000 0000 fx5800 : GT200GL [Quadro FX 5800] 10de:05fe 0000 0000 fx4800 : GT200GL [Quadro FX 4800] 10de:05ff 0000 0000 fx3800 : GT200GL [Quadro FX 3800] 10de:0600 0000 0000 8800gts512 : G92 [GeForce 8800 GTS 512] 10de:0601 0000 0000 9800gt : G92 [GeForce 9800 GT] 10de:0602 0000 0000 8800gt : G92 [GeForce 8800 GT] 10de:0603 0000 0000 gt230 : G92 [GeForce GT 230 OEM] 10de:0604 0000 0000 9800gx2 : G92 [GeForce 9800 GX2] 10de:0605 0000 0000 9800gt : G92 [GeForce 9800 GT] 10de:0606 0000 0000 8800gs : G92 [GeForce 8800 GS] 10de:0607 0000 0000 gts240 : G92 [GeForce GTS 240] 10de:0608 0000 0000 9800mgtx : G92M [GeForce 9800M GTX] 10de:0609 0000 0000 8800mgts : G92M [GeForce 8800M GTS] 10de:0609 106b 00a7 8800mgts : GeForce 8800 GS 10de:060a 0000 0000 gtx280m : G92M [GeForce GTX 280M] 10de:060b 0000 0000 9800mgt : G92M [GeForce 9800M GT] 10de:060c 0000 0000 8800mgtx : G92M [GeForce 8800M GTX] 10de:060d 0000 0000 8800gs : G92 [GeForce 8800 GS] 10de:060f 0000 0000 gtx285m : G92M [GeForce GTX 285M] 10de:0610 0000 0000 9600gso : G92 [GeForce 9600 GSO] 10de:0610 1682 2385 9600gso : GeForce 9600 GSO 768mb 10de:0611 0000 0000 8800gt : G92 [GeForce 8800 GT] 10de:0611 107d 2ab0 8800gt : Winfast PX8800 GT PCI-E 10de:0611 1462 1170 8800gt : NX8800GT series model V117 2xDVI+TV 10de:0611 19da 1040 8800gt : ZT-88TES2P-FSP 10de:0612 0000 0000 9800gtx9800gtx+ : G92 [GeForce 9800 GTX / 9800 GTX+] 10de:0613 0000 0000 9800gtx+ : G92 [GeForce 9800 GTX+] 10de:0614 0000 0000 9800gt : G92 [GeForce 9800 GT] 10de:0614 107d 2ab3 9800gt : WinFast PX9800 GT (S-Fanpipe) 10de:0615 0000 0000 gts250 : G92 [GeForce GTS 250] 10de:0615 3842 1150 gts250 : GeForce GTS 250 P/N 512-P3-1150-TR 10de:0615 3842 1151 gts250 : GeForce GTS 250 P/N 512-P3-1151-TR 10de:0615 3842 1155 gts250 : GeForce GTS 250 P/N 01G-P3-1155-TR 10de:0615 3842 1156 gts250 : GeForce GTS 250 P/N 01G-P3-1156-TR 10de:0617 0000 0000 9800mgtx : G92M [GeForce 9800M GTX] 10de:0618 0000 0000 gtx260m : G92M [GeForce GTX 260M] 10de:0619 0000 0000 fx4700x2 : G92GL [Quadro FX 4700 X2] 10de:061a 0000 0000 fx3700 : G92GL [Quadro FX 3700] 10de:061b 0000 0000 vx200 : G92GL [Quadro VX 200] 10de:061c 0000 0000 fx3600m : G92GLM [Quadro FX 3600M] 10de:061d 0000 0000 fx2800m : G92GLM [Quadro FX 2800M] 10de:061e 0000 0000 fx3700m : G92GLM [Quadro FX 3700M] 10de:061f 0000 0000 fx3800m : G92GLM [Quadro FX 3800M] 10de:0620 0000 0000 9800gt : G94 [GeForce 9800 GT] 10de:0621 0000 0000 gt230 : G94 [GeForce GT 230] 10de:0622 0000 0000 9600gt : G94 [GeForce 9600 GT] 10de:0622 107d 2ac1 9600gt : WinFast PX9600GT 1024MB 10de:0622 1458 3481 9600gt : GV-NX96T512HP 10de:0623 0000 0000 9600gs : G94 [GeForce 9600 GS] 10de:0624 0000 0000 9600gtgreen : G94 [GeForce 9600 GT Green Edition] 10de:0625 0000 0000 9600gso512 : G94 [GeForce 9600 GSO 512] 10de:0626 0000 0000 gt130 : G94 [GeForce GT 130] 10de:0627 0000 0000 gt140 : G94 [GeForce GT 140] 10de:0628 0000 0000 9800mgts : G94M [GeForce 9800M GTS] 10de:062a 0000 0000 9700mgts : G94M [GeForce 9700M GTS] 10de:062b 0000 0000 9800mgs : G94M [GeForce 9800M GS] 10de:062c 0000 0000 9800mgts : G94M [GeForce 9800M GTS] 10de:062d 0000 0000 9600gt : G94 [GeForce 9600 GT] 10de:062e 0000 0000 9600gt : G94 [GeForce 9600 GT] 10de:062e 106b 0605 9600gt : GeForce GT 130 10de:062f 0000 0000 9800s : G94 [GeForce 9800 S] 10de:0630 0000 0000 9600gt : G94 [GeForce 9600 GT] 10de:0631 0000 0000 gts160m : G94M [GeForce GTS 160M] 10de:0632 0000 0000 gts150m : G94M [GeForce GTS 150M] 10de:0633 0000 0000 gt220 : G94 [GeForce GT 220] 10de:0635 0000 0000 9600gso : G94 [GeForce 9600 GSO] 10de:0637 0000 0000 9600gt : G94 [GeForce 9600 GT] 10de:0638 0000 0000 fx1800 : G94GL [Quadro FX 1800] 10de:063a 0000 0000 fx2700m : G94GLM [Quadro FX 2700M] 10de:063f 0000 0000 9600ge : G94 [GeForce 9600 GE] 10de:0640 0000 0000 9500gt : G96 [GeForce 9500 GT] 10de:0641 0000 0000 9400gt : G96 [GeForce 9400 GT] 10de:0641 1682 4009 9400gt : PV-T94G-ZAFG 10de:0643 0000 0000 9500gt : G96 [GeForce 9500 GT] 10de:0644 0000 0000 9500gs : G96 [GeForce 9500 GS] 10de:0644 174b 9600 9500gs : Geforce 9500GS 512M DDR2 V/D/HDMI 10de:0645 0000 0000 9500gs : G96 [GeForce 9500 GS] 10de:0646 0000 0000 gt120 : G96 [GeForce GT 120] 10de:0647 0000 0000 9600mgt : G96M [GeForce 9600M GT] 10de:0648 0000 0000 9600mgs : G96M [GeForce 9600M GS] 10de:0649 0000 0000 9600mgt : G96M [GeForce 9600M GT] 10de:0649 1043 202d 9600mgt : GeForce GT 220M 10de:064a 0000 0000 9700mgt : G96M [GeForce 9700M GT] 10de:064b 0000 0000 9500mg : G96M [GeForce 9500M G] 10de:064c 0000 0000 9650mgt : G96M [GeForce 9650M GT] 10de:064d 0000 0000 9600gt : G96 [GeForce 9600 GT] 10de:064e 0000 0000 9600gt9800gt : G96 [GeForce 9600 GT / 9800 GT] 10de:0651 0000 0000 g110m : G96M [GeForce G 110M] 10de:0652 0000 0000 gt130m : G96M [GeForce GT 130M] 10de:0652 152d 0850 gt130m : GeForce GT 240M LE 10de:0653 0000 0000 gt120m : G96M [GeForce GT 120M] 10de:0654 0000 0000 gt220m : G96M [GeForce GT 220M] 10de:0654 1043 14a2 gt220m : GeForce GT 320M 10de:0654 1043 14d2 gt220m : GeForce GT 320M 10de:0655 0000 0000 gt120 : G96 [GeForce GT 120] 10de:0656 0000 0000 9650s : G96 [GeForce 9650 S] 10de:0658 0000 0000 fx380 : G96GL [Quadro FX 380] 10de:0659 0000 0000 fx580 : G96GL [Quadro FX 580] 10de:065a 0000 0000 fx1700m : G96GLM [Quadro FX 1700M] 10de:065b 0000 0000 9400gt : G96 [GeForce 9400 GT] 10de:065c 0000 0000 fx770m : G96GLM [Quadro FX 770M] 10de:065d 0000 0000 9500ga9600gtgts250 : G96 [GeForce 9500 GA / 9600 GT / GTS 250] 10de:065f 0000 0000 g210 : G96 [GeForce G210] 10de:06c0 0000 0000 gtx480 : GF100 [GeForce GTX 480] 10de:06c4 0000 0000 gtx465 : GF100 [GeForce GTX 465] 10de:06ca 0000 0000 gtx480m : GF100M [GeForce GTX 480M] 10de:06cb 0000 0000 gtx480 : GF100 [GeForce GTX 480] 10de:06cd 0000 0000 gtx470 : GF100 [GeForce GTX 470] 10de:06d1 0000 0000 c2050c2070 : GF100GL [Tesla C2050 / C2070] 10de:06d1 10de 0771 c2050c2070 : Tesla C2050 10de:06d1 10de 0772 c2050c2070 : Tesla C2070 10de:06d2 0000 0000 m2070 : GF100GL [Tesla M2070] 10de:06d2 10de 0774 m2070 : Tesla M2070 10de:06d2 10de 0830 m2070 : Tesla M2070 10de:06d2 10de 0842 m2070 : Tesla M2070 10de:06d2 10de 088f m2070 : Tesla X2070 10de:06d2 10de 0908 m2070 : Tesla M2070 10de:06d8 0000 0000 6000 : GF100GL [Quadro 6000] 10de:06d9 0000 0000 5000 : GF100GL [Quadro 5000] 10de:06da 0000 0000 5000m : GF100GLM [Quadro 5000M] 10de:06dc 0000 0000 6000 : GF100GL [Quadro 6000] 10de:06dd 0000 0000 4000 : GF100GL [Quadro 4000] 10de:06de 0000 0000 t20processor : GF100GL [Tesla T20 Processor] 10de:06de 10de 0773 t20processor : Tesla S2050 10de:06de 10de 082f t20processor : Tesla M2050 10de:06de 10de 0840 t20processor : Tesla X2070 10de:06de 10de 0842 t20processor : Tesla M2050 10de:06de 10de 0846 t20processor : Tesla M2050 10de:06de 10de 0866 t20processor : Tesla M2050 10de:06de 10de 0907 t20processor : Tesla M2050 10de:06de 10de 091e t20processor : Tesla M2050 10de:06df 0000 0000 m2070-q : GF100GL [Tesla M2070-Q] 10de:06df 10de 084d m2070-q : Tesla M2070-Q 10de:06df 10de 087f m2070-q : Tesla M2070-Q 10de:06e0 0000 0000 9300ge : G98 [GeForce 9300 GE] 10de:06e0 107d 5a96 9300ge : Geforce 9300GE 10de:06e1 0000 0000 9300gs : G98 [GeForce 9300 GS] 10de:06e2 0000 0000 8400 : G98 [GeForce 8400] 10de:06e3 0000 0000 8300gs : G98 [GeForce 8300 GS] 10de:06e4 0000 0000 8400gs : G98 [GeForce 8400 GS Rev. 2] 10de:06e4 1458 3475 8400gs : GV-NX84S256HE [GeForce 8400 GS] 10de:06e5 0000 0000 9300mgs : G98M [GeForce 9300M GS] 10de:06e6 0000 0000 g100 : G98 [GeForce G 100] 10de:06e7 0000 0000 9300 : G98 [GeForce 9300 SE] 10de:06e8 0000 0000 9200mgs : G98M [GeForce 9200M GS] 10de:06e8 103c 360b 9200mgs : GeForce 9200M GE 10de:06e9 0000 0000 9300mgs : G98M [GeForce 9300M GS] 10de:06e9 1043 19b2 9300mgs : U6V laptop 10de:06ea 0000 0000 nvs150m : G98M [Quadro NVS 150M] 10de:06eb 0000 0000 nvs160m : G98M [Quadro NVS 160M] 10de:06ec 0000 0000 g105m : G98M [GeForce G 105M] 10de:06ed 0000 0000 9600gt9800gt : G98 [GeForce 9600 GT / 9800 GT] 10de:06ee 0000 0000 9600gt9800gt : G98 [GeForce 9600 GT / 9800 GT] 10de:06ef 0000 0000 g103m : G98M [GeForce G 103M] 10de:06f1 0000 0000 g105m : G98M [GeForce G 105M] 10de:06f8 0000 0000 nvs420 : G98 [Quadro NVS 420] 10de:06f9 0000 0000 fx370lp : G98GL [Quadro FX 370 LP] 10de:06fa 0000 0000 nvs450 : G98 [Quadro NVS 450] 10de:06fb 0000 0000 fx370m : G98GLM [Quadro FX 370M] 10de:06fd 0000 0000 nvs295 : G98 [Quadro NVS 295] 10de:0752 0000 0000 8200 : MCP78S [GeForce 8200] SMBus 10de:0752 103c 2a9e 8200 : Pavilion p6310f 10de:0752 1043 82e8 8200 : M3N72-D 10de:0752 1462 7508 8200 : K9N2GM-FIH 10de:0752 1849 0752 8200 : K10N78FullHD-hSLI R3.0 SMBus 10de:0753 0000 0000 8200 : MCP78S [GeForce 8200] Co-Processor 10de:0753 103c 2a9e 8200 : Pavilion p6310f 10de:0753 1043 82e8 8200 : M3N72-D 10de:0753 1462 7508 8200 : K9N2GM-FIH 10de:0753 1849 0753 8200 : K10N78FullHD-hSLI R3.0 Co-Processor 10de:0759 0000 0000 8200ide : MCP78S [GeForce 8200] IDE 10de:0759 1043 82e8 8200ide : M3N72-D 10de:0759 1462 7508 8200ide : K9N2GM-FIH 10de:0759 1849 0759 8200ide : K10N78FullHD-hSLI R3.0 IDE 10de:075a 0000 0000 8200 : MCP78S [GeForce 8200] PCI Bridge 10de:075a 103c 2a9e 8200 : Pavilion p6310f 10de:075a 1043 82e8 8200 : M3N72-D 10de:075a 1849 075a 8200 : K10N78FullHD-hSLI R3.0 PCI Bridge 10de:075b 0000 0000 8200 : MCP78S [GeForce 8200] PCI Express Bridge 10de:075b 103c 2a9e 8200 : Pavilion p6310f 10de:075b 1043 82e8 8200 : M3N72-D 10de:075b 1462 7508 8200 : K9N2GM-FIH 10de:075b 1849 075b 8200 : K10N78FullHD-hSLI R3.0 PCI Express Bridge 10de:075c 0000 0000 8200 : MCP78S [GeForce 8200] LPC Bridge 10de:075c 103c 2a9e 8200 : Pavilion p6310f 10de:075c 1462 7508 8200 : K9N2GM-FIH 10de:075c 1849 075c 8200 : K10N78FullHD-hSLI R3.0 LPC Bridge 10de:075d 0000 0000 8200 : MCP78S [GeForce 8200] LPC Bridge 10de:075d 1043 82e8 8200 : M3N72-D 10de:0778 0000 0000 8200 : MCP78S [GeForce 8200] PCI Express Bridge 10de:0778 103c 2a9e 8200 : Pavilion p6310f 10de:0778 1043 82e8 8200 : M3N72-D 10de:0778 1462 7508 8200 : K9N2GM-FIH 10de:0778 1849 0778 8200 : K10N78FullHD-hSLI R3.0 PCI Express Bridge 10de:077a 0000 0000 8200 : MCP78S [GeForce 8200] PCI Bridge 10de:077a 103c 2a9e 8200 : Pavilion p6310f 10de:077a 1043 82e8 8200 : M3N72-D 10de:077a 1462 7508 8200 : K9N2GM-FIH 10de:077a 1849 077a 8200 : K10N78FullHD-hSLI R3.0 PCI Bridge 10de:07e0 0000 0000 7150nforce630i : C73 [GeForce 7150 / nForce 630i] 10de:07e0 1afa 7150 7150nforce630i : JW-IN7150-HD 10de:07e1 0000 0000 7100nforce630i : C73 [GeForce 7100 / nForce 630i] 10de:07e1 1019 297a 7100nforce630i : MCP73PVT-SM 10de:07e2 0000 0000 7050nforce630i : C73 [GeForce 7050 / nForce 630i] 10de:07e3 0000 0000 7050nforce610i : C73 [GeForce 7050 / nForce 610i] 10de:07e3 147b 1c3e 7050nforce610i : I-N73V motherboard 10de:07e5 0000 0000 7100nforce620i : C73 [GeForce 7100 / nForce 620i] 10de:0840 0000 0000 8200m : C77 [GeForce 8200M] 10de:0844 0000 0000 9100mg : C77 [GeForce 9100M G] 10de:0845 0000 0000 8200mg : C77 [GeForce 8200M G] 10de:0846 0000 0000 9200 : C77 [GeForce 9200] 10de:0847 0000 0000 9100 : C78 [GeForce 9100] 10de:0847 103c 2a9e 9100 : Pavilion p6310f 10de:0848 0000 0000 8300 : C77 [GeForce 8300] 10de:0849 0000 0000 8200 : C77 [GeForce 8200] 10de:0849 1462 7508 8200 : K9N2GM-FIH 10de:0849 1849 0849 8200 : K10N78FullHD-hSLI R3.0 GeForce 8200 10de:084b 0000 0000 8200 : C77 [GeForce 8200] 10de:084f 0000 0000 8100nforce720a : C77 [GeForce 8100 / nForce 720a] 10de:0860 0000 0000 9300 : C79 [GeForce 9300] 10de:0861 0000 0000 9400 : C79 [GeForce 9400] 10de:0862 0000 0000 9400mg : C79 [GeForce 9400M G] 10de:0863 0000 0000 9400m : C79 [GeForce 9400M] 10de:0863 106b 00aa 9400m : MacBook5,1 10de:0864 0000 0000 9300 : C79 [GeForce 9300] 10de:0865 0000 0000 9300ion : C79 [GeForce 9300 / ION] 10de:0866 0000 0000 9400mg : C79 [GeForce 9400M G] 10de:0866 106b 00b1 9400mg : GeForce 9400M 10de:0867 0000 0000 9400 : C79 [GeForce 9400] 10de:0867 106b 00ad 9400 : iMac 9,1 10de:0869 0000 0000 9400 : MCP7A [GeForce 9400] 10de:086a 0000 0000 9400 : C79 [GeForce 9400] 10de:086c 0000 0000 9300nforce730i : C79 [GeForce 9300 / nForce 730i] 10de:086d 0000 0000 9200 : C79 [GeForce 9200] 10de:086e 0000 0000 9100mg : C79 [GeForce 9100M G] 10de:086f 0000 0000 8200mg : MCP79 [GeForce 8200M G] 10de:0870 0000 0000 9400m : C79 [GeForce 9400M] 10de:0871 0000 0000 9200 : C79 [GeForce 9200] 10de:0872 0000 0000 g102m : C79 [GeForce G102M] 10de:0872 1043 19b4 g102m : GeForce G102M 10de:0872 1043 1aa2 g102m : GeForce G102M 10de:0872 1043 1c02 g102m : GeForce G102M 10de:0872 1043 1c42 g102m : GeForce G205M 10de:0873 0000 0000 g102m : C79 [GeForce G102M] 10de:0873 1043 19b4 g102m : GeForce G102M 10de:0873 1043 1c12 g102m : GeForce G102M 10de:0873 1043 1c52 g102m : GeForce G205M 10de:0876 0000 0000 9400mion : C79 [GeForce 9400M / ION] 10de:087a 0000 0000 9400 : C79 [GeForce 9400] 10de:08a0 0000 0000 320m : MCP89 [GeForce 320M] 10de:08a2 0000 0000 320m : MCP89 [GeForce 320M] 10de:08a3 0000 0000 320m : MCP89 [GeForce 320M] 10de:08a4 0000 0000 320m : MCP89 [GeForce 320M] 10de:08a5 0000 0000 320m : MCP89 [GeForce 320M] 10de:0a20 0000 0000 gt220 : GT216 [GeForce GT 220] 10de:0a20 1043 8311 gt220 : ENGT220/DI/1GD3(LP)/V2 10de:0a21 0000 0000 gt330m : GT216M [GeForce GT 330M] 10de:0a22 0000 0000 315 : GT216 [GeForce 315] 10de:0a23 0000 0000 210 : GT216 [GeForce 210] 10de:0a26 0000 0000 405 : GT216 [GeForce 405] 10de:0a27 0000 0000 405 : GT216 [GeForce 405] 10de:0a28 0000 0000 gt230m : GT216M [GeForce GT 230M] 10de:0a29 0000 0000 gt330m : GT216M [GeForce GT 330M] 10de:0a2a 0000 0000 gt230m : GT216M [GeForce GT 230M] 10de:0a2b 0000 0000 gt330m : GT216M [GeForce GT 330M] 10de:0a2d 0000 0000 gt320m : GT216M [GeForce GT 320M] 10de:0a30 0000 0000 505 : GT216 [GeForce 505] 10de:0a32 0000 0000 gt415 : GT216 [GeForce GT 415] 10de:0a34 0000 0000 gt240m : GT216M [GeForce GT 240M] 10de:0a35 0000 0000 gt325m : GT216M [GeForce GT 325M] 10de:0a38 0000 0000 400 : GT216GL [Quadro 400] 10de:0a3c 0000 0000 fx880m : GT216GLM [Quadro FX 880M] 10de:0a60 0000 0000 g210 : GT218 [GeForce G210] 10de:0a62 0000 0000 205 : GT218 [GeForce 205] 10de:0a63 0000 0000 310 : GT218 [GeForce 310] 10de:0a65 0000 0000 210 : GT218 [GeForce 210] 10de:0a65 1043 8334 210 : EN210 SILENT 10de:0a65 1458 36a9 210 : GV-N210D3-1GI (rev. 6.0/6.1) 10de:0a65 1462 8094 210 : N210 [Geforce 210] PCIe graphics adapter 10de:0a66 0000 0000 310 : GT218 [GeForce 310] 10de:0a67 0000 0000 315 : GT218 [GeForce 315] 10de:0a68 0000 0000 g105m : GT218M [GeForce G 105M] 10de:0a69 0000 0000 g105m : GT218M [GeForce G 105M] 10de:0a6e 0000 0000 305m : GT218M [GeForce 305M] 10de:0a70 0000 0000 310m : GT218M [GeForce 310M] 10de:0a71 0000 0000 305m : GT218M [GeForce 305M] 10de:0a72 0000 0000 310m : GT218M [GeForce 310M] 10de:0a73 0000 0000 305m : GT218M [GeForce 305M] 10de:0a74 0000 0000 g210m : GT218M [GeForce G210M] 10de:0a74 1b0a 903a g210m : GeForce G210 10de:0a75 0000 0000 310m : GT218M [GeForce 310M] 10de:0a78 0000 0000 fx380lp : GT218GL [Quadro FX 380 LP] 10de:0a7a 0000 0000 315m : GT218M [GeForce 315M] 10de:0a7a 104d 907e 315m : GeForce 315M 10de:0a7a 1179 fc50 315m : GeForce 315M 10de:0a7a 1179 fc61 315m : GeForce 315M 10de:0a7a 1179 fc71 315m : GeForce 315M 10de:0a7a 1179 fc90 315m : GeForce 315M 10de:0a7a 1179 fcc0 315m : GeForce 315M 10de:0a7a 1179 fcd0 315m : GeForce 315M 10de:0a7a 1179 fce2 315m : GeForce 315M 10de:0a7a 1179 fcf2 315m : GeForce 315M 10de:0a7a 1179 fd16 315m : GeForce 315M 10de:0a7a 1179 fd40 315m : GeForce 315M 10de:0a7a 1179 fd50 315m : GeForce 315M 10de:0a7a 1179 fd52 315m : GeForce 315M 10de:0a7a 1179 fd61 315m : GeForce 315M 10de:0a7a 1179 fd71 315m : GeForce 315M 10de:0a7a 1179 fd92 315m : GeForce 315M 10de:0a7a 1179 fd96 315m : GeForce 315M 10de:0a7a 1179 fdd0 315m : GeForce 315M 10de:0a7a 1179 fdd2 315m : GeForce 315M 10de:0a7a 1179 fdfe 315m : GeForce 315M 10de:0a7a 144d c0a2 315m : GeForce 315M 10de:0a7a 144d c0b2 315m : GeForce 315M 10de:0a7a 144d c581 315m : GeForce 315M 10de:0a7a 144d c587 315m : GeForce 315M 10de:0a7a 144d c588 315m : GeForce 315M 10de:0a7a 144d c597 315m : GeForce 315M 10de:0a7a 144d c606 315m : GeForce 315M 10de:0a7a 1462 aa51 315m : GeForce 405 10de:0a7a 1462 aa58 315m : GeForce 405 10de:0a7a 1462 ac71 315m : GeForce 405 10de:0a7a 1462 ac81 315m : GeForce 315M 10de:0a7a 1462 ac82 315m : GeForce 405 10de:0a7a 1462 ae33 315m : GeForce 405 10de:0a7a 1642 3980 315m : GeForce 405 10de:0a7a 17aa 3950 315m : GeForce 405M 10de:0a7a 17aa 397d 315m : GeForce 405M 10de:0a7a 1b0a 2091 315m : GeForce 315M 10de:0a7a 1b0a 90b4 315m : GeForce 405 10de:0a7a 1bfd 0003 315m : GeForce 405 10de:0a7a 1bfd 8006 315m : GeForce 405 10de:0a7a 1bfd 8007 315m : GeForce 315M 10de:0a7b 0000 0000 505 : GT218 [GeForce 505] 10de:0a7c 0000 0000 fx380m : GT218GLM [Quadro FX 380M] 10de:0ca0 0000 0000 gt330 : GT215 [GeForce GT 330] 10de:0ca2 0000 0000 gt320 : GT215 [GeForce GT 320] 10de:0ca3 0000 0000 gt240 : GT215 [GeForce GT 240] 10de:0ca4 0000 0000 gt340 : GT215 [GeForce GT 340] 10de:0ca5 0000 0000 gt220 : GT215 [GeForce GT 220] 10de:0ca7 0000 0000 gt330 : GT215 [GeForce GT 330] 10de:0ca8 0000 0000 gts260m : GT215M [GeForce GTS 260M] 10de:0ca9 0000 0000 gts250m : GT215M [GeForce GTS 250M] 10de:0caf 0000 0000 gt335m : GT215M [GeForce GT 335M] 10de:0cb0 0000 0000 gts350m : GT215M [GeForce GTS 350M] 10de:0cb1 0000 0000 gts360m : GT215M [GeForce GTS 360M] 10de:0cbc 0000 0000 fx1800m : GT215GLM [Quadro FX 1800M] 10de:0dc0 0000 0000 gt440 : GF106 [GeForce GT 440] 10de:0dc4 0000 0000 gts450 : GF106 [GeForce GTS 450] 10de:0dc5 0000 0000 gts450 : GF106 [GeForce GTS 450 OEM] 10de:0dc6 0000 0000 gts450 : GF106 [GeForce GTS 450 OEM] 10de:0dcd 0000 0000 gt555m : GF106M [GeForce GT 555M] 10de:0dce 0000 0000 gt555m : GF106M [GeForce GT 555M] 10de:0dd1 0000 0000 gtx460m : GF106M [GeForce GTX 460M] 10de:0dd1 1558 8687 gtx460m : CLEVO/KAPOK W860CU 10de:0dd2 0000 0000 gt445m : GF106M [GeForce GT 445M] 10de:0dd3 0000 0000 gt435m : GF106M [GeForce GT 435M] 10de:0dd6 0000 0000 gt550m : GF106M [GeForce GT 550M] 10de:0dd8 0000 0000 2000 : GF106GL [Quadro 2000] 10de:0dd8 10de 0914 2000 : Quadro 2000D 10de:0dda 0000 0000 2000m : GF106GLM [Quadro 2000M] 10de:0de0 0000 0000 gt440 : GF108 [GeForce GT 440] 10de:0de1 0000 0000 gt430 : GF108 [GeForce GT 430] 10de:0de1 3842 1430 gt430 : GeForce GT 430 10de:0de2 0000 0000 gt420 : GF108 [GeForce GT 420] 10de:0de3 0000 0000 gt635m : GF108M [GeForce GT 635M] 10de:0de4 0000 0000 gt520 : GF108 [GeForce GT 520] 10de:0de5 0000 0000 gt530 : GF108 [GeForce GT 530] 10de:0de7 0000 0000 gt610 : GF108 [GeForce GT 610] 10de:0de8 0000 0000 gt620m : GF108M [GeForce GT 620M] 10de:0de9 0000 0000 gt620m/630m/635m/640mle : GF108M [GeForce GT 620M/630M/635M/640M LE] 10de:0de9 1025 0692 gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 1025 0725 gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 1025 0728 gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 1025 072b gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 1025 072e gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 1025 0753 gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 1025 0754 gt620m/630m/635m/640mle : GeForce GT 620M 10de:0de9 17aa 3977 gt620m/630m/635m/640mle : GeForce GT 640M LE 10de:0de9 1b0a 2210 gt620m/630m/635m/640mle : GeForce GT 635M 10de:0dea 0000 0000 610m : GF108M [GeForce 610M] 10de:0dea 17aa 365a 610m : GeForce 615 10de:0dea 17aa 365b 610m : GeForce 615 10de:0dea 17aa 365e 610m : GeForce 615 10de:0dea 17aa 3660 610m : GeForce 615 10de:0dea 17aa 366c 610m : GeForce 615 10de:0deb 0000 0000 gt555m : GF108M [GeForce GT 555M] 10de:0dec 0000 0000 gt525m : GF108M [GeForce GT 525M] 10de:0ded 0000 0000 gt520m : GF108M [GeForce GT 520M] 10de:0dee 0000 0000 gt415m : GF108M [GeForce GT 415M] 10de:0df0 0000 0000 gt425m : GF108M [GeForce GT 425M] 10de:0df1 0000 0000 gt420m : GF108M [GeForce GT 420M] 10de:0df2 0000 0000 gt435m : GF108M [GeForce GT 435M] 10de:0df3 0000 0000 gt420m : GF108M [GeForce GT 420M] 10de:0df4 0000 0000 gt540m : GF108M [GeForce GT 540M] 10de:0df4 152d 0952 gt540m : GeForce GT 630M 10de:0df4 152d 0953 gt540m : GeForce GT 630M 10de:0df5 0000 0000 gt525m : GF108M [GeForce GT 525M] 10de:0df6 0000 0000 gt550m : GF108M [GeForce GT 550M] 10de:0df7 0000 0000 gt520m : GF108M [GeForce GT 520M] 10de:0df8 0000 0000 600 : GF108GL [Quadro 600] 10de:0df9 0000 0000 500m : GF108GLM [Quadro 500M] 10de:0dfa 0000 0000 1000m : GF108GLM [Quadro 1000M] 10de:0e22 0000 0000 gtx460 : GF104 [GeForce GTX 460] 10de:0e22 1462 2322 gtx460 : N460GTX Cyclone 1GD5/OC 10de:0e23 0000 0000 gtx460 : GF104 [GeForce GTX 460 SE] 10de:0e24 0000 0000 gtx460 : GF104 [GeForce GTX 460 OEM] 10de:0e30 0000 0000 gtx470m : GF104M [GeForce GTX 470M] 10de:0e31 0000 0000 gtx485m : GF104M [GeForce GTX 485M] 10de:0e3a 0000 0000 3000m : GF104GLM [Quadro 3000M] 10de:0e3b 0000 0000 4000m : GF104GLM [Quadro 4000M] 10de:0f00 0000 0000 gt630 : GF108 [GeForce GT 630] 10de:0f01 0000 0000 gt620 : GF108 [GeForce GT 620] 10de:0f02 0000 0000 gt730 : GF108 [GeForce GT 730] 10de:0f06 0000 0000 gt730 : GF108 [GeForce GT 730] 10de:0fc0 0000 0000 gt640 : GK107 [GeForce GT 640 OEM] 10de:0fc1 0000 0000 gt640 : GK107 [GeForce GT 640] 10de:0fc2 0000 0000 gt630 : GK107 [GeForce GT 630 OEM] 10de:0fc6 0000 0000 gtx650 : GK107 [GeForce GTX 650] 10de:0fc6 1043 8428 gtx650 : GTX650-DC-1GD5 10de:0fc8 0000 0000 gt740 : GK107 [GeForce GT 740] 10de:0fc9 0000 0000 gt730 : GK107 [GeForce GT 730] 10de:0fcd 0000 0000 gt755m : GK107M [GeForce GT 755M] 10de:0fce 0000 0000 gt640mle : GK107M [GeForce GT 640M LE] 10de:0fd1 0000 0000 gt650m : GK107M [GeForce GT 650M] 10de:0fd1 1043 1597 gt650m : GeForce GT 650M 10de:0fd1 1043 15a7 gt650m : GeForce GT 650M 10de:0fd1 1043 2103 gt650m : N56VZ 10de:0fd1 1043 2105 gt650m : GeForce GT 650M 10de:0fd1 1043 2141 gt650m : GeForce GT 650M 10de:0fd2 0000 0000 gt640m : GK107M [GeForce GT 640M] 10de:0fd2 1028 054f gt640m : GeForce GT 640M 10de:0fd2 1028 055f gt640m : GeForce GT 640M 10de:0fd2 1028 0595 gt640m : GeForce GT 640M LE 10de:0fd2 1028 05b2 gt640m : GeForce GT 640M LE 10de:0fd3 0000 0000 gt640mle : GK107M [GeForce GT 640M LE] 10de:0fd4 0000 0000 gtx660m : GK107M [GeForce GTX 660M] 10de:0fd5 0000 0000 gt650m : GK107M [GeForce GT 650M Mac Edition] 10de:0fd8 0000 0000 gt640m : GK107M [GeForce GT 640M Mac Edition] 10de:0fd9 0000 0000 gt645m : GK107M [GeForce GT 645M] 10de:0fdf 0000 0000 gt740m : GK107M [GeForce GT 740M] 10de:0fe0 0000 0000 gtx660m : GK107M [GeForce GTX 660M Mac Edition] 10de:0fe1 0000 0000 gt730m : GK107M [GeForce GT 730M] 10de:0fe2 0000 0000 gt745m : GK107M [GeForce GT 745M] 10de:0fe3 0000 0000 gt745m : GK107M [GeForce GT 745M] 10de:0fe3 103c 2b16 gt745m : GeForce GT 745A 10de:0fe3 17aa 3675 gt745m : GeForce GT 745A 10de:0fe4 0000 0000 gt750m : GK107M [GeForce GT 750M] 10de:0fe5 0000 0000 k340usm : GK107 [GeForce K340 USM] 10de:0fe9 0000 0000 gt750m : GK107M [GeForce GT 750M Mac Edition] 10de:0fea 0000 0000 gt755m : GK107M [GeForce GT 755M Mac Edition] 10de:0fec 0000 0000 710a : GK107M [GeForce 710A] 10de:0fed 0000 0000 820m : GK107M [GeForce 820M] 10de:0fee 0000 0000 810m : GK107M [GeForce 810M] 10de:0ff3 0000 0000 k420 : GK107GL [Quadro K420] 10de:0ff6 0000 0000 k1100m : GK107GLM [Quadro K1100M] 10de:0ff6 103c 197b k1100m : ZBook 15 10de:0ff8 0000 0000 k500m : GK107GLM [Quadro K500M] 10de:0ff9 0000 0000 k2000d : GK107GL [Quadro K2000D] 10de:0ffa 0000 0000 k600 : GK107GL [Quadro K600] 10de:0ffb 0000 0000 k2000m : GK107GLM [Quadro K2000M] 10de:0ffc 0000 0000 k1000m : GK107GLM [Quadro K1000M] 10de:0ffe 0000 0000 k2000 : GK107GL [Quadro K2000] 10de:0fff 0000 0000 410 : GK107GL [Quadro 410] 10de:1001 0000 0000 gtxz : GK110B [GeForce GTX TITAN Z] 10de:1003 0000 0000 gtxtitanle : GK110 [GeForce GTX Titan LE] 10de:1004 0000 0000 gtx780 : GK110 [GeForce GTX 780] 10de:1004 3842 0784 gtx780 : GK110B [GeForce GTX 780 SC w/ ACX Cooler] 10de:1004 3842 1784 gtx780 : GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler] 10de:1004 3842 1788 gtx780 : GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler] 10de:1005 0000 0000 gtx : GK110 [GeForce GTX TITAN] 10de:1005 1043 8451 gtx : GTXTITAN-6GD5 10de:1005 10de 1035 gtx : GeForce GTX Titan 10de:1005 3842 2790 gtx : GeForce GTX Titan 10de:1005 3842 2791 gtx : GeForce GTX Titan SC 10de:1005 3842 2793 gtx : GeForce GTX Titan SC Signature 10de:1005 3842 2794 gtx : GeForce GTX Titan SC Hydro Copper 10de:1005 3842 2795 gtx : GeForce GTX Titan SC Hydro Copper Signature 10de:1007 0000 0000 gtx780 : GK110 [GeForce GTX 780 Rev. 2] 10de:1008 0000 0000 gtx780 : GK110 [GeForce GTX 780 Ti 6GB] 10de:100a 0000 0000 gtx780 : GK110B [GeForce GTX 780 Ti] 10de:100c 0000 0000 gtxblack : GK110B [GeForce GTX TITAN Black] 10de:101e 0000 0000 k20x : GK110GL [Tesla K20X] 10de:101f 0000 0000 k20 : GK110GL [Tesla K20] 10de:1020 0000 0000 k20x : GK110GL [Tesla K20X] 10de:1021 0000 0000 k20xm : GK110GL [Tesla K20Xm] 10de:1022 0000 0000 k20c : GK110GL [Tesla K20c] 10de:1023 0000 0000 k40m : GK110BGL [Tesla K40m] 10de:1023 10de 097e k40m : 12GB Computational Accelerator 10de:1024 0000 0000 k40c : GK110BGL [Tesla K40c] 10de:1026 0000 0000 k20s : GK110GL [Tesla K20s] 10de:1027 0000 0000 k40st : GK110BGL [Tesla K40st] 10de:1028 0000 0000 k20m : GK110GL [Tesla K20m] 10de:1029 0000 0000 k40s : GK110BGL [Tesla K40s] 10de:102a 0000 0000 k40t : GK110BGL [Tesla K40t] 10de:102d 0000 0000 k80 : GK210GL [Tesla K80] 10de:102e 0000 0000 k40d : GK110BGL [Tesla K40d] 10de:102f 0000 0000 stellasolo : GK110BGL [Tesla Stella Solo] 10de:103a 0000 0000 k6000 : GK110GL [Quadro K6000] 10de:103c 0000 0000 k5200 : GK110GL [Quadro K5200] 10de:103f 0000 0000 stellasxm : GK110BGL [Tesla Stella SXM] 10de:1040 0000 0000 gt520 : GF119 [GeForce GT 520] 10de:1040 1043 83a0 gt520 : ENGT520 SILENT 10de:1042 0000 0000 510 : GF119 [GeForce 510] 10de:1048 0000 0000 605 : GF119 [GeForce 605] 10de:1049 0000 0000 gt620 : GF119 [GeForce GT 620 OEM] 10de:104a 0000 0000 gt610 : GF119 [GeForce GT 610] 10de:104a 10b0 104a gt610 : Gainward GeForce GT 610 10de:104b 0000 0000 gt625 : GF119 [GeForce GT 625 OEM] 10de:104c 0000 0000 gt705 : GF119 [GeForce GT 705] 10de:104d 0000 0000 gt710 : GF119 [GeForce GT 710] 10de:1050 0000 0000 gt520m : GF119M [GeForce GT 520M] 10de:1051 0000 0000 gt520mx : GF119M [GeForce GT 520MX] 10de:1052 0000 0000 gt520m : GF119M [GeForce GT 520M] 10de:1054 0000 0000 410m : GF119M [GeForce 410M] 10de:1055 0000 0000 410m : GF119M [GeForce 410M] 10de:1057 0000 0000 nvs4200m : GF119M [Quadro NVS 4200M] 10de:1058 0000 0000 610m : GF119M [GeForce 610M] 10de:1058 103c 2aed 610m : GeForce 610 10de:1058 103c 2af1 610m : GeForce 610 10de:1058 1043 10ac 610m : GeForce GT 610M 10de:1058 1043 10bc 610m : GeForce GT 610M 10de:1058 1043 1652 610m : GeForce GT 610M 10de:1058 17aa 367a 610m : GeForce 610M 10de:1058 17aa 3682 610m : GeForce 800A 10de:1058 17aa 3687 610m : GeForce 800A 10de:1058 17aa 3692 610m : GeForce 705A 10de:1058 17aa 3695 610m : GeForce 800A 10de:1058 17aa a117 610m : GeForce 610M 10de:1059 0000 0000 610m : GF119M [GeForce 610M] 10de:105a 0000 0000 610m : GF119M [GeForce 610M] 10de:105a 1043 2111 610m : GeForce GT 610M 10de:105a 1043 2112 610m : GeForce GT 610M 10de:105b 0000 0000 705m : GF119M [GeForce 705M] 10de:105b 103c 2afb 705m : GeForce 705A 10de:105b 17aa 309d 705m : GeForce 705A 10de:105b 17aa 30b1 705m : GeForce 800A 10de:105b 17aa 30f3 705m : GeForce 705A 10de:105b 17aa 36a1 705m : GeForce 800A 10de:1080 0000 0000 gtx580 : GF110 [GeForce GTX 580] 10de:1081 0000 0000 gtx570 : GF110 [GeForce GTX 570] 10de:1081 10de 087e gtx570 : Leadtek WinFast GTX 570 10de:1082 0000 0000 gtx560 : GF110 [GeForce GTX 560 Ti OEM] 10de:1084 0000 0000 gtx560 : GF110 [GeForce GTX 560 OEM] 10de:1086 0000 0000 gtx570 : GF110 [GeForce GTX 570 Rev. 2] 10de:1087 0000 0000 gtx560 : GF110 [GeForce GTX 560 Ti 448 Cores] 10de:1088 0000 0000 gtx590 : GF110 [GeForce GTX 590] 10de:1089 0000 0000 gtx580 : GF110 [GeForce GTX 580 Rev. 2] 10de:108b 0000 0000 gtx580 : GF110 [GeForce GTX 580] 10de:108e 0000 0000 c2090 : GF110GL [Tesla C2090] 10de:1091 0000 0000 m2090 : GF110GL [Tesla M2090] 10de:1091 10de 088e m2090 : Tesla X2090 10de:1091 10de 0891 m2090 : Tesla X2090 10de:1091 10de 0974 m2090 : Tesla X2090 10de:1091 10de 098d m2090 : Tesla X2090 10de:1094 0000 0000 m2075 : GF110GL [Tesla M2075] 10de:1094 10de 0888 m2075 : Tesla M2075 10de:1096 0000 0000 c2050c2075 : GF110GL [Tesla C2050 / C2075] 10de:1096 10de 0910 c2050c2075 : Tesla C2075 10de:1096 10de 0911 c2050c2075 : Tesla C2050 10de:109a 0000 0000 5010m : GF100GLM [Quadro 5010M] 10de:109b 0000 0000 7000 : GF100GL [Quadro 7000] 10de:109b 10de 0918 7000 : Quadro 7000 10de:10c0 0000 0000 9300gs : GT218 [GeForce 9300 GS Rev. 2] 10de:10c3 0000 0000 8400gs3 : GT218 [GeForce 8400 GS Rev. 3] 10de:10c5 0000 0000 405 : GT218 [GeForce 405] 10de:1180 0000 0000 gtx680 : GK104 [GeForce GTX 680] 10de:1180 1043 83f1 gtx680 : GTX680-DC2-2GD5 10de:1180 3842 3682 gtx680 : GeForce GTX 680 Mac Edition 10de:1182 0000 0000 gtx760 : GK104 [GeForce GTX 760 Ti] 10de:1183 0000 0000 gtx660 : GK104 [GeForce GTX 660 Ti] 10de:1184 0000 0000 gtx770 : GK104 [GeForce GTX 770] 10de:1185 0000 0000 gtx660 : GK104 [GeForce GTX 660 OEM] 10de:1185 10de 106f gtx660 : GK104 [GeForce GTX 760 OEM] 10de:1187 0000 0000 gtx760 : GK104 [GeForce GTX 760] 10de:1188 0000 0000 gtx690 : GK104 [GeForce GTX 690] 10de:1189 0000 0000 gtx670 : GK104 [GeForce GTX 670] 10de:1189 10de 1074 gtx670 : GK104 [GeForce GTX 760 Ti OEM] 10de:118e 0000 0000 gtx760 : GK104 [GeForce GTX 760 OEM] 10de:118f 0000 0000 k10 : GK104GL [Tesla K10] 10de:1191 0000 0000 gtx760 : GK104 [GeForce GTX 760 Rev. 2] 10de:1193 0000 0000 gtx760 : GK104 [GeForce GTX 760 Ti OEM] 10de:1194 0000 0000 k8 : GK104GL [Tesla K8] 10de:1195 0000 0000 gtx660 : GK104 [GeForce GTX 660 Rev. 2] 10de:1198 0000 0000 gtx880m : GK104M [GeForce GTX 880M] 10de:1199 0000 0000 gtx870m : GK104M [GeForce GTX 870M] 10de:119a 0000 0000 gtx860m : GK104M [GeForce GTX 860M] 10de:119d 0000 0000 gtx775m : GK104M [GeForce GTX 775M Mac Edition] 10de:119e 0000 0000 gtx780m : GK104M [GeForce GTX 780M Mac Edition] 10de:119f 0000 0000 gtx780m : GK104M [GeForce GTX 780M] 10de:11a0 0000 0000 gtx680m : GK104M [GeForce GTX 680M] 10de:11a1 0000 0000 gtx670mx : GK104M [GeForce GTX 670MX] 10de:11a2 0000 0000 gtx675mx : GK104M [GeForce GTX 675MX Mac Edition] 10de:11a3 0000 0000 gtx680mx : GK104M [GeForce GTX 680MX] 10de:11a3 106b 010d gtx680mx : iMac 13,2 10de:11a7 0000 0000 gtx675mx : GK104M [GeForce GTX 675MX] 10de:11b4 0000 0000 k4200 : GK104GL [Quadro K4200] 10de:11b6 0000 0000 k3100m : GK104GLM [Quadro K3100M] 10de:11b7 0000 0000 k4100m : GK104GLM [Quadro K4100M] 10de:11b8 0000 0000 k5100m : GK104GLM [Quadro K5100M] 10de:11ba 0000 0000 k5000 : GK104GL [Quadro K5000] 10de:11bb 0000 0000 4100 : GK104GL [Quadro 4100] 10de:11bc 0000 0000 k5000m : GK104GLM [Quadro K5000M] 10de:11bd 0000 0000 k4000m : GK104GLM [Quadro K4000M] 10de:11be 0000 0000 k3000m : GK104GLM [Quadro K3000M] 10de:11c0 0000 0000 gtx660 : GK106 [GeForce GTX 660] 10de:11c2 0000 0000 gtx650 : GK106 [GeForce GTX 650 Ti Boost] 10de:11c2 1043 845b gtx650 : GeForce GTX 650 Ti Boost DirectCU II OC 10de:11c2 1462 2874 gtx650 : GeForce GTX 650 Ti Boost TwinFrozr II OC 10de:11c2 1569 11c2 gtx650 : GeForce GTX 650 Ti Boost OC 10de:11c2 19da 1281 gtx650 : GeForce GTX 650 Ti Boost OC 10de:11c2 3842 3657 gtx650 : GeForce GTX 650 Ti Boost 10de:11c2 3842 3658 gtx650 : GeForce GTX 650 Ti Boost Superclocked 10de:11c3 0000 0000 gtx650 : GK106 [GeForce GTX 650 Ti OEM] 10de:11c3 10de 1030 gtx650 : GeForce GTX 650 Ti OEM 10de:11c4 0000 0000 gtx645 : GK106 [GeForce GTX 645 OEM] 10de:11c5 0000 0000 gt740 : GK106 [GeForce GT 740] 10de:11c6 0000 0000 gtx650 : GK106 [GeForce GTX 650 Ti] 10de:11c7 0000 0000 gtx750 : GK106 [GeForce GTX 750 Ti] 10de:11c8 0000 0000 gtx650 : GK106 [GeForce GTX 650 OEM] 10de:11cb 0000 0000 gt740 : GK106 [GeForce GT 740] 10de:11e0 0000 0000 gtx770m : GK106M [GeForce GTX 770M] 10de:11e1 0000 0000 gtx765m : GK106M [GeForce GTX 765M] 10de:11e2 0000 0000 gtx765m : GK106M [GeForce GTX 765M] 10de:11e3 0000 0000 gtx760m : GK106M [GeForce GTX 760M] 10de:11e3 17aa 3683 gtx760m : GeForce GTX 760A 10de:11fa 0000 0000 k4000 : GK106GL [Quadro K4000] 10de:11fc 0000 0000 k2100m : GK106GLM [Quadro K2100M] 10de:1200 0000 0000 gtx560 : GF114 [GeForce GTX 560 Ti] 10de:1201 0000 0000 gtx560 : GF114 [GeForce GTX 560] 10de:1202 0000 0000 gtx560 : GF114 [GeForce GTX 560 Ti OEM] 10de:1203 0000 0000 gtx460 : GF114 [GeForce GTX 460 SE v2] 10de:1205 0000 0000 gtx460 : GF114 [GeForce GTX 460 v2] 10de:1206 0000 0000 gtx555 : GF114 [GeForce GTX 555] 10de:1207 0000 0000 gt645 : GF114 [GeForce GT 645 OEM] 10de:1208 0000 0000 gtx560 : GF114 [GeForce GTX 560 SE] 10de:1210 0000 0000 gtx570m : GF114M [GeForce GTX 570M] 10de:1211 0000 0000 gtx580m : GF114M [GeForce GTX 580M] 10de:1212 0000 0000 gtx675m : GF114M [GeForce GTX 675M] 10de:1213 0000 0000 gtx670m : GF114M [GeForce GTX 670M] 10de:1241 0000 0000 gt545 : GF116 [GeForce GT 545 OEM] 10de:1243 0000 0000 gt545 : GF116 [GeForce GT 545] 10de:1244 0000 0000 gtx550 : GF116 [GeForce GTX 550 Ti] 10de:1245 0000 0000 gts450 : GF116 [GeForce GTS 450 Rev. 2] 10de:1246 0000 0000 gt550m : GF116M [GeForce GT 550M] 10de:1249 0000 0000 gts4503 : GF116 [GeForce GTS 450 Rev. 3] 10de:124b 0000 0000 gt640 : GF116 [GeForce GT 640 OEM] 10de:1251 0000 0000 gt560m : GF116M [GeForce GT 560M] 10de:1280 0000 0000 gt635 : GK208 [GeForce GT 635] 10de:1281 0000 0000 gt710 : GK208 [GeForce GT 710] 10de:1282 0000 0000 gt640 : GK208 [GeForce GT 640 Rev. 2] 10de:1284 0000 0000 gt630 : GK208 [GeForce GT 630 Rev. 2] 10de:1286 0000 0000 gt720 : GK208 [GeForce GT 720] 10de:1287 0000 0000 gt730 : GK208B [GeForce GT 730] 10de:1288 0000 0000 gt720 : GK208B [GeForce GT 720] 10de:1289 0000 0000 gt710 : GK208 [GeForce GT 710] 10de:128b 0000 0000 gt710 : GK208B [GeForce GT 710] 10de:128b 1043 85f7 gt710 : GT710-SL-1GD5 10de:1290 0000 0000 gt730m : GK208M [GeForce GT 730M] 10de:1290 103c 2afa gt730m : GeForce GT 730A 10de:1290 103c 2b04 gt730m : GeForce GT 730A 10de:1290 1043 13ad gt730m : GeForce GT 730M 10de:1290 1043 13cd gt730m : GeForce GT 730M 10de:1291 0000 0000 gt735m : GK208M [GeForce GT 735M] 10de:1292 0000 0000 gt740m : GK208M [GeForce GT 740M] 10de:1292 17aa 3675 gt740m : GeForce GT 740A 10de:1292 17aa 367c gt740m : GeForce GT 740A 10de:1292 17aa 3684 gt740m : GeForce GT 740A 10de:1293 0000 0000 gt730m : GK208M [GeForce GT 730M] 10de:1294 0000 0000 gt740m : GK208M [GeForce GT 740M] 10de:1295 0000 0000 710m : GK208M [GeForce 710M] 10de:1295 103c 2b0d 710m : GeForce 710A 10de:1295 103c 2b0f 710m : GeForce 710A 10de:1295 103c 2b11 710m : GeForce 710A 10de:1295 103c 2b20 710m : GeForce 810A 10de:1295 103c 2b21 710m : GeForce 810A 10de:1295 103c 2b22 710m : GeForce 810A 10de:1295 17aa 367a 710m : GeForce 805A 10de:1295 17aa 367c 710m : GeForce 710A 10de:1296 0000 0000 825m : GK208M [GeForce 825M] 10de:1298 0000 0000 gt720m : GK208M [GeForce GT 720M] 10de:1299 0000 0000 920m : GK208BM [GeForce 920M] 10de:1299 17aa 30bb 920m : GeForce 920A 10de:1299 17aa 30df 920m : GeForce 920A 10de:1299 17aa 36a7 920m : GeForce 920A 10de:1299 17aa 36af 920m : GeForce 920M 10de:129a 0000 0000 910m : GK208BM [GeForce 910M] 10de:12b9 0000 0000 k610m : GK208GLM [Quadro K610M] 10de:12ba 0000 0000 k510m : GK208GLM [Quadro K510M] 10de:1340 0000 0000 830m : GM108M [GeForce 830M] 10de:1340 103c 2b2b 830m : GeForce 830A 10de:1341 0000 0000 840m : GM108M [GeForce 840M] 10de:1341 17aa 3697 840m : GeForce 840A 10de:1341 17aa 3699 840m : GeForce 840A 10de:1341 17aa 369c 840m : GeForce 840A 10de:1344 0000 0000 845m : GM108M [GeForce 845M] 10de:1346 0000 0000 930m : GM108M [GeForce 930M] 10de:1347 0000 0000 940m : GM108M [GeForce 940M] 10de:1348 0000 0000 945m945a : GM108M [GeForce 945M / 945A] 10de:1349 0000 0000 930m : GM108M [GeForce 930M] 10de:134b 0000 0000 940mx : GM108M [GeForce 940MX] 10de:134d 0000 0000 940mx : GM108M [GeForce 940MX] 10de:134d 17aa 2248 940mx : ThinkPad T570 10de:134e 0000 0000 930mx : GM108M [GeForce 930MX] 10de:134f 0000 0000 920mx : GM108M [GeForce 920MX] 10de:137a 0000 0000 k620m : GM108GLM [Quadro K620M / Quadro M500M] 10de:137a 17aa 505a k620m : Quadro M500M 10de:137b 0000 0000 m520 : GM108GLM [Quadro M520 Mobile] 10de:137d 0000 0000 940a : GM108M [GeForce 940A] 10de:1380 0000 0000 gtx750 : GM107 [GeForce GTX 750 Ti] 10de:1381 0000 0000 gtx750 : GM107 [GeForce GTX 750] 10de:1382 0000 0000 gtx745 : GM107 [GeForce GTX 745] 10de:1390 0000 0000 845m : GM107M [GeForce 845M] 10de:1391 0000 0000 gtx850m : GM107M [GeForce GTX 850M] 10de:1391 17aa 3697 gtx850m : GeForce GTX 850A 10de:1391 17aa a125 gtx850m : GeForce GTX 850A 10de:1392 0000 0000 gtx860m : GM107M [GeForce GTX 860M] 10de:1393 0000 0000 840m : GM107M [GeForce 840M] 10de:1398 0000 0000 845m : GM107M [GeForce 845M] 10de:1399 0000 0000 945m : GM107M [GeForce 945M] 10de:139a 0000 0000 gtx950m : GM107M [GeForce GTX 950M] 10de:139a 17aa 362c gtx950m : GeForce GTX 950A 10de:139a 17aa 362f gtx950m : GeForce GTX 950A 10de:139a 17aa 363f gtx950m : GeForce GTX 950A 10de:139a 17aa 3640 gtx950m : GeForce GTX 950A 10de:139a 17aa 3647 gtx950m : GeForce GTX 950A 10de:139a 17aa 36b9 gtx950m : GeForce GTX 950A 10de:139b 0000 0000 gtx960m : GM107M [GeForce GTX 960M] 10de:139b 1028 06e4 gtx960m : XPS 15 9550 10de:139b 103c 2b4c gtx960m : GeForce GTX 960A 10de:139c 0000 0000 940m : GM107M [GeForce 940M] 10de:139d 0000 0000 gtx750 : GM107M [GeForce GTX 750 Ti] 10de:13b0 0000 0000 m2000m : GM107GLM [Quadro M2000M] 10de:13b1 0000 0000 m1000m : GM107GLM [Quadro M1000M] 10de:13b2 0000 0000 m600m : GM107GLM [Quadro M600M] 10de:13b3 0000 0000 k2200m : GM107GLM [Quadro K2200M] 10de:13b4 0000 0000 m620 : GM107GLM [Quadro M620 Mobile] 10de:13b6 0000 0000 m1200 : GM107GLM [Quadro M1200 Mobile] 10de:13ba 0000 0000 k2200 : GM107GL [Quadro K2200] 10de:13bb 0000 0000 k620 : GM107GL [Quadro K620] 10de:13bc 0000 0000 k1200 : GM107GL [Quadro K1200] 10de:13bd 0000 0000 m10 : GM107GL [Tesla M10] 10de:13bd 10de 110a m10 : GRID M40 10de:13bd 10de 1160 m10 : Tesla M10 10de:13bd 10de 11d2 m10 : GRID M10-8Q 10de:13c0 0000 0000 gtx980 : GM204 [GeForce GTX 980] 10de:13c0 1043 8504 gtx980 : GTX980-4GD5 10de:13c2 0000 0000 gtx970 : GM204 [GeForce GTX 970] 10de:13d7 0000 0000 gtx980m : GM204M [GeForce GTX 980M] 10de:13d8 0000 0000 gtx970m : GM204M [GeForce GTX 970M] 10de:13d9 0000 0000 gtx965m : GM204M [GeForce GTX 965M] 10de:13da 0000 0000 gtx980 : GM204M [GeForce GTX 980 Mobile] 10de:13e7 0000 0000 gtx980 : GM204GL [GeForce GTX 980 Engineering Sample] 10de:13f0 0000 0000 m5000 : GM204GL [Quadro M5000] 10de:13f1 0000 0000 m4000 : GM204GL [Quadro M4000] 10de:13f2 0000 0000 m60 : GM204GL [Tesla M60] 10de:13f2 10de 114d m60 : GRID M60-1Q 10de:13f2 10de 114e m60 : GRID M60-2Q 10de:13f2 10de 1150 m60 : GRID M60-8Q 10de:13f2 10de 11b0 m60 : GRID M60-4A 10de:13f3 0000 0000 m6 : GM204GL [Tesla M6] 10de:13f3 10de 1184 m6 : GRID M6-8Q 10de:13f8 0000 0000 m5000mm5000 : GM204GLM [Quadro M5000M / M5000 SE] 10de:13f9 0000 0000 m4000m : GM204GLM [Quadro M4000M] 10de:13fa 0000 0000 m3000m : GM204GLM [Quadro M3000M] 10de:13fa 10de 11c9 m3000m : Quadro M3000 SE 10de:13fb 0000 0000 m5500 : GM204GLM [Quadro M5500] 10de:1401 0000 0000 gtx960 : GM206 [GeForce GTX 960] 10de:1402 0000 0000 gtx950 : GM206 [GeForce GTX 950] 10de:1406 0000 0000 gtx960 : GM206 [GeForce GTX 960 OEM] 10de:1407 0000 0000 gtx750 : GM206 [GeForce GTX 750 v2] 10de:1427 0000 0000 gtx965m : GM206M [GeForce GTX 965M] 10de:1430 0000 0000 m2000 : GM206GL [Quadro M2000] 10de:1431 0000 0000 m4 : GM206GL [Tesla M4] 10de:1436 0000 0000 m2200 : GM206GLM [Quadro M2200 Mobile] 10de:15f0 0000 0000 gp100 : GP100GL [Quadro GP100] 10de:15f7 0000 0000 p100 : GP100GL [Tesla P100 PCIe 12GB] 10de:15f8 0000 0000 p100 : GP100GL [Tesla P100 PCIe 16GB] 10de:15f9 0000 0000 p100 : GP100GL [Tesla P100 SXM2 16GB] 10de:1617 0000 0000 gtx980m : GM204M [GeForce GTX 980M] 10de:1618 0000 0000 gtx970m : GM204M [GeForce GTX 970M] 10de:1619 0000 0000 gtx965m : GM204M [GeForce GTX 965M] 10de:161a 0000 0000 gtx980 : GM204M [GeForce GTX 980 Mobile] 10de:1667 0000 0000 gtx965m : GM204M [GeForce GTX 965M] 10de:174d 0000 0000 mx130 : GM108M [GeForce MX130] 10de:174e 0000 0000 mx110 : GM108M [GeForce MX110] 10de:17c2 0000 0000 gtx : GM200 [GeForce GTX TITAN X] 10de:17c8 0000 0000 gtx980 : GM200 [GeForce GTX 980 Ti] 10de:17f0 0000 0000 m6000 : GM200GL [Quadro M6000] 10de:17f1 0000 0000 m6000 : GM200GL [Quadro M6000 24GB] 10de:17fd 0000 0000 m40 : GM200GL [Tesla M40] 10de:1b06 0000 0000 gtx1080 : GP102 [GeForce GTX 1080 Ti] 10de:1b30 0000 0000 p6000 : GP102GL [Quadro P6000] 10de:1b38 0000 0000 p40 : GP102GL [Tesla P40] 10de:1b80 0000 0000 gtx1080 : GP104 [GeForce GTX 1080] 10de:1b81 0000 0000 gtx1070 : GP104 [GeForce GTX 1070] 10de:1b82 0000 0000 gtx1070 : GP104 [GeForce GTX 1070 Ti] 10de:1b83 0000 0000 gtx1060 : GP104 [GeForce GTX 1060 6GB] 10de:1b84 0000 0000 gtx1060 : GP104 [GeForce GTX 1060 3GB] 10de:1ba0 0000 0000 gtx1080 : GP104M [GeForce GTX 1080 Mobile] 10de:1ba1 0000 0000 gtx1070 : GP104M [GeForce GTX 1070 Mobile] 10de:1ba1 1458 1651 gtx1070 : GeForce GTX 1070 Max-Q 10de:1ba1 1462 11e8 gtx1070 : GeForce GTX 1070 Max-Q 10de:1ba1 1462 11e9 gtx1070 : GeForce GTX 1070 Max-Q 10de:1ba1 1558 9501 gtx1070 : GeForce GTX 1070 Max-Q 10de:1ba2 0000 0000 gtx1070 : GP104M [GeForce GTX 1070 Mobile] 10de:1bad 0000 0000 gtx1070 : GP104 [GeForce GTX 1070 Engineering Sample] 10de:1bb0 0000 0000 p5000 : GP104GL [Quadro P5000] 10de:1bb1 0000 0000 p4000 : GP104GL [Quadro P4000] 10de:1bb3 0000 0000 p4 : GP104GL [Tesla P4] 10de:1bb4 0000 0000 p6 : GP104GL [Tesla P6] 10de:1bb5 0000 0000 p5200 : GP104GLM [Quadro P5200 Mobile] 10de:1bb5 103c 842f p5200 : P5200 [Zbook 17 G5 mobile workstation] 10de:1bb6 0000 0000 p5000 : GP104GLM [Quadro P5000 Mobile] 10de:1bb7 0000 0000 p4000 : GP104GLM [Quadro P4000 Mobile] 10de:1bb7 1462 11e9 p4000 : Quadro P4000 Max-Q 10de:1bb8 0000 0000 p3000 : GP104GLM [Quadro P3000 Mobile] 10de:1bb9 0000 0000 p4200 : GP104GLM [Quadro P4200 Mobile] 10de:1bb9 103c 842f p4200 : P4200 [Zbook 17 G5 mobile workstation] 10de:1bbb 0000 0000 p3200 : GP104GLM [Quadro P3200 Mobile] 10de:1bbb 103c 842f p3200 : P3200 [Zbook 17 G5 moble workstation] 10de:1be0 0000 0000 gtx1080 : GP104BM [GeForce GTX 1080 Mobile] 10de:1be0 1028 07c0 gtx1080 : GeForce GTX 1080 Max-Q 10de:1be0 1458 355b gtx1080 : GeForce GTX 1080 Max-Q 10de:1be1 0000 0000 gtx1070 : GP104BM [GeForce GTX 1070 Mobile] 10de:1c02 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 3GB] 10de:1c03 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 6GB] 10de:1c04 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 5GB] 10de:1c06 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 6GB Rev. 2] 10de:1c20 0000 0000 gtx1060 : GP106M [GeForce GTX 1060 Mobile] 10de:1c20 17aa 39b9 gtx1060 : GeForce GTX 1060 Max-Q 3GB 10de:1c21 0000 0000 gtx1050 : GP106M [GeForce GTX 1050 Ti Mobile] 10de:1c22 0000 0000 gtx1050 : GP106M [GeForce GTX 1050 Mobile] 10de:1c30 0000 0000 p2000 : GP106GL [Quadro P2000] 10de:1c60 0000 0000 gtx1060 : GP106BM [GeForce GTX 1060 Mobile 6GB] 10de:1c60 103c 8390 gtx1060 : GeForce GTX 1060 Max-Q 6GB 10de:1c61 0000 0000 gtx1050 : GP106BM [GeForce GTX 1050 Ti Mobile] 10de:1c62 0000 0000 gtx1050 : GP106BM [GeForce GTX 1050 Mobile] 10de:1c81 0000 0000 gtx1050 : GP107 [GeForce GTX 1050] 10de:1c82 0000 0000 gtx1050 : GP107 [GeForce GTX 1050 Ti] 10de:1c83 0000 0000 gtx1050 : GP107 [GeForce GTX 1050 3GB] 10de:1c8c 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Ti Mobile] 10de:1c8d 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Mobile] 10de:1c8f 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Ti Max-Q] 10de:1c92 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Mobile] 10de:1cb1 0000 0000 p1000 : GP107GL [Quadro P1000] 10de:1cb2 0000 0000 p600 : GP107GL [Quadro P600] 10de:1cb3 0000 0000 p400 : GP107GL [Quadro P400] 10de:1cb6 0000 0000 p620 : GP107GL [Quadro P620] 10de:1cba 0000 0000 p2000 : GP107GLM [Quadro P2000 Mobile] 10de:1cba 103c 842c p2000 : P2000 [Zbook 15 G5 mobile workstation] 10de:1cba 103c 842f p2000 : P2000 [Zbook 17 G5 mobile workstation] 10de:1cbb 0000 0000 p1000 : GP107GLM [Quadro P1000 Mobile] 10de:1cbb 103c 8429 p1000 : P1000 [Zbook Studio G5 mobile workstation] 10de:1cbb 103c 842c p1000 : P1000 [Zbook 15 G5 mobile workstation] 10de:1cbb 103c 842f p1000 : P1000 [Zbook 17 G5 mobile workstation] 10de:1cbb 103c 8451 p1000 : P1000 [Zbook Studio x360 G5 mobile workstation] 10de:1cbc 0000 0000 p600 : GP107GLM [Quadro P600 Mobile] 10de:1ccc 0000 0000 gtx1050 : GP107BM [GeForce GTX 1050 Ti Mobile] 10de:1ccd 0000 0000 gtx1050 : GP107BM [GeForce GTX 1050 Mobile] 10de:1d01 0000 0000 gt1030 : GP108 [GeForce GT 1030] 10de:1d10 0000 0000 mx150 : GP108M [GeForce MX150] 10de:1d12 0000 0000 mx150 : GP108M [GeForce MX150] 10de:1d12 1d72 1701 mx150 : Mi Notebook Pro [GeForce MX150] 10de:1d33 0000 0000 p500 : GP108GLM [Quadro P500 Mobile] 10de:1db1 0000 0000 v100 : GV100GL [Tesla V100 SXM2 16GB] 10de:1db3 0000 0000 v100fhhl : GV100GL [Tesla V100 FHHL 16GB] 10de:1db4 0000 0000 v100 : GV100GL [Tesla V100 PCIe 16GB] 10de:1db5 0000 0000 v100 : GV100GL [Tesla V100 SXM2 32GB] 10de:1db6 0000 0000 v100 : GV100GL [Tesla V100 PCIe 32GB] 10de:1db7 0000 0000 v100 : GV100GL [Tesla V100 DGXS 32GB] 10de:1dba 0000 0000 gv100 : GV100GL [Quadro GV100] 10de:1dba 10de 12eb gv100 : TITAN V CEO Edition 10de:1e07 0000 0000 rtx2080 : TU102 [GeForce RTX 2080 Ti] 10de:1e3c 0000 0000 rtx6000 : TU102GL [Quadro RTX 6000] 10de:1e87 0000 0000 rtx2080 : TU104 [GeForce RTX 2080] 10de:1eab 0000 0000 rtx2080 : TU104M [GeForce RTX 2080 Mobile] 10de:1f07 0000 0000 rtx2070 : TU106 [GeForce RTX 2070] hipfort-7.2.4/bin/hipfc0000775000175000017500000003645215207260635015172 0ustar alastairalastair#!/bin/bash # # hipfc: Wrapper to call fortran compiler with the hipfort interface # PROGVERSION=X.Y-Z # Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. # [MITx11 License] # 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. function usage(){ /bin/cat 2>&1 <<"EOF" hipfc: A deprecated wrapper to call Fortran compiler with hipfort This script also calls hipcc for non Fortran files. Users of hipfc are encourged to migrate to a build system such as CMake to link with the hipfort libraries, and to directly invoke the appropriate compiler for Fortran or HIP language source files. Usage: hipfc [ options ] input-files Options without values: -g Generate debug information -version Display version of hipfc then exit -v Verbose, just print commands -vv Very verbose, pass -v to commands -n Dryrun, do nothing, show commands that would execute -h Print this help message -k Keep temporary files -c Compile to object code only -lrocsolver Link to rocsolver library -lrocsparse Link to rocsparse library -lrocblas Link to rocblas library -lrocfft Link to rocfft library -lrocrand Link to rocrand library -lroctx64 Link to roctx library -lhipblas Link to hipblas library -lhipsparse Link to hipsparse library -lhipsolver Link to hipsolver library -lhipfft Link to hipfft library -lhiprand Link to hiprand library -lcusolver Link to cusolver library -lcusparse Link to cusparse library -lcublas Link to cublas library -lcufft Link to cufft library -lcurand Link to curand library Options with values: Defaults -hipfort-compiler $HIPFORT_COMPILER or gfortran -hipfort $HIPFORT or _HIPFORT_INSTALL_DIR_ -cuda-path $CUDA_PATH or /usr/local/cuda -rocm-path $ROCM_PATH or /opt/rocm -I Provide one directory per -I option -O LLVM optimization level -o Default=a.out -t Temporary directory for intermediate files Default=/tmp/hipfc-tmp-$$ --offload-arch= Default= Examples: hipfc myapp.f -o myapp /* Compile FORTRAN to create myapp */ hipfc myapp.f -o myapp -lrocblas /* Compile FORTRAN with rocblas */ hipfc myapp.f kernels.cpp -o myapp /* Compile FORTRAN and c++ and link */ hipfc --offload-arch=sm_70 myapp.f -o myapp /* Compile for NVPTX target */ Instead of these command line options: -hipfort, -cuda-path, -hipfort-compiler -rocm-path you may alternatively set these environment variables, respectively: HIPFORT, CUDA_PATH, HIPFORT_COMPILER, ROCM_PATH Command line options take precedence over environment variables. Copyright (c) 2020-2022 ADVANCED MICRO DEVICES, INC. EOF exit 0 } DEADRC=12 # Utility Functions function do_err(){ if [ $NEWTMPDIR ] ; then if [ $KEEPTDIR ] ; then cp -rp $TMPDIR $OUTDIR [ $VERBOSE ] && echo "#Info: Temp files copied to $OUTDIR/$TMPNAME" fi rm -rf $TMPDIR else if [ $KEEPTDIR ] ; then [ $VERBOSE ] && echo "#Info: Temp files kept in $TMPDIR" fi fi [ $VV ] && echo "#Info: Done" exit $1 } function version(){ echo $PROGVERSION exit 0 } function runcmd(){ THISCMD=$1 if [ $DRYRUN ] ; then echo "$THISCMD" else [ $VERBOSE ] && echo "$THISCMD" $THISCMD rc=$? if [ $rc != 0 ] ; then echo "ERROR: The following command failed with return code $rc." echo " $THISCMD" do_err $rc fi fi } function getdname(){ local __DIRN=`dirname "$1"` if [ "$__DIRN" = "." ] ; then __DIRN=$PWD; else if [ ${__DIRN:0:1} != "/" ] ; then if [ ${__DIRN:0:2} == ".." ] ; then __DIRN=`dirname $PWD`/${__DIRN:3} else if [ ${__DIRN:0:1} = "." ] ; then __DIRN=$PWD/${__DIRN:2} else __DIRN=$PWD/$__DIRN fi fi fi fi echo $__DIRN } function addrocmlib(){ name=${1} libdir="" for dir in "${ROCM_PATH}/lib" "${ROCM_PATH}/${name}/lib"; do for ext in "so" "a"; do if [ -f "${dir}/lib${name}.${ext}" ]; then libdir=${dir} break 2 fi done done if [[ -z ${libdir} ]]; then echo "ERROR: Library $name could not be found in $ROCM_PATH/lib/ or $ROCM_PATH/$name/lib/" echo " Please install $name" exit $DEADRC fi LINKOPTS="$LINKOPTS -L${libdir} -l$name" } function addcudalib(){ name=$1 libdir=$CUDA_PATH/targets/x86_64-linux/lib if [ ! -d ${libdir} ] ; then echo "ERROR: Directory $libdir does not exist" echo " Please install CUDA" exit ${DEADRC} fi LINKOPTS="${LINKOPTS} -L${libdir} -l${name}" } # -------- The main code starts here ----- INCLUDES="" PASSTHRUARGS="" INPUTFILES="" ROCM_LIBS="" CUDA_LIBS="" # Argument processing while [ $# -gt 0 ] ; do case "$1" in -q) QUIET=true;; --quiet) QUIET=true;; -k) KEEPTDIR=true;; -n) DRYRUN=true;; -c) GEN_OBJECT_ONLY=true;; -g) GEN_DEBUG=true;; -noshared) NOSHARED=true;; -cuopts) CUOPTS=$2; shift ;; -I) INCLUDES="$INCLUDES -I $2"; shift ;; -O) FORTOPT=$2; shift ;; -O3) FORTOPT=3 ;; -O2) FORTOPT=2 ;; -O1) FORTOPT=1 ;; -O0) FORTOPT=0 ;; -o) OUTFILE=$2; shift ;; -t) TMPDIR=$2; shift ;; -lrocsolver) ROCM_LIBS+=" rocsolver" ;; -lrocsparse) ROCM_LIBS+=" rocsparse" ;; -lrocblas) ROCM_LIBS+=" rocblas" ;; -lrocfft) ROCM_LIBS+=" rocfft" ;; -lhipsparse) ROCM_LIBS+=" hipsparse" ;; -lhipblas) ROCM_LIBS+=" hipblas" ;; -lhipsolver) ROCM_LIBS+=" hipsolver" ;; -lhipfft) ROCM_LIBS+=" hipfft" ;; -lhiprand) ROCM_LIBS+=" hiprand" ;; -lcusolver) CUDA_LIBS+=" cusolver" ;; -lcusparse) CUDA_LIBS+=" cusparse" ;; -lcufft) CUDA_LIBS+=" cufft" ;; -lcublas) CUDA_LIBS+=" cublas" ;; -lcurand) CUDA_LIBS+=" curand" ;; -triple) TARGET_TRIPLE=$2; shift ;; -cuda-path) CUDA_PATH=$2; shift ;; -rocm-path) ROCM_PATH=$2; shift ;; -hipfort) HIPFORT=$2; shift ;; -hipfort-compiler) HIPFORT_COMPILER=$2; shift ;; -h) usage ;; -help) usage ;; --help) usage ;; -version) version ;; --version) version ;; -v) VERBOSE=true;; -vv) VV=true;; --) shift ;; *) if [[ $1 == --offload-arch=* ]]; then HIPFORT_GPU=${1/--offload-arch=/}; else dash=${1:0:1} if [ $dash == "-" ] ; then PASSTHRUARGS+=" $1" else INPUTFILES+=" $1" fi fi esac shift done fcount=0 for __input_file in `echo $INPUTFILES` ; do fcount=$(( fcount + 1 )) if [ $fcount == 1 ] ; then FIRST_INPUT_FILE_NAME=$__input_file fi if [ ! -e "$__input_file" ] ; then echo "ERROR: The file $__input_file does not exist." exit $DEADRC fi done if [ -z "$FIRST_INPUT_FILE_NAME" ] ; then echo "ERROR: No File specified." exit $DEADRC fi cdir=$(getdname $0) [ ! -L "$cdir/hipfc" ] || cdir="$(getdname "$(realpath "$cdir/hipfc")")" HOW_CALLED=${0##*/} CUDA_PATH=${CUDA_PATH:-/usr/local/cuda} ROCM_PATH=${ROCM_PATH:-/opt/rocm} HIP_PLATFORM=${HIP_PLATFORM:-amd} HIPFORT=${HIPFORT:-$cdir/_HIPFORT_INSTALL_DIR_} if [ ! -d $HIPFORT ] ; then HIPFORT="$ROCM_PATH/hipfort" fi if [ ! -d $HIPFORT ] ; then HIPFORT="/tmp/hipfort" fi if [ ! -d $HIPFORT ] ; then echo "ERROR: HIPFORT installation not found at $HIPFORT" echo " Please install HIPFORT or set environment variable HIPFORT" exit 1 fi HIPFORT_COMPILER=${HIPFORT_COMPILER:-$cdir/gfortran} if [ ! -f $HIPFORT_COMPILER ] ; then HIPFORT_COMPILER=`which $HIPFORT_COMPILER` fi if [ ! -f $HIPFORT_COMPILER ] ; then echo "ERROR: HIPFORT_COMPILER not found at $HIPFORT_COMPILER" echo " Please install $HIPFORT_COMPILER" exit 1 fi # Determine which gfx processor to use, fall back to rocm_agent_enumerator if [ ! $HIPFORT_GPU ] ; then # Use the mygpu in pair with this script, not the pre-installed one. HIPFORT_GPU=`$cdir/../libexec/hipfort/mygpu` if [ "$HIPFORT_GPU" == "unknown" ] ; then HIPFORT_GPU=$(rocm_agent_enumerator | sort -n | uniq | sed '/gfx000/d') fi fi # Handle all differences between amdgcn and nvidia here if [ "${HIPFORT_GPU:0:3}" == "sm_" ] ; then TARGET_ARCH="nvptx" TARGET_TRIPLE=${TARGET_TRIPLE:-nvptx64-nvidia-cuda} TARGET_LIBS="-L$CUDA_PATH/targets/x86_64-linux/lib -lcudart" HIPCC_ENV="HIP_PLATFORM=nvidia" HIPCC_OPTS="--gpu-architecture=$HIPFORT_GPU -x cu $CUOPTS" # fixme: add test for minimum cuda version here else if [ ! -f $ROCM_PATH/bin/hipconfig ] ; then echo "ERROR: hipconfig not found at $ROCM_PATH/bin/hipconfig" echo " Please install ROCm hip" exit 1 fi hipversion=`$ROCM_PATH/bin/hipconfig -v` hipver=`echo $hipversion | cut -d"." -f1` hiprel=`echo $hipversion | cut -d"." -f2` if [ $hipver -lt 3 ] || ( [ $hipver == 3 ] && [ $hiprel -lt 5 ] ) ; then echo "ERROR: Minimum required version of hip is in ROCm 3.5" echo " Please update your hip installation" exit 1 fi TARGET_TRIPLE=${TARGET_TRIPLE:-amdgcn-amd-amdhsa} TARGET_ARCH="amdgcn" TARGET_LIBS="-L$ROCM_PATH/lib -lamdhip64 -Wl,-rpath=$ROCM_PATH/lib " HIPCC_ENV="HIP_PLATFORM=$HIP_PLATFORM" if [ -z ${HIP_CLANG_PATH+x} ]; then HIPCC_ENV+=" HIP_CLANG_PATH=$ROCM_PATH/llvm/bin" fi if [ -z ${DEVICE_LIB_PATH+x} ]; then # Future versions of ROCm will install the device library in ROCM_PATH/amdgcn/bitcode if [ -d $ROCM_PATH/amdgcn/bitcode ] ; then HIPCC_ENV+=" DEVICE_LIB_PATH=$ROCM_PATH/amdgcn/bitcode" else HIPCC_ENV+=" DEVICE_LIB_PATH=$ROCM_PATH/lib" fi fi HIPCC_OPTS="-fno-gpu-rdc -fPIC" for arch in "$HIPFORT_GPU" ; do HIPCC_OPTS+=" --offload-arch=$arch " done fi FORTOPT=${FORTOPT:-2} if [ $VV ] ; then VERBOSE=true fi RUNDATE=`date` # Parse FIRST_INPUT_FILE_NAME for filetype, directory, and filename INPUT_FTYPE=${FIRST_INPUT_FILE_NAME##*\.} INDIR=$(getdname $FIRST_INPUT_FILE_NAME) FILENAME=${FIRST_INPUT_FILE_NAME##*/} # FNAME has the filetype extension removed, used for naming intermediate filenames FNAME=${FILENAME%.*} if [ -z $OUTFILE ] ; then # Output file not specified so use input directory OUTDIR=$INDIR if [ $GEN_OBJECT_ONLY ] ; then OUTFILE=${FNAME}.o else OUTFILE="a.out" fi else # Use the specified OUTFILE OUTDIR=$(getdname $OUTFILE) OUTFILE=${OUTFILE##*/} fi sdir=$(getdname $0) [ ! -L "$sdir/hipfc" ] || sdir="$(getdname "$(realpath "$sdir/hipfc")")" ROCC_DIR=$sdir TMPNAME="hipfc-tmp-$$" TMPDIR=${TMPDIR:-/tmp/$TMPNAME} if [ -d $TMPDIR ] ; then KEEPTDIR=true else if [ $DRYRUN ] ; then echo "mkdir -p $TMPDIR" else mkdir -p $TMPDIR NEWTMPDIR=true fi fi # Be sure not to delete the output directory if [ $TMPDIR == $OUTDIR ] ; then KEEPTDIR=true fi if [ ! -d $TMPDIR ] && [ ! $DRYRUN ] ; then echo "ERROR: Directory $TMPDIR does not exist or could not be created" exit $DEADRC fi if [ ! -d $OUTDIR ] && [ ! $DRYRUN ] ; then echo "ERROR: The output directory $OUTDIR does not exist" exit $DEADRC fi UNAMEP=`uname -p` HOST_TARGET="$UNAMEP-pc-linux-gnu" if [ "$UNAMEP" == "ppc64le" ] ; then HOST_TARGET="ppc64le-linux-gnu" fi if [[ "$HIPFORT_COMPILER" == *"ftn" ]] ; then FCARGS="-eT -J$HIPFORT/include/hipfort/$TARGET_ARCH" else FCARGS="-cpp -I$HIPFORT/include/hipfort/$TARGET_ARCH" fi if [ $GEN_OBJECT_ONLY ] ; then FCARGS=" -c $FCARGS" HIPCC_OPTS=" -c $HIPCC_OPTS" LINKOPTS="" else LINKOPTS="-L$HIPFORT/lib -lhipfort-$TARGET_ARCH" for lib in $ROCM_LIBS; do addrocmlib $lib done for lib in $CUDA_LIBS; do addcudalib $lib done LINKOPTS="$LINKOPTS $TARGET_LIBS -lstdc++" fi # Separate hipcc inputs from fortran inputs __INPUTS="" __HIPCC_INPUTS="" for __input_file in `echo $INPUTFILES` ; do _ftype=${__input_file##*\.} if [ "$_ftype" == "hip" ] ; then __HIPCC_INPUTS+="$__input_file" elif [ "$_ftype" == "cpp" ] ; then __HIPCC_INPUTS+=" $__input_file" elif [ "$_ftype" == "hpp" ] ; then __HIPCC_INPUTS+=" $__input_file" elif [ "$_ftype" == "c" ] ; then __HIPCC_INPUTS+=" $__input_file" elif [ "$_ftype" == "h" ] ; then __HIPCC_INPUTS+=" $__input_file" else __INPUTS+=" $__input_file" fi done if [ $GEN_DEBUG ] ; then FCARGS=" -g $FCARGS" HIPCC_OPTS=" -g $HIPCC_OPTS" fi if [ $VV ] ; then FCARGS=" -v $FCARGS" HIPCC_OPTS=" -v $HIPCC_OPTS" fi # Print Header block if [ $VV ] ; then echo "# " echo "#Info: HIPFORT Version: $PROGVERSION" echo "#Info: HIPFORT Compiler: $HIPFORT_COMPILER" echo "#Info: HIPFORT Path: $HIPFORT" echo "#Info: ROCM Path: $ROCM_PATH" echo "#Info: CUDA Path: $CUDA_PATH" echo "#Info: How called: $HOW_CALLED" echo "#Info: Target GPU: $HIPFORT_GPU" echo "#Info: Input files: $INPUTFILES" echo "#Info: Output file: $OUTDIR/$OUTFILE" echo "#Info: Passthru args: $PASSTHRUARGS" echo "#Info: Run date: $RUNDATE" [ $KEEPTDIR ] && echo "#Info: Temp dir: $TMPDIR" echo "# " fi rc=0 if [ "$__HIPCC_INPUTS" != "" ] ; then if [ "$__INPUTS" == "" ] ; then __HIPCC_OUTFILE="$OUTDIR/$OUTFILE" __HIPCC_LINKOPTS=$LINKOPTS else HIPCC_OPTS+=" -c" __HIPCC_LINKOPTS="" __HIPCC_OUTFILE="$TMPDIR/hipcc.o" __INPUTS+=" $__HIPCC_OUTFILE" fi if [ ! -f $ROCM_PATH/bin/hipcc ] ; then echo "ERROR: hipcc compiler not found at $ROCM_PATH/bin/hipcc" echo " Please install hip" exit $DEADRC fi export $HIPCC_ENV runcmd "$ROCM_PATH/bin/hipcc $HIPCC_OPTS $PASSTHRUARGS $__HIPCC_INPUTS $__HIPCC_LINKOPTS -o $__HIPCC_OUTFILE" fi if [ "$__INPUTS" != "" ] ; then runcmd "$HIPFORT_COMPILER $FCARGS $__INPUTS $PASSTHRUARGS $LINKOPTS -o $OUTDIR/$OUTFILE" fi # cleanup do_err 0 exit 0 hipfort-7.2.4/bin/CMakeLists.txt0000664000175000017500000001113715207260635016704 0ustar alastairalastaircmake_minimum_required(VERSION 3.18..4.0 FATAL_ERROR) if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") project(hipfort-tools) endif() # ensure mymcpu utility and Makefile.hipfort are available in build directory add_custom_command( OUTPUT sharedir COMMAND /bin/mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/../share/hipfort DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.hipfort) add_custom_command( OUTPUT libexecdir COMMAND /bin/mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gputable.txt) add_custom_command( OUTPUT bindir COMMAND /bin/mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/../bin DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/hipfc) add_custom_command( OUTPUT gputable.txt COMMAND /bin/cp -p ${CMAKE_CURRENT_SOURCE_DIR}/gputable.txt ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/gputable.txt DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gputable.txt libexecdir) # Use relative path with respect to hipfc install directory message(STATUS "${CMAKE_Fortran_COMPILER}") file(RELATIVE_PATH HIPFORT_COMPILER_RELATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}" ${CMAKE_Fortran_COMPILER}) string(REGEX REPLACE "[/]" "\\\\/" escaped_path ${HIPFORT_COMPILER_RELATIVE_PATH}) set(sed_str s/gfortran/${escaped_path}/g) file(RELATIVE_PATH HIPFORT_INSTALL_RELATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}" ${CMAKE_INSTALL_PREFIX}) string(REGEX REPLACE "[/]" "\\\\/" installed_path ${HIPFORT_INSTALL_RELATIVE_PATH}) set(sed_str2 s/_HIPFORT_INSTALL_DIR_/${installed_path}/g) # Use relative path with respect to Makefile.hipfort install directory file(RELATIVE_PATH HIPFORT_MAKEFILE_REL_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/hipfort" ${CMAKE_Fortran_COMPILER}) string(REGEX REPLACE "[/]" "\\\\/" mkfile_escaped_path ${HIPFORT_MAKEFILE_REL_PATH}) set(sed_str3 s/gfortran/${mkfile_escaped_path}/g) add_custom_command( OUTPUT Makefile.hipfort COMMAND /bin/cp -p ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.hipfort ${CMAKE_CURRENT_BINARY_DIR}/../share/hipfort/Makefile.hipfort.needs_edit COMMAND /bin/sed -e '${sed_str3}' ${CMAKE_CURRENT_BINARY_DIR}/../share/hipfort/Makefile.hipfort.needs_edit > ../share/hipfort/Makefile.hipfort DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.hipfort sharedir) add_custom_command( OUTPUT mymcpu COMMAND /bin/cp -p ${CMAKE_CURRENT_SOURCE_DIR}/mymcpu ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/mymcpu.needs_edit COMMAND /bin/sed -e "s/X\\.Y\\-Z/${HIPFORT_VERSION}/g" ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/mymcpu.needs_edit > ../libexec/hipfort/mymcpu COMMAND /bin/chmod 755 ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/mymcpu DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/mymcpu libexecdir) # The myarchgpu symbolic link is needed for test targets before installation add_custom_command( OUTPUT myarchgpu COMMAND /bin/ln -sf ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/mymcpu ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/myarchgpu DEPENDS mymcpu libexecdir) add_custom_command( OUTPUT hipfc COMMAND /bin/cp -p ${CMAKE_CURRENT_SOURCE_DIR}/hipfc ${CMAKE_CURRENT_BINARY_DIR}/../bin/hipfc.needs_edit COMMAND /bin/sed -i -e '${sed_str}' ${CMAKE_CURRENT_BINARY_DIR}/../bin/hipfc.needs_edit COMMAND /bin/sed -i -e "s/X\\.Y\\-Z/${HIPFORT_VERSION}/g" ${CMAKE_CURRENT_BINARY_DIR}/../bin/hipfc.needs_edit COMMAND /bin/sed -e '${sed_str2}' ${CMAKE_CURRENT_BINARY_DIR}/../bin/hipfc.needs_edit > hipfc COMMAND /bin/chmod 755 hipfc DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/hipfc bindir) add_custom_target(util_scripts ALL DEPENDS bindir libexecdir sharedir gputable.txt Makefile.hipfort hipfc mymcpu myarchgpu) # Install hipfc binary, marking under Component devel rocm_install(PROGRAMS # Version string edited ${CMAKE_CURRENT_BINARY_DIR}/../bin/hipfc DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT devel ) # Install libexec files, marking under Component devel rocm_install(PROGRAMS # The first two are symlinks ${CMAKE_CURRENT_SOURCE_DIR}/mygpu ${CMAKE_CURRENT_SOURCE_DIR}/myarchgpu # Version string edited ${CMAKE_CURRENT_BINARY_DIR}/../libexec/hipfort/mymcpu DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/hipfort COMPONENT devel ) # GPUTable.txt installed to libexec # Install gputable.txt files, marking under Component devel rocm_install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/gputable.txt DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/hipfort COMPONENT devel) # Makefile.hipfort installed to share # Install Makefile.hipfort files, marking under Component devel rocm_install(FILES ${CMAKE_CURRENT_BINARY_DIR}/../share/hipfort/Makefile.hipfort DESTINATION ${CMAKE_INSTALL_DATADIR}/hipfort COMPONENT devel) hipfort-7.2.4/lib/0000775000175000017500000000000015207260635014137 5ustar alastairalastairhipfort-7.2.4/lib/modules-amdgcn/0000775000175000017500000000000015207260635017036 5ustar alastairalastairhipfort-7.2.4/lib/modules-amdgcn/rocsparse_module.f900000664000175000017500000054172215207260635022737 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. ! ! 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 iso_c_binding ! =========================================================================== ! types SPARSE ! =========================================================================== ! rocsparse_operation enum, bind(c) enumerator :: rocsparse_operation_none = 111 enumerator :: rocsparse_operation_transpose = 112 enumerator :: rocsparse_operation_conjugate_transpose = 113 end enum ! rocsparse_index_base enum, bind(c) enumerator :: rocsparse_index_base_zero = 0 enumerator :: rocsparse_index_base_one = 1 end enum ! rocsparse_matrix_type enum, bind(c) enumerator :: rocsparse_matrix_type_general = 0 enumerator :: rocsparse_matrix_type_symmetric = 1 enumerator :: rocsparse_matrix_type_hermitian = 2 enumerator :: rocsparse_matrix_type_triangular = 3 end enum ! rocsparse_diag_type enum, bind(c) enumerator :: rocsparse_diag_type_non_unit = 0 enumerator :: rocsparse_diag_type_unit = 1 end enum ! rocsparse_fill_mode enum, bind(c) enumerator :: rocsparse_fill_mode_lower = 0 enumerator :: rocsparse_fill_mode_upper = 1 end enum ! rocsparse_action enum, bind(c) enumerator :: rocsparse_action_symbolic = 0 enumerator :: rocsparse_action_numeric = 1 end enum ! rocsparse_direction enum, bind(c) enumerator :: rocsparse_direction_row = 0 enumerator :: rocsparse_direction_column = 1 end enum ! rocsparse_hyb_partition enum, bind(c) enumerator :: rocsparse_hyb_partition_auto = 0 enumerator :: rocsparse_hyb_partition_user = 1 enumerator :: rocsparse_hyb_partition_max = 2 end enum ! rocsparse_analysis_policy enum, bind(c) enumerator :: rocsparse_analysis_policy_reuse = 0 enumerator :: rocsparse_analysis_policy_force = 1 end enum ! rocsparse_solve_policy enum, bind(c) enumerator :: rocsparse_solve_policy_auto = 0 end enum ! rocsparse_pointer_mode enum, bind(c) enumerator :: rocsparse_pointer_mode_host = 0 enumerator :: rocsparse_pointer_mode_device = 1 end enum ! rocsparse_layer_mode enum, bind(c) enumerator :: rocsparse_layer_mode_none = 0 enumerator :: rocsparse_layer_mode_log_trace = 1 enumerator :: rocsparse_layer_mode_log_bench = 2 end enum ! rocsparse_status enum, bind(c) enumerator :: rocsparse_status_success = 0 enumerator :: rocsparse_status_invalid_handle = 1 enumerator :: rocsparse_status_not_implemented = 2 enumerator :: rocsparse_status_invalid_pointer = 3 enumerator :: rocsparse_status_invalid_size = 4 enumerator :: rocsparse_status_memory_error = 5 enumerator :: rocsparse_status_internal_error = 6 enumerator :: rocsparse_status_invalid_value = 7 enumerator :: rocsparse_status_arch_mismatch = 8 enumerator :: rocsparse_status_zero_pivot = 9 end enum ! =========================================================================== ! auxiliary SPARSE ! =========================================================================== interface ! rocsparse_handle function rocsparse_create_handle(handle) & result(c_int) & bind(c, name = 'rocsparse_create_handle') use iso_c_binding implicit none type(c_ptr) :: handle end function rocsparse_create_handle function rocsparse_destroy_handle(handle) & result(c_int) & bind(c, name = 'rocsparse_destroy_handle') use iso_c_binding implicit none type(c_ptr), value :: handle end function rocsparse_destroy_handle ! rocsparse_stream function rocsparse_set_stream(handle, stream) & result(c_int) & bind(c, name = 'rocsparse_set_stream') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: stream end function rocsparse_set_stream function rocsparse_get_stream(handle, stream) & result(c_int) & bind(c, name = 'rocsparse_get_stream') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr) :: stream end function ! rocsparse_pointer_mode function rocsparse_set_pointer_mode(handle, pointer_mode) & result(c_int) & bind(c, name = 'rocsparse_set_pointer_mode') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_get_pointer_mode') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int) :: pointer_mode end function ! rocsparse_version function rocsparse_get_version(handle, version) & result(c_int) & bind(c, name = 'rocsparse_get_version') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int) :: version end function rocsparse_get_version function rocsparse_get_git_rev(handle, rev) & result(c_int) & bind(c, name = 'rocsparse_get_git_rev') use iso_c_binding implicit none type(c_ptr), value :: handle character(c_char) :: rev(*) end function rocsparse_get_git_rev ! rocsparse_mat_descr function rocsparse_create_mat_descr(descr) & result(c_int) & bind(c, name = 'rocsparse_create_mat_descr') use iso_c_binding implicit none type(c_ptr) :: descr end function rocsparse_create_mat_descr function rocsparse_copy_mat_descr(dest, src) & result(c_int) & bind(c, name = 'rocsparse_copy_mat_descr') use iso_c_binding implicit none type(c_ptr), value :: dest type(c_ptr), intent(in), value :: src end function rocsparse_copy_mat_descr function rocsparse_destroy_mat_descr(descr) & result(c_int) & bind(c, name = 'rocsparse_destroy_mat_descr') use iso_c_binding implicit none type(c_ptr), value :: descr end function rocsparse_destroy_mat_descr ! rocsparse_index_base function rocsparse_set_mat_index_base(descr, base) & result(c_int) & bind(c, name = 'rocsparse_set_mat_index_base') use iso_c_binding implicit none type(c_ptr), value :: descr integer(c_int), value :: base end function rocsparse_set_mat_index_base function rocsparse_get_mat_index_base(descr) & result(c_int) & bind(c, name = 'rocsparse_get_mat_index_base') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_set_mat_type') use iso_c_binding implicit none type(c_ptr), value :: descr integer(c_int), value :: mat_type end function rocsparse_set_mat_type function rocsparse_get_mat_type(descr) & result(c_int) & bind(c, name = 'rocsparse_get_mat_type') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_set_mat_fill_mode') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_get_mat_fill_mode') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_set_mat_diag_type') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_get_mat_diag_type') use iso_c_binding implicit none type(c_ptr), intent(in), value :: descr end function rocsparse_get_mat_diag_type ! rocsparse_hyb_mat function rocsparse_create_hyb_mat(hyb) & result(c_int) & bind(c, name = 'rocsparse_create_hyb_mat') use iso_c_binding implicit none type(c_ptr) :: hyb end function rocsparse_create_hyb_mat function rocsparse_destroy_hyb_mat(hyb) & result(c_int) & bind(c, name = 'rocsparse_destroy_hyb_mat') use iso_c_binding implicit none type(c_ptr), value :: hyb end function rocsparse_destroy_hyb_mat ! rocsparse_mat_info function rocsparse_create_mat_info(info) & result(c_int) & bind(c, name = 'rocsparse_create_mat_info') use iso_c_binding implicit none type(c_ptr) :: info end function rocsparse_create_mat_info function rocsparse_destroy_mat_info(info) & result(c_int) & bind(c, name = 'rocsparse_destroy_mat_info') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_saxpyi') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_daxpyi') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_caxpyi') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zaxpyi') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sdoti') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ddoti') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cdoti') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zdoti') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cdotci') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zdotci') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sgthr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dgthr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cgthr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zgthr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sgthrz') use iso_c_binding implicit none 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_sgthrz function rocsparse_dgthrz(handle, nnz, y, x_val, x_ind, idx_base) & result(c_int) & bind(c, name = 'rocsparse_dgthrz') use iso_c_binding implicit none 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_dgthrz function rocsparse_cgthrz(handle, nnz, y, x_val, x_ind, idx_base) & result(c_int) & bind(c, name = 'rocsparse_cgthrz') use iso_c_binding implicit none 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_cgthrz function rocsparse_zgthrz(handle, nnz, y, x_val, x_ind, idx_base) & result(c_int) & bind(c, name = 'rocsparse_zgthrz') use iso_c_binding implicit none 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_zgthrz ! rocsparse_roti function rocsparse_sroti(handle, nnz, x_val, x_ind, y, c, s, idx_base) & result(c_int) & bind(c, name = 'rocsparse_sroti') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_droti') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ssctr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dsctr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csctr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zsctr') use iso_c_binding implicit none 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, x, beta, y) & result(c_int) & bind(c, name = 'rocsparse_sbsrmv') use iso_c_binding implicit none 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), 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, x, beta, y) & result(c_int) & bind(c, name = 'rocsparse_dbsrmv') use iso_c_binding implicit none 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), 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, x, beta, y) & result(c_int) & bind(c, name = 'rocsparse_cbsrmv') use iso_c_binding implicit none 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), 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, x, beta, y) & result(c_int) & bind(c, name = 'rocsparse_zbsrmv') use iso_c_binding implicit none 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), intent(in), value :: x type(c_ptr), intent(in), value :: beta type(c_ptr), value :: y end function rocsparse_zbsrmv ! rocsparse_coomv function rocsparse_scoomv(handle, trans, m, n, nnz, alpha, descr, coo_val, & coo_row_ind, coo_col_ind, x, beta, y) & result(c_int) & bind(c, name = 'rocsparse_scoomv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcoomv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccoomv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcoomv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrmv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrmv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrmv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrmv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrmv_clear') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrsv_zero_pivot') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrsv_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrsv_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrsv_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrsv_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrsv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrsv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrsv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrsv_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrsv_clear') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrsv_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrsv_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrsv_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrsv_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sellmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dellmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cellmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zellmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_shybmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dhybmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_chybmv') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zhybmv') use iso_c_binding implicit none 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 ! =========================================================================== ! level 3 SPARSE ! =========================================================================== ! 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) & result(c_int) & bind(c, name = 'rocsparse_scsrmm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrmm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrmm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrmm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrsm_zero_pivot') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrsm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrsm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrsm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrsm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrsm_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrsm_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrsm_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrsm_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrsm_clear') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrsm_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrsm_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrsm_solve') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrsm_solve') use iso_c_binding implicit none 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 ! =========================================================================== ! 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) & result(c_int) & bind(c, name = 'rocsparse_csrgeam_nnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrgeam') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrgeam') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrgeam') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrgeam') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrgemm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrgemm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrgemm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrgemm_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrgemm_nnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrgemm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrgemm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrgemm') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrgemm') use iso_c_binding implicit none 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_csric0_zero_pivot function rocsparse_csric0_zero_pivot(handle, info, position) & result(c_int) & bind(c, name = 'rocsparse_csric0_zero_pivot') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsric0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsric0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsric0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsric0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsric0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsric0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsric0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsric0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csric0_clear') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsric0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsric0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsric0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsric0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrilu0_zero_pivot') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrilu0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrilu0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrilu0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrilu0_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrilu0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrilu0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrilu0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrilu0_analysis') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrilu0_clear') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsrilu0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsrilu0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsrilu0') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsrilu0') use iso_c_binding implicit none 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 ! =========================================================================== ! conversion SPARSE ! =========================================================================== ! rocsparse_nnz function rocsparse_snnz(handle, dir, m, n, descr, A, ld, nnz_per_row_columns, & nnz_total_dev_host_ptr) & result(c_int) & bind(c, name = 'rocsparse_snnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dnnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cnnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_znnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sdense2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ddense2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cdense2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zdense2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sdense2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ddense2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cdense2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zdense2csc') use iso_c_binding implicit none 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_csr2dense function rocsparse_scsr2dense(handle, m, n, descr, csr_val, csr_row_ptr, & csr_col_ind, A, ld) & result(c_int) & bind(c, name = 'rocsparse_scsr2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsr2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsr2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsr2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsc2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsc2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsc2dense') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsc2dense') use iso_c_binding implicit none 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_nnz_compress function rocsparse_snnz_compress(handle, m, descr_A, csr_val_A, csr_row_ptr_A, & nnz_per_row, nnz_C, tol) & result(c_int) & bind(c, name = 'rocsparse_snnz_compress') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dnnz_compress') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cnnz_compress') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_znnz_compress') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csr2coo') use iso_c_binding implicit none 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_csr2csc_buffer_size function rocsparse_csr2csc_buffer_size(handle, m, n, nnz, csr_row_ptr, & csr_col_ind, copy_values, buffer_size) & result(c_int) & bind(c, name = 'rocsparse_csr2csc_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsr2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsr2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsr2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsr2csc') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csr2ell_width') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsr2ell') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsr2ell') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsr2ell') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsr2ell') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsr2hyb') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsr2hyb') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsr2hyb') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsr2hyb') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csr2bsr_nnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_scsr2bsr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsr2bsr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ccsr2bsr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zcsr2bsr') use iso_c_binding implicit none 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_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) & result(c_int) & bind(c, name = 'rocsparse_scsr2csr_compress') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dcsr2csr_compress') use iso_c_binding implicit none 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_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) & result(c_int) & bind(c, name = 'rocsparse_ccsr2csr_compress') use iso_c_binding implicit none 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_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) & result(c_int) & bind(c, name = 'rocsparse_zcsr2csr_compress') use iso_c_binding implicit none 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_zcsr2csr_compress ! rocsparse_coo2csr function rocsparse_coo2csr(handle, coo_row_ind, nnz, m, csr_row_ptr, idx_base) & result(c_int) & bind(c, name = 'rocsparse_coo2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_ell2csr_nnz') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sell2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dell2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cell2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zell2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_hyb2csr_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_shyb2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dhyb2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_chyb2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zhyb2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_create_identity_permutation') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrsort_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_csrsort') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cscsort_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cscsort') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_coosort_buffer_size') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_coosort_by_row') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_coosort_by_column') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_sbsr2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_dbsr2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_cbsr2csr') use iso_c_binding implicit none 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) & result(c_int) & bind(c, name = 'rocsparse_zbsr2csr') use iso_c_binding implicit none 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 end interface contains subroutine rocsparseCheck(rocsparseError_t) implicit none integer(kind(rocsparse_status_success)) :: rocsparseError_t if (rocsparseError_t /= rocsparse_status_success) then write(*,*) "ROCSPARSE ERROR: Error code = ", rocsparseError_t call exit(rocsparseError_t) end if end subroutine rocsparseCheck end module rocsparsehipfort-7.2.4/lib/modules-amdgcn/rocfft_enums.f900000664000175000017500000000202615207260635022050 0ustar alastairalastairmodule rocfft_enums implicit none ! rocfft_status enum, bind(c) enumerator :: rocfft_status_success enumerator :: rocfft_status_failure enumerator :: rocfft_status_invalid_arg_value enumerator :: rocfft_status_invalid_dimensions enumerator :: rocfft_status_invalid_array_type enumerator :: rocfft_status_invalid_strides enumerator :: rocfft_status_invalid_distance enumerator :: rocfft_status_invalid_offset end enum !rocfft_transform_type enum, bind(c) enumerator :: rocfft_transform_type_complex_forward enumerator :: rocfft_transform_type_complex_inverse enumerator :: rocfft_transform_type_real_forward enumerator :: rocfft_transform_type_real_inverse end enum !rocfft_precision enum, bind(c) enumerator :: rocfft_precision_single enumerator :: rocfft_precision_double end enum !rocfft_result_placement enum, bind(c) enumerator :: rocfft_placement_inplace enumerator :: rocfft_placement_notinplace end enum end module rocfft_enums hipfort-7.2.4/lib/modules-amdgcn/hip_blas.f900000664000175000017500000000504515207260635021143 0ustar alastairalastairmodule hip_blas use hip_blas_enums implicit none interface function hipblasCreate(handle) bind(c, name="hipblasCreate") use iso_c_binding use hip_blas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCreate type(c_ptr) :: handle end function hipblasCreate function hipblasDestroy(handle) bind(c, name="hipblasDestroy") use iso_c_binding use hip_blas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDestroy type(c_ptr), value :: handle end function hipblasDestroy function hipblasDscal(handle,n,alpha,x,incx) bind(c,name="hipblasDscal") use iso_c_binding use hip_blas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscal type(c_ptr), value :: handle integer, value :: n double precision, intent(in) :: alpha type(c_ptr),value :: x integer, value :: incx end function hipblasDscal function hipblasDger(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c,name="hipblasDger") use iso_c_binding use hip_blas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDger type(c_ptr), value :: handle integer, value :: m, n double precision, intent(in) :: alpha type(c_ptr),value :: x, y integer, value :: incx, incy type(c_ptr),value :: A integer, value :: lda end function hipblasDger function hipblasDgemm(handle, & transa,transb,& m,n,k,& alpha,A,lda,& B,ldb,beta,& C,ldc ) bind(c,name="hipblasDgemm") use iso_c_binding use hip_blas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemm type(c_ptr), value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa,transb integer, value :: m, n, k, lda, ldb, ldc double precision, intent(in) :: alpha, beta type(c_ptr),value :: A,B type(c_ptr),value :: C end function hipblasDgemm end interface contains subroutine hipblasCheck(hipblasError_t) use hip_blas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasError_t if (hipblasError_t /= HIPBLAS_STATUS_SUCCESS) then write(*,*) "HIPBLAS ERROR: Error code = ", hipblasError_t call exit(hipblasError_t) end if end subroutine hipblasCheck end module hip_blas hipfort-7.2.4/lib/modules-amdgcn/hip_blas_enums.f900000664000175000017500000000202715207260635022347 0ustar alastairalastairmodule hip_blas_enums implicit none enum, bind(c) enumerator :: HIPBLAS_STATUS_SUCCESS = 0 ! Function succeeds enumerator :: HIPBLAS_STATUS_NOT_INITIALIZED = 1 ! HIPBLAS library not initialized enumerator :: HIPBLAS_STATUS_ALLOC_FAILED = 2 ! resource allocation failed enumerator :: HIPBLAS_STATUS_INVALID_VALUE = 3 ! unsupported numerical value was passed to function enumerator :: HIPBLAS_STATUS_MAPPING_ERROR = 4 ! access to GPU memory space failed enumerator :: HIPBLAS_STATUS_EXECUTION_FAILED = 5 ! GPU program failed to execute enumerator :: HIPBLAS_STATUS_INTERNAL_ERROR = 6 ! an internal HIPBLAS operation failed enumerator :: HIPBLAS_STATUS_NOT_SUPPORTED = 7 ! function not implemented enumerator :: HIPBLAS_STATUS_ARCH_MISMATCH = 8 ! enumerator :: HIPBLAS_STATUS_HANDLE_IS_NULLPTR = 9 !hipBLAS handle is null pointer end enum enum, bind(c) enumerator :: HIPBLAS_OP_N = 111 enumerator :: HIPBLAS_OP_T = 112 enumerator :: HIPBLAS_OP_C = 113 end enum end module hip_blas_enums hipfort-7.2.4/lib/modules-amdgcn/rocblas_module.f900000664000175000017500000034205315207260635022357 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. ! ! 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 rocblas use iso_c_binding !!!!!!!!!!!!!!!!!!!!!!! ! rocBLAS types ! !!!!!!!!!!!!!!!!!!!!!!! enum, bind(c) enumerator :: rocblas_operation_none = 111 enumerator :: rocblas_operation_transpose = 112 enumerator :: rocblas_operation_conjugate_transpose = 113 end enum enum, bind(c) enumerator :: rocblas_fill_upper = 121 enumerator :: rocblas_fill_lower = 122 enumerator :: rocblas_fill_full = 123 end enum enum, bind(c) enumerator :: rocblas_diagonal_non_unit = 131 enumerator :: rocblas_diagonal_unit = 132 end enum enum, bind(c) enumerator :: rocblas_side_left = 141 enumerator :: rocblas_side_right = 142 enumerator :: rocblas_side_both = 143 end enum enum, bind(c) enumerator :: rocblas_status_success = 0 enumerator :: rocblas_status_invalid_handle = 1 enumerator :: rocblas_status_not_implemented = 2 enumerator :: rocblas_status_invalid_pointer = 3 enumerator :: rocblas_status_invalid_size = 4 enumerator :: rocblas_status_memory_error = 5 enumerator :: rocblas_status_internal_error = 6 enumerator :: rocblas_status_perf_degraded = 7 enumerator :: rocblas_status_size_query_mismatch = 8 enumerator :: rocblas_status_size_increased = 9 enumerator :: rocblas_status_size_unchanged = 10 enumerator :: rocblas_status_invalid_value = 11 enumerator :: rocblas_status_continue = 12 end enum enum, bind(c) enumerator :: rocblas_pointer_mode_host = 0 enumerator :: rocblas_pointer_mode_device = 1 end enum !!!!!!!!!!!!!!!!!!!!!!! ! rocblas-auxiliary.h ! !!!!!!!!!!!!!!!!!!!!!!! interface function rocblas_create_handle(handle) & result(c_int) & bind(c, name = 'rocblas_create_handle') use iso_c_binding implicit none type(c_ptr), value :: handle end function rocblas_create_handle end interface interface function rocblas_destroy_handle(handle) & result(c_int) & bind(c, name = 'rocblas_destroy_handle') use iso_c_binding implicit none type(c_ptr), value :: handle end function rocblas_destroy_handle end interface interface function rocblas_add_stream(handle, stream) & result(c_int) & bind(c, name = 'rocblas_add_stream') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: stream end function rocblas_add_stream end interface interface function rocblas_set_stream(handle, stream) & result(c_int) & bind(c, name = 'rocblas_set_stream') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: stream end function rocblas_set_stream end interface interface function rocblas_get_stream(handle, stream) & result(c_int) & bind(c, name = 'rocblas_get_stream') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: stream end function rocblas_get_stream end interface interface function rocblas_set_pointer_mode(handle, pointer_mode) & result(c_int) & bind(c, name = 'rocblas_set_pointer_mode') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: pointer_mode end function rocblas_set_pointer_mode end interface interface function rocblas_get_pointer_mode(handle, pointer_mode) & result(c_int) & bind(c, name = 'rocblas_get_pointer_mode') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int) :: pointer_mode end function rocblas_get_pointer_mode end interface ! TODO: is this good? interface function rocblas_pointer_to_mode(ptr) & result(c_int) & bind(c, name = 'rocblas_pointer_to_mode') use iso_c_binding implicit none type(c_ptr), value :: ptr end function rocblas_pointer_to_mode end interface interface function rocblas_set_vector(n, elem_size, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_set_vector') use iso_c_binding implicit none integer(c_int), value :: n integer(c_int), value :: elem_size type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_set_vector end interface interface function rocblas_get_vector(n, elem_size, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_get_vector') use iso_c_binding implicit none integer(c_int), value :: n integer(c_int), value :: elem_size type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_get_vector end interface interface function rocblas_set_matrix(rows, cols, elem_size, a, lda, b, ldb) & result(c_int) & bind(c, name = 'rocblas_set_matrix') use iso_c_binding implicit none integer(c_int), value :: rows integer(c_int), value :: cols integer(c_int), value :: elem_size type(c_ptr), value :: a integer(c_int), value :: lda type(c_ptr), value :: b integer(c_int), value :: ldb end function rocblas_set_matrix end interface interface function rocblas_get_matrix(rows, cols, elem_size, a, lda, b, ldb) & result(c_int) & bind(c, name = 'rocblas_get_matrix') use iso_c_binding implicit none integer(c_int), value :: rows integer(c_int), value :: cols integer(c_int), value :: elem_size type(c_ptr), value :: a integer(c_int), value :: lda type(c_ptr), value :: b integer(c_int), value :: ldb end function rocblas_get_matrix end interface interface function rocblas_set_vector_async(n, elem_size, x, incx, y, incy, stream) & result(c_int) & bind(c, name = 'rocblas_set_vector_async') use iso_c_binding implicit none integer(c_int), value :: n integer(c_int), value :: elem_size type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: stream end function rocblas_set_vector_async end interface interface function rocblas_get_vector_async(n, elem_size, x, incx, y, incy, stream) & result(c_int) & bind(c, name = 'rocblas_get_vector_async') use iso_c_binding implicit none integer(c_int), value :: n integer(c_int), value :: elem_size type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: stream end function rocblas_get_vector_async end interface interface function rocblas_set_matrix_async(rows, cols, elem_size, a, lda, b, ldb, stream) & result(c_int) & bind(c, name = 'rocblas_set_matrix_async') use iso_c_binding implicit none integer(c_int), value :: rows integer(c_int), value :: cols integer(c_int), value :: elem_size type(c_ptr), value :: a integer(c_int), value :: lda type(c_ptr), value :: b integer(c_int), value :: ldb type(c_ptr), value :: stream end function rocblas_set_matrix_async end interface interface function rocblas_get_matrix_async(rows, cols, elem_size, a, lda, b, ldb, stream) & result(c_int) & bind(c, name = 'rocblas_get_matrix_async') use iso_c_binding implicit none integer(c_int), value :: rows integer(c_int), value :: cols integer(c_int), value :: elem_size type(c_ptr), value :: a integer(c_int), value :: lda type(c_ptr), value :: b integer(c_int), value :: ldb type(c_ptr), value :: stream end function rocblas_get_matrix_async end interface ! TODO: ? interface function rocblas_set_start_stop_events(handle, start_event, stop_event) & result(c_int) & bind(c, name = 'rocblas_set_start_stop_events') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: start_event type(c_ptr), value :: stop_event end function rocblas_set_start_stop_events end interface !!!!!!!!!!!!!!!!!!!!!!! ! rocblas-functions.h ! !!!!!!!!!!!!!!!!!!!!!!! !--------! ! blas 1 ! !--------! ! scal interface function rocblas_sscal(handle, n, alpha, x, incx) & result(c_int) & bind(c, name = 'rocblas_sscal') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx end function rocblas_sscal end interface interface function rocblas_dscal(handle, n, alpha, x, incx) & result(c_int) & bind(c, name = 'rocblas_dscal') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx end function rocblas_dscal end interface interface function rocblas_cscal(handle, n, alpha, x, incx) & result(c_int) & bind(c, name = 'rocblas_cscal') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx end function rocblas_cscal end interface interface function rocblas_zscal(handle, n, alpha, x, incx) & result(c_int) & bind(c, name = 'rocblas_zscal') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx end function rocblas_zscal end interface interface function rocblas_csscal(handle, n, alpha, x, incx) & result(c_int) & bind(c, name = 'rocblas_csscal') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx end function rocblas_csscal end interface interface function rocblas_zdscal(handle, n, alpha, x, incx) & result(c_int) & bind(c, name = 'rocblas_zdscal') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx end function rocblas_zdscal end interface ! scal_batched interface function rocblas_sscal_batched(handle, n, alpha, x, incx, batch_count) & result(c_int) & bind(c, name = 'rocblas_sscal_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count end function rocblas_sscal_batched end interface interface function rocblas_dscal_batched(handle, n, alpha, x, incx, batch_count) & result(c_int) & bind(c, name = 'rocblas_dscal_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count end function rocblas_dscal_batched end interface interface function rocblas_cscal_batched(handle, n, alpha, x, incx, batch_count) & result(c_int) & bind(c, name = 'rocblas_cscal_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count end function rocblas_cscal_batched end interface interface function rocblas_zscal_batched(handle, n, alpha, x, incx, batch_count) & result(c_int) & bind(c, name = 'rocblas_zscal_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count end function rocblas_zscal_batched end interface interface function rocblas_csscal_batched(handle, n, alpha, x, incx, batch_count) & result(c_int) & bind(c, name = 'rocblas_csscal_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count end function rocblas_csscal_batched end interface interface function rocblas_zdscal_batched(handle, n, alpha, x, incx, batch_count) & result(c_int) & bind(c, name = 'rocblas_zdscal_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count end function rocblas_zdscal_batched end interface ! scal_strided_batched interface function rocblas_sscal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count) & result(c_int) & bind(c, name = 'rocblas_sscal_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count end function rocblas_sscal_strided_batched end interface interface function rocblas_dscal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count) & result(c_int) & bind(c, name = 'rocblas_dscal_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count end function rocblas_dscal_strided_batched end interface interface function rocblas_cscal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count) & result(c_int) & bind(c, name = 'rocblas_cscal_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count end function rocblas_cscal_strided_batched end interface interface function rocblas_zscal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count) & result(c_int) & bind(c, name = 'rocblas_zscal_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count end function rocblas_zscal_strided_batched end interface interface function rocblas_csscal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count) & result(c_int) & bind(c, name = 'rocblas_csscal_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count end function rocblas_csscal_strided_batched end interface interface function rocblas_zdscal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count) & result(c_int) & bind(c, name = 'rocblas_zdscal_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count end function rocblas_zdscal_strided_batched end interface ! copy interface function rocblas_scopy(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_scopy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_scopy end interface interface function rocblas_dcopy(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_dcopy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_dcopy end interface interface function rocblas_ccopy(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_ccopy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_ccopy end interface interface function rocblas_zcopy(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_zcopy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_zcopy end interface ! copy_batched interface function rocblas_scopy_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_scopy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_scopy_batched end interface interface function rocblas_dcopy_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_dcopy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_dcopy_batched end interface interface function rocblas_ccopy_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_ccopy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_ccopy_batched end interface interface function rocblas_zcopy_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_zcopy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_zcopy_batched end interface ! copy_strided_batched interface function rocblas_scopy_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_scopy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_scopy_strided_batched end interface interface function rocblas_dcopy_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_dcopy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_dcopy_strided_batched end interface interface function rocblas_ccopy_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_ccopy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_ccopy_strided_batched end interface interface function rocblas_zcopy_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_zcopy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_zcopy_strided_batched end interface ! dot interface function rocblas_sdot(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_sdot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_sdot end interface interface function rocblas_ddot(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_ddot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_ddot end interface interface function rocblas_hdot(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_hdot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_hdot end interface interface function rocblas_bfdot(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_bfdot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_bfdot end interface interface function rocblas_cdotu(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_cdotu') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_cdotu end interface interface function rocblas_cdotc(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_cdotc') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_cdotc end interface interface function rocblas_zdotu(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_zdotu') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_zdotu end interface interface function rocblas_zdotc(handle, n, x, incx, y, incy, result) & result(c_int) & bind(c, name = 'rocblas_zdotc') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: result end function rocblas_zdotc end interface ! dot_batched interface function rocblas_sdot_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_sdot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_sdot_batched end interface interface function rocblas_ddot_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_ddot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_ddot_batched end interface interface function rocblas_hdot_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_hdot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_hdot_batched end interface interface function rocblas_bfdot_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_bfdot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_bfdot_batched end interface interface function rocblas_cdotu_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_cdotu_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_cdotu_batched end interface interface function rocblas_cdotc_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_cdotc_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_cdotc_batched end interface interface function rocblas_zdotu_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_zdotu_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_zdotu_batched end interface interface function rocblas_zdotc_batched(handle, n, x, incx, y, incy, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_zdotc_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_zdotc_batched end interface ! dot_strided_batched interface function rocblas_sdot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_sdot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_sdot_strided_batched end interface interface function rocblas_ddot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_ddot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_ddot_strided_batched end interface interface function rocblas_hdot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_hdot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_hdot_strided_batched end interface interface function rocblas_bfdot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_bfdot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_bfdot_strided_batched end interface interface function rocblas_cdotu_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_cdotu_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_cdotu_strided_batched end interface interface function rocblas_cdotc_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_cdotc_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_cdotc_strided_batched end interface interface function rocblas_zdotu_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_zdotu_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_zdotu_strided_batched end interface interface function rocblas_zdotc_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_zdotc_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_zdotc_strided_batched end interface ! swap interface function rocblas_sswap(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_sswap') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_sswap end interface interface function rocblas_dswap(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_dswap') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_dswap end interface interface function rocblas_cswap(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_cswap') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_cswap end interface interface function rocblas_zswap(handle, n, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_zswap') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_zswap end interface ! swap_batched interface function rocblas_sswap_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_sswap_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_sswap_batched end interface interface function rocblas_dswap_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_dswap_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_dswap_batched end interface interface function rocblas_cswap_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_cswap_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_cswap_batched end interface interface function rocblas_zswap_batched(handle, n, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_zswap_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_zswap_batched end interface ! swap_strided_batched interface function rocblas_sswap_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_sswap_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_sswap_strided_batched end interface interface function rocblas_dswap_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_dswap_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_dswap_strided_batched end interface interface function rocblas_cswap_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_cswap_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_cswap_strided_batched end interface interface function rocblas_zswap_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_zswap_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_zswap_strided_batched end interface ! axpy interface function rocblas_haxpy(handle, n, alpha, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_haxpy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_haxpy end interface interface function rocblas_saxpy(handle, n, alpha, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_saxpy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_saxpy end interface interface function rocblas_daxpy(handle, n, alpha, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_daxpy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_daxpy end interface interface function rocblas_caxpy(handle, n, alpha, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_caxpy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_caxpy end interface interface function rocblas_zaxpy(handle, n, alpha, x, incx, y, incy) & result(c_int) & bind(c, name = 'rocblas_zaxpy') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy end function rocblas_zaxpy end interface ! axpy_batched interface function rocblas_haxpy_batched(handle, n, alpha, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_haxpy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_haxpy_batched end interface interface function rocblas_saxpy_batched(handle, n, alpha, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_saxpy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_saxpy_batched end interface interface function rocblas_daxpy_batched(handle, n, alpha, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_daxpy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_daxpy_batched end interface interface function rocblas_caxpy_batched(handle, n, alpha, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_caxpy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_caxpy_batched end interface interface function rocblas_zaxpy_batched(handle, n, alpha, x, incx, y, incy, batch_count) & result(c_int) & bind(c, name = 'rocblas_zaxpy_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: batch_count end function rocblas_zaxpy_batched end interface ! axpy_strided_batched interface function rocblas_haxpy_strided_batched(handle, n, alpha, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_haxpy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_haxpy_strided_batched end interface interface function rocblas_saxpy_strided_batched(handle, n, alpha, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_saxpy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_saxpy_strided_batched end interface interface function rocblas_daxpy_strided_batched(handle, n, alpha, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_daxpy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_daxpy_strided_batched end interface interface function rocblas_caxpy_strided_batched(handle, n, alpha, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_caxpy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_caxpy_strided_batched end interface interface function rocblas_zaxpy_strided_batched(handle, n, alpha, x, incx, stride_x, y, incy, stride_y, batch_count) & result(c_int) & bind(c, name = 'rocblas_zaxpy_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: alpha type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y integer(c_int), value :: batch_count end function rocblas_zaxpy_strided_batched end interface ! asum interface function rocblas_sasum(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_sasum') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_sasum end interface interface function rocblas_dasum(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_dasum') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_dasum end interface interface function rocblas_scasum(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_scasum') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_scasum end interface interface function rocblas_dzasum(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_dzasum') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_dzasum end interface ! asum_batched interface function rocblas_sasum_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_sasum_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_sasum_batched end interface interface function rocblas_dasum_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dasum_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dasum_batched end interface interface function rocblas_scasum_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_scasum_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_scasum_batched end interface interface function rocblas_dzasum_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dzasum_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dzasum_batched end interface ! asum_strided_batched interface function rocblas_sasum_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_sasum_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_sasum_strided_batched end interface interface function rocblas_dasum_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dasum_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dasum_strided_batched end interface interface function rocblas_scasum_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_scasum_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_scasum_strided_batched end interface interface function rocblas_dzasum_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dzasum_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dzasum_strided_batched end interface ! nrm2 interface function rocblas_snrm2(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_snrm2') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_snrm2 end interface interface function rocblas_dnrm2(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_dnrm2') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_dnrm2 end interface interface function rocblas_scnrm2(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_scnrm2') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_scnrm2 end interface interface function rocblas_dznrm2(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_dznrm2') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_dznrm2 end interface ! nrm2_batched interface function rocblas_snrm2_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_snrm2_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_snrm2_batched end interface interface function rocblas_dnrm2_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dnrm2_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dnrm2_batched end interface interface function rocblas_scnrm2_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_scnrm2_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_scnrm2_batched end interface interface function rocblas_dznrm2_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dznrm2_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dznrm2_batched end interface ! nrm2_strided_batched interface function rocblas_snrm2_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_snrm2_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_snrm2_strided_batched end interface interface function rocblas_dnrm2_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dnrm2_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dnrm2_strided_batched end interface interface function rocblas_scnrm2_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_scnrm2_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_scnrm2_strided_batched end interface interface function rocblas_dznrm2_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_dznrm2_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_dznrm2_strided_batched end interface ! amax interface function rocblas_isamax(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_isamax') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_isamax end interface interface function rocblas_idamax(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_idamax') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_idamax end interface interface function rocblas_icamax(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_icamax') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_icamax end interface interface function rocblas_izamax(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_izamax') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_izamax end interface ! amax_batched interface function rocblas_isamax_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_isamax_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_isamax_batched end interface interface function rocblas_idamax_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_idamax_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_idamax_batched end interface interface function rocblas_icamax_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_icamax_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_icamax_batched end interface interface function rocblas_izamax_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_izamax_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_izamax_batched end interface ! amax_strided_batched interface function rocblas_isamax_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_isamax_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_isamax_strided_batched end interface interface function rocblas_idamax_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_idamax_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_idamax_strided_batched end interface interface function rocblas_icamax_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_icamax_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_icamax_strided_batched end interface interface function rocblas_izamax_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_izamax_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_izamax_strided_batched end interface ! amin interface function rocblas_isamin(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_isamin') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_isamin end interface interface function rocblas_idamin(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_idamin') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_idamin end interface interface function rocblas_icamin(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_icamin') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_icamin end interface interface function rocblas_izamin(handle, n, x, incx, result) & result(c_int) & bind(c, name = 'rocblas_izamin') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: result end function rocblas_izamin end interface ! amin_batched interface function rocblas_isamin_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_isamin_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_isamin_batched end interface interface function rocblas_idamin_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_idamin_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_idamin_batched end interface interface function rocblas_icamin_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_icamin_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_icamin_batched end interface interface function rocblas_izamin_batched(handle, n, x, incx, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_izamin_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_izamin_batched end interface ! amin_strided_batched interface function rocblas_isamin_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_isamin_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_isamin_strided_batched end interface interface function rocblas_idamin_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_idamin_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_idamin_strided_batched end interface interface function rocblas_icamin_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_icamin_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_icamin_strided_batched end interface interface function rocblas_izamin_strided_batched(handle, n, x, incx, stride_x, batch_count, result) & result(c_int) & bind(c, name = 'rocblas_izamin_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x integer(c_int), value :: batch_count type(c_ptr), value :: result end function rocblas_izamin_strided_batched end interface ! rot interface function rocblas_srot(handle, n, x, incx, y, incy, c, s) & result(c_int) & bind(c, name = 'rocblas_srot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_srot end interface interface function rocblas_drot(handle, n, x, incx, y, incy, c, s) & result(c_int) & bind(c, name = 'rocblas_drot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_drot end interface interface function rocblas_crot(handle, n, x, incx, y, incy, c, s) & result(c_int) & bind(c, name = 'rocblas_crot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_crot end interface interface function rocblas_csrot(handle, n, x, incx, y, incy, c, s) & result(c_int) & bind(c, name = 'rocblas_csrot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_csrot end interface interface function rocblas_zrot(handle, n, x, incx, y, incy, c, s) & result(c_int) & bind(c, name = 'rocblas_zrot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_zrot end interface interface function rocblas_zdrot(handle, n, x, incx, y, incy, c, s) & result(c_int) & bind(c, name = 'rocblas_zdrot') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_zdrot end interface ! rot_batched interface function rocblas_srot_batched(handle, n, x, incx, y, incy, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_srot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_srot_batched end interface interface function rocblas_drot_batched(handle, n, x, incx, y, incy, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_drot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_drot_batched end interface interface function rocblas_crot_batched(handle, n, x, incx, y, incy, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_crot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_crot_batched end interface interface function rocblas_csrot_batched(handle, n, x, incx, y, incy, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_csrot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_csrot_batched end interface interface function rocblas_zrot_batched(handle, n, x, incx, y, incy, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_zrot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_zrot_batched end interface interface function rocblas_zdrot_batched(handle, n, x, incx, y, incy, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_zdrot_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_zdrot_batched end interface ! rot_strided_batched interface function rocblas_srot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_srot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_srot_strided_batched end interface interface function rocblas_drot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_drot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_drot_strided_batched end interface interface function rocblas_crot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_crot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_crot_strided_batched end interface interface function rocblas_csrot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_csrot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_csrot_strided_batched end interface interface function rocblas_zrot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_zrot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_zrot_strided_batched end interface interface function rocblas_zdrot_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_zdrot_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_zdrot_strided_batched end interface ! rotg interface function rocblas_srotg(handle, a, b, c, s) & result(c_int) & bind(c, name = 'rocblas_srotg') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_srotg end interface interface function rocblas_drotg(handle, a, b, c, s) & result(c_int) & bind(c, name = 'rocblas_drotg') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_drotg end interface interface function rocblas_crotg(handle, a, b, c, s) & result(c_int) & bind(c, name = 'rocblas_crotg') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_crotg end interface interface function rocblas_zrotg(handle, a, b, c, s) & result(c_int) & bind(c, name = 'rocblas_zrotg') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s end function rocblas_zrotg end interface ! rotg_batched interface function rocblas_srotg_batched(handle, a, b, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_srotg_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_srotg_batched end interface interface function rocblas_drotg_batched(handle, a, b, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_drotg_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_drotg_batched end interface interface function rocblas_crotg_batched(handle, a, b, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_crotg_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_crotg_batched end interface interface function rocblas_zrotg_batched(handle, a, b, c, s, batch_count) & result(c_int) & bind(c, name = 'rocblas_zrotg_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a type(c_ptr), value :: b type(c_ptr), value :: c type(c_ptr), value :: s integer(c_int), value :: batch_count end function rocblas_zrotg_batched end interface ! rotg_strided_batched interface function rocblas_srotg_strided_batched(handle, a, stride_a, b, stride_b, c, stride_c, s, stride_s, batch_count) & result(c_int) & bind(c, name = 'rocblas_srotg_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a integer(c_int), value :: stride_a type(c_ptr), value :: b integer(c_int), value :: stride_b type(c_ptr), value :: c integer(c_int), value :: stride_c type(c_ptr), value :: s integer(c_int), value :: stride_s integer(c_int), value :: batch_count end function rocblas_srotg_strided_batched end interface interface function rocblas_drotg_strided_batched(handle, a, stride_a, b, stride_b, c, stride_c, s, stride_s, batch_count) & result(c_int) & bind(c, name = 'rocblas_drotg_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a integer(c_int), value :: stride_a type(c_ptr), value :: b integer(c_int), value :: stride_b type(c_ptr), value :: c integer(c_int), value :: stride_c type(c_ptr), value :: s integer(c_int), value :: stride_s integer(c_int), value :: batch_count end function rocblas_drotg_strided_batched end interface interface function rocblas_crotg_strided_batched(handle, a, stride_a, b, stride_b, c, stride_c, s, stride_s, batch_count) & result(c_int) & bind(c, name = 'rocblas_crotg_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a integer(c_int), value :: stride_a type(c_ptr), value :: b integer(c_int), value :: stride_b type(c_ptr), value :: c integer(c_int), value :: stride_c type(c_ptr), value :: s integer(c_int), value :: stride_s integer(c_int), value :: batch_count end function rocblas_crotg_strided_batched end interface interface function rocblas_zrotg_strided_batched(handle, a, stride_a, b, stride_b, c, stride_c, s, stride_s, batch_count) & result(c_int) & bind(c, name = 'rocblas_zrotg_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: a integer(c_int), value :: stride_a type(c_ptr), value :: b integer(c_int), value :: stride_b type(c_ptr), value :: c integer(c_int), value :: stride_c type(c_ptr), value :: s integer(c_int), value :: stride_s integer(c_int), value :: batch_count end function rocblas_zrotg_strided_batched end interface ! rotm interface function rocblas_srotm(handle, n, x, incx, y, incy, param) & result(c_int) & bind(c, name = 'rocblas_srotm') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: param end function rocblas_srotm end interface interface function rocblas_drotm(handle, n, x, incx, y, incy, param) & result(c_int) & bind(c, name = 'rocblas_drotm') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: param end function rocblas_drotm end interface ! rotm_batched interface function rocblas_srotm_batched(handle, n, x, incx, y, incy, param, batch_count) & result(c_int) & bind(c, name = 'rocblas_srotm_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: param integer(c_int), value :: batch_count end function rocblas_srotm_batched end interface interface function rocblas_drotm_batched(handle, n, x, incx, y, incy, param, batch_count) & result(c_int) & bind(c, name = 'rocblas_drotm_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx type(c_ptr), value :: y integer(c_int), value :: incy type(c_ptr), value :: param integer(c_int), value :: batch_count end function rocblas_drotm_batched end interface ! rotm_strided_batched interface function rocblas_srotm_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, param, stride_param, batch_count) & result(c_int) & bind(c, name = 'rocblas_srotm_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: param integer(c_int), value :: stride_param integer(c_int), value :: batch_count end function rocblas_srotm_strided_batched end interface interface function rocblas_drotm_strided_batched(handle, n, x, incx, stride_x, y, incy, stride_y, param, stride_param, batch_count) & result(c_int) & bind(c, name = 'rocblas_drotm_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle integer(c_int), value :: n type(c_ptr), value :: x integer(c_int), value :: incx integer(c_int), value :: stride_x type(c_ptr), value :: y integer(c_int), value :: incy integer(c_int), value :: stride_y type(c_ptr), value :: param integer(c_int), value :: stride_param integer(c_int), value :: batch_count end function rocblas_drotm_strided_batched end interface ! rotmg interface function rocblas_srotmg(handle, d1, d2, x1, y1, param) & result(c_int) & bind(c, name = 'rocblas_srotmg') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: d1 type(c_ptr), value :: d2 type(c_ptr), value :: x1 type(c_ptr), value :: y1 type(c_ptr), value :: param end function rocblas_srotmg end interface interface function rocblas_drotmg(handle, d1, d2, x1, y1, param) & result(c_int) & bind(c, name = 'rocblas_drotmg') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: d1 type(c_ptr), value :: d2 type(c_ptr), value :: x1 type(c_ptr), value :: y1 type(c_ptr), value :: param end function rocblas_drotmg end interface ! rotmg_batched interface function rocblas_srotmg_batched(handle, d1, d2, x1, y1, param, batch_count) & result(c_int) & bind(c, name = 'rocblas_srotmg_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: d1 type(c_ptr), value :: d2 type(c_ptr), value :: x1 type(c_ptr), value :: y1 type(c_ptr), value :: param integer(c_int), value :: batch_count end function rocblas_srotmg_batched end interface interface function rocblas_drotmg_batched(handle, d1, d2, x1, y1, param, batch_count) & result(c_int) & bind(c, name = 'rocblas_drotmg_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: d1 type(c_ptr), value :: d2 type(c_ptr), value :: x1 type(c_ptr), value :: y1 type(c_ptr), value :: param integer(c_int), value :: batch_count end function rocblas_drotmg_batched end interface ! rotmg_strided_batched interface function rocblas_srotmg_strided_batched(handle, d1, stride_d1, d2, stride_d2, x1, stride_x1, & y1, stride_y1, param, stride_param, batch_count) & result(c_int) & bind(c, name = 'rocblas_srotmg_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: d1 integer(c_int), value :: stride_d1 type(c_ptr), value :: d2 integer(c_int), value :: stride_d2 type(c_ptr), value :: x1 integer(c_int), value :: stride_x1 type(c_ptr), value :: y1 integer(c_int), value :: stride_y1 type(c_ptr), value :: param integer(c_int), value :: stride_param integer(c_int), value :: batch_count end function rocblas_srotmg_strided_batched end interface interface function rocblas_drotmg_strided_batched(handle, d1, stride_d1, d2, stride_d2, x1, stride_x1, & y1, stride_y1, param, stride_param, batch_count) & result(c_int) & bind(c, name = 'rocblas_drotmg_strided_batched') use iso_c_binding implicit none type(c_ptr), value :: handle type(c_ptr), value :: d1 integer(c_int), value :: stride_d1 type(c_ptr), value :: d2 integer(c_int), value :: stride_d2 type(c_ptr), value :: x1 integer(c_int), value :: stride_x1 type(c_ptr), value :: y1 integer(c_int), value :: stride_y1 type(c_ptr), value :: param integer(c_int), value :: stride_param integer(c_int), value :: batch_count end function rocblas_drotmg_strided_batched end interface contains subroutine rocblasCheck(rocblasError_t) implicit none integer(kind(rocblas_status_success)) :: rocblasError_t if (rocblasError_t /= rocblas_status_success) then write(*,*) "ROCBLAS ERROR: Error code = ", rocblasError_t call exit(rocblasError_t) end if end subroutine rocblasCheck end module rocblashipfort-7.2.4/lib/modules-amdgcn/rocfft.f900000664000175000017500000000500715207260635020643 0ustar alastairalastairmodule rocfft use rocfft_enums implicit none interface function rocfft_setup() bind(c,name="rocfft_setup") use rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_setup end function rocfft_setup function rocfft_cleanup() bind(c,name="rocfft_cleanup") use rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_cleanup end function rocfft_cleanup function rocfft_plan_create(plan,& placement,& transform_type,& precision,& dimensions,& lengths,& number_of_transforms,& description) bind(c,name="rocfft_plan_create") use rocfft_enums use iso_c_binding implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_create type(c_ptr) :: plan integer(kind(rocfft_placement_inplace)), value :: placement integer(kind(rocfft_transform_type_complex_forward)), value :: transform_type integer(kind(rocfft_precision_single)), value :: precision integer(c_size_t), value :: dimensions type(c_ptr), value, intent(in) :: lengths integer(c_size_t), value :: number_of_transforms type(c_ptr), value, intent(in) :: description end function rocfft_plan_create function rocfft_plan_destroy(plan) bind(c,name="rocfft_plan_destroy") use rocfft_enums use iso_c_binding implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_destroy type(c_ptr), value :: plan end function rocfft_plan_destroy function rocfft_execute(plan,in_buffer,out_buffer,execution_info) bind(c,name="rocfft_execute") use rocfft_enums use iso_c_binding implicit none integer(kind(rocfft_status_success)) :: rocfft_execute type(c_ptr), value, intent(in) :: plan type(c_ptr) :: in_buffer, out_buffer type(c_ptr), value :: execution_info end function rocfft_execute end interface contains subroutine rocfftCheck(rocfft_status) use rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_status if(rocfft_status /= rocfft_status_success)then write(*,*) "rocFFT ERROR: Error code = ", rocfft_status call exit(rocfft_status) end if end subroutine rocfftCheck end module rocfft hipfort-7.2.4/lib/hipfort-config.cmake.in0000664000175000017500000000324015207260635020463 0ustar alastairalastair# Copyright (c) 2023 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. @PACKAGE_INIT@ include(CMakeFindDependencyMacro) set(_hipfort_supported_components hip rocblas rocfft rocrand rocsolver rocsparse hipblas hipfft hiprand hipsolver hipsparse) include("${CMAKE_CURRENT_LIST_DIR}/hipfort-amdgcn-targets.cmake") foreach(_comp ${hipfort_FIND_COMPONENTS}) if (NOT _comp IN_LIST _hipfort_supported_components) set(hipfort_FOUND False) set(hipfort_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}") endif() include("${CMAKE_CURRENT_LIST_DIR}/hipfort-${_comp}-targets.cmake") find_dependency(${_comp}) endforeach() hipfort-7.2.4/lib/CMakeLists.txt0000664000175000017500000001766715207260635016720 0ustar alastairalastair# Copyright (c) 2020-2023 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. file(GLOB HIPFORT_SRC_HIP_F90 "${CMAKE_CURRENT_SOURCE_DIR}/hipfort/*.f90") file(GLOB HIPFORT_SRC_HIP_F90_UPPER "${CMAKE_CURRENT_SOURCE_DIR}/hipfort/*.F90") set(HIPFORT_SRC_HIP ${HIPFORT_SRC_HIP_F90} ${HIPFORT_SRC_HIP_F90_UPPER}) #file(GLOB HIPFORT_SRC_CONTRIB "${CMAKE_CURRENT_SOURCE_DIR}/modules-contrib/*.f*") #file(GLOB HIPFORT_SRC_HIP "${CMAKE_CURRENT_SOURCE_DIR}/hipfort/*.f*") #file(GLOB HIPFORT_SRC_amdgcn "${CMAKE_CURRENT_SOURCE_DIR}/modules-amdgcn/*.f*") #file(GLOB HIPFORT_SRC_nvptx "${CMAKE_CURRENT_SOURCE_DIR}/modules-nvptx/*.f*") set(HIPFORT_ARCH "amdgcn") # amdgcn set(HIPFORT_LIB "hipfort-${HIPFORT_ARCH}") set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/include/hipfort/${HIPFORT_ARCH}) ADD_LIBRARY(${HIPFORT_LIB} STATIC ${HIPFORT_SRC_HIP} #${HIPFORT_SRC_amdgcn} ${HIPFORT_SRC_CONTRIB} ) target_include_directories(${HIPFORT_LIB} PUBLIC $ ) IF(CMAKE_Fortran_COMPILER_SUPPORTS_F08) target_compile_definitions(${HIPFORT_LIB} PRIVATE USE_FPOINTER_INTERFACES) ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F08) target_compile_definitions(${HIPFORT_LIB} PRIVATE _HIPFORT_ARCH='${HIPFORT_ARCH}') # Install Target hipfort-amdgcn rocm_install_targets( TARGETS ${HIPFORT_LIB} EXPORT hipfort-amdgcn-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} INCLUDE ${CMAKE_Fortran_MODULE_DIRECTORY} ) set(HIPFORT_ARCH "nvptx") # nvptx set(HIPFORT_LIB "hipfort-${HIPFORT_ARCH}") set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/include/hipfort/${HIPFORT_ARCH}) ADD_LIBRARY(${HIPFORT_LIB} STATIC ${HIPFORT_SRC_HIP} #${HIPFORT_SRC_nvptx} ${HIPFORT_SRC_CONTRIB} ) IF(CMAKE_Fortran_COMPILER_SUPPORTS_F08) target_compile_definitions(${HIPFORT_LIB} PRIVATE USE_FPOINTER_INTERFACES) ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F08) target_compile_definitions(${HIPFORT_LIB} PRIVATE USE_CUDA_NAMES) target_compile_definitions(${HIPFORT_LIB} PRIVATE _HIPFORT_ARCH='${HIPFORT_ARCH}') # Install Target hipfort-nvptx rocm_install_targets( TARGETS ${HIPFORT_LIB} INCLUDE ${CMAKE_Fortran_MODULE_DIRECTORY} ) # Install include files marking as devel component rocm_install(DIRECTORY ${CMAKE_BINARY_DIR}/include/hipfort DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT devel) # target_link_libraries(${HIPFORT_LIB} PUBLIC # /usr/local/cuda/targets/x86_64-linux/lib/libcudart_static.a) rocm_install( EXPORT hipfort-amdgcn-targets FILE hipfort-amdgcn-targets.cmake NAMESPACE hipfort:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hipfort ) macro(hipfort_add_component name imported_target) add_library(hipfort-${name} INTERFACE) add_library(hipfort::${name} ALIAS hipfort-${name}) set_target_properties(hipfort-${name} PROPERTIES EXPORT_NAME ${name} ) target_link_libraries(hipfort-${name} INTERFACE hipfort-amdgcn ${imported_target}) rocm_install( TARGETS hipfort-${name} EXPORT hipfort-${name}-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) rocm_install( EXPORT hipfort-${name}-targets FILE hipfort-${name}-targets.cmake NAMESPACE hipfort:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hipfort ) endmacro() find_package(hip PATHS ${ROCM_PATH} /opt/rocm) if(HIP_PLATFORM STREQUAL "amd") if(hip_FOUND) hipfort_add_component(hip hip::host) else() message(STATUS "Skipping hipfort::hip target export") endif() find_package(rocprofiler-sdk-roctx PATHS ${ROCM_PATH} /opt/rocm) if(rocprofiler-sdk-roctx_FOUND) hipfort_add_component(roctx rocprofiler-sdk-roctx::rocprofiler-sdk-roctx) else() message(STATUS "Skipping hipfort::roctx target export") endif() find_package(rocblas PATHS ${ROCM_PATH} /opt/rocm) if(rocblas_FOUND) hipfort_add_component(rocblas roc::rocblas) else() message(STATUS "Skipping hipfort::rocblas target export") endif() find_package(hipblas PATHS ${ROCM_PATH} /opt/rocm) if(hipblas_FOUND) hipfort_add_component(hipblas roc::hipblas) else() message(STATUS "Skipping hipfort::hipblas target export") endif() find_package(rocfft PATHS ${ROCM_PATH} /opt/rocm) if(rocfft_FOUND) hipfort_add_component(rocfft roc::rocfft) else() message(STATUS "Skipping hipfort::rocfft target export") endif() find_package(hipfft PATHS ${ROCM_PATH} /opt/rocm) if(hipfft_FOUND) hipfort_add_component(hipfft hip::hipfft) else() message(STATUS "Skipping hipfort::hipfft target export") endif() find_package(rocrand PATHS ${ROCM_PATH} /opt/rocm) if(rocrand_FOUND) hipfort_add_component(rocrand roc::rocrand) else() message(STATUS "Skipping hipfort::rocrand target export") endif() find_package(hiprand PATHS ${ROCM_PATH} /opt/rocm) if(hiprand_FOUND) hipfort_add_component(hiprand hip::hiprand) else() message(STATUS "Skipping hipfort::hiprand target export") endif() find_package(rocsolver PATHS ${ROCM_PATH} /opt/rocm) if(rocsolver_FOUND) hipfort_add_component(rocsolver roc::rocsolver) else() message(STATUS "Skipping hipfort::rocsolver target export") endif() find_package(hipsolver PATHS ${ROCM_PATH} /opt/rocm) if(hipsolver_FOUND) hipfort_add_component(hipsolver roc::hipsolver) else() message(STATUS "Skipping hipfort::hipsolver target export") endif() find_package(rocsparse PATHS ${ROCM_PATH} /opt/rocm) if(rocsparse_FOUND) hipfort_add_component(rocsparse roc::rocsparse) else() message(STATUS "Skipping hipfort::rocsparse target export") endif() find_package(hipsparse PATHS ${ROCM_PATH} /opt/rocm) if(hipsparse_FOUND) hipfort_add_component(hipsparse roc::hipsparse) else() message(STATUS "Skipping hipfort::hipsparse target export") endif() include(CMakePackageConfigHelpers) configure_package_config_file( hipfort-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hipfort-config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hipfort NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/hipfort-config-version.cmake VERSION "${HIPFORT_VERSION_MAJOR}.${HIPFORT_VERSION_MINOR}.${HIPFORT_VERSION_PATCH}" COMPATIBILITY SameMajorVersion ) rocm_install( FILES ${CMAKE_CURRENT_BINARY_DIR}/hipfort-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/hipfort-config-version.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hipfort ) endif() hipfort-7.2.4/lib/hipfort/0000775000175000017500000000000015207260635015612 5ustar alastairalastairhipfort-7.2.4/lib/hipfort/hipfort_auxiliary.F900000664000175000017500000000230215207260635021631 0ustar alastairalastairmodule hipfort_auxiliary !> !> @brief Returns device properties. !> !> @param [out] prop written with device properties !> @param [in] deviceId which device to query for information !> !> @return hipSuccess, hipErrorInvalidDevice !> @bug HCC always returns 0 for maxThreadsPerMultiProcessor !> @bug HCC always returns 0 for regsPerBlock !> @bug HCC always returns 0 for l2CacheSize !> !> Populates hipGetDeviceProperties with information for the specified device. !> interface hipGetDeviceProperties #ifdef USE_CUDA_NAMES function hipGetDeviceProperties_(prop,deviceId) bind(c, name="cudaGetDeviceProperties") #else function hipGetDeviceProperties_(prop,deviceId) bind(c, name="hipGetDeviceProperties") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetDeviceProperties_ #else integer(kind(hipSuccess)) :: hipGetDeviceProperties_ #endif type(hipDeviceProp_t),intent(out) :: prop integer(c_int),value :: deviceId end function end interface end module hipfort_auxiliary hipfort-7.2.4/lib/hipfort/hipfort_rocblas_auxiliary.F900000664000175000017500000024652515207260635023357 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocblas_auxiliary interface rocblas_set_vector function rocblas_set_vector_(n,elem_size,x,incx,y,incy) bind(c, name="rocblas_set_vector") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_set_vector_l_rank_0,rocblas_set_vector_l_full_rank,& rocblas_set_vector_i4_rank_0,rocblas_set_vector_i4_full_rank,& rocblas_set_vector_i8_rank_0,rocblas_set_vector_i8_full_rank,& rocblas_set_vector_r4_rank_0,rocblas_set_vector_r4_full_rank,& rocblas_set_vector_r8_rank_0,rocblas_set_vector_r8_full_rank,& rocblas_set_vector_c4_rank_0,rocblas_set_vector_c4_full_rank,& rocblas_set_vector_c8_rank_0,rocblas_set_vector_c8_full_rank #endif end interface interface rocblas_get_vector function rocblas_get_vector_(n,elem_size,x,incx,y,incy) bind(c, name="rocblas_get_vector") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_get_vector_l_rank_0,rocblas_get_vector_l_full_rank,& rocblas_get_vector_i4_rank_0,rocblas_get_vector_i4_full_rank,& rocblas_get_vector_i8_rank_0,rocblas_get_vector_i8_full_rank,& rocblas_get_vector_r4_rank_0,rocblas_get_vector_r4_full_rank,& rocblas_get_vector_r8_rank_0,rocblas_get_vector_r8_full_rank,& rocblas_get_vector_c4_rank_0,rocblas_get_vector_c4_full_rank,& rocblas_get_vector_c8_rank_0,rocblas_get_vector_c8_full_rank #endif end interface interface rocblas_set_matrix function rocblas_set_matrix_(rows,cols,elem_size,A,lda,B,ldb) bind(c, name="rocblas_set_matrix") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_set_matrix_l_full_rank,rocblas_set_matrix_l_rank_0,rocblas_set_matrix_l_rank_1,& rocblas_set_matrix_i4_full_rank,rocblas_set_matrix_i4_rank_0,rocblas_set_matrix_i4_rank_1,& rocblas_set_matrix_i8_full_rank,rocblas_set_matrix_i8_rank_0,rocblas_set_matrix_i8_rank_1,& rocblas_set_matrix_r4_full_rank,rocblas_set_matrix_r4_rank_0,rocblas_set_matrix_r4_rank_1,& rocblas_set_matrix_r8_full_rank,rocblas_set_matrix_r8_rank_0,rocblas_set_matrix_r8_rank_1,& rocblas_set_matrix_c4_full_rank,rocblas_set_matrix_c4_rank_0,rocblas_set_matrix_c4_rank_1,& rocblas_set_matrix_c8_full_rank,rocblas_set_matrix_c8_rank_0,rocblas_set_matrix_c8_rank_1 #endif end interface interface rocblas_get_matrix function rocblas_get_matrix_(rows,cols,elem_size,A,lda,B,ldb) bind(c, name="rocblas_get_matrix") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_get_matrix_l_full_rank,rocblas_get_matrix_l_rank_0,rocblas_get_matrix_l_rank_1,& rocblas_get_matrix_i4_full_rank,rocblas_get_matrix_i4_rank_0,rocblas_get_matrix_i4_rank_1,& rocblas_get_matrix_i8_full_rank,rocblas_get_matrix_i8_rank_0,rocblas_get_matrix_i8_rank_1,& rocblas_get_matrix_r4_full_rank,rocblas_get_matrix_r4_rank_0,rocblas_get_matrix_r4_rank_1,& rocblas_get_matrix_r8_full_rank,rocblas_get_matrix_r8_rank_0,rocblas_get_matrix_r8_rank_1,& rocblas_get_matrix_c4_full_rank,rocblas_get_matrix_c4_rank_0,rocblas_get_matrix_c4_rank_1,& rocblas_get_matrix_c8_full_rank,rocblas_get_matrix_c8_rank_0,rocblas_get_matrix_c8_rank_1 #endif end interface interface rocblas_set_vector_async function rocblas_set_vector_async_(n,elem_size,x,incx,y,incy,stream) bind(c, name="rocblas_set_vector_async") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_set_vector_async_l_rank_0,rocblas_set_vector_async_l_full_rank,& rocblas_set_vector_async_i4_rank_0,rocblas_set_vector_async_i4_full_rank,& rocblas_set_vector_async_i8_rank_0,rocblas_set_vector_async_i8_full_rank,& rocblas_set_vector_async_r4_rank_0,rocblas_set_vector_async_r4_full_rank,& rocblas_set_vector_async_r8_rank_0,rocblas_set_vector_async_r8_full_rank,& rocblas_set_vector_async_c4_rank_0,rocblas_set_vector_async_c4_full_rank,& rocblas_set_vector_async_c8_rank_0,rocblas_set_vector_async_c8_full_rank #endif end interface interface rocblas_get_vector_async function rocblas_get_vector_async_(n,elem_size,x,incx,y,incy,stream) bind(c, name="rocblas_get_vector_async") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_get_vector_async_l_rank_0,rocblas_get_vector_async_l_full_rank,& rocblas_get_vector_async_i4_rank_0,rocblas_get_vector_async_i4_full_rank,& rocblas_get_vector_async_i8_rank_0,rocblas_get_vector_async_i8_full_rank,& rocblas_get_vector_async_r4_rank_0,rocblas_get_vector_async_r4_full_rank,& rocblas_get_vector_async_r8_rank_0,rocblas_get_vector_async_r8_full_rank,& rocblas_get_vector_async_c4_rank_0,rocblas_get_vector_async_c4_full_rank,& rocblas_get_vector_async_c8_rank_0,rocblas_get_vector_async_c8_full_rank #endif end interface interface rocblas_set_matrix_async function rocblas_set_matrix_async_(rows,cols,elem_size,A,lda,B,ldb,stream) bind(c, name="rocblas_set_matrix_async") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_set_matrix_async_l_full_rank,rocblas_set_matrix_async_l_rank_0,rocblas_set_matrix_async_l_rank_1,& rocblas_set_matrix_async_i4_full_rank,rocblas_set_matrix_async_i4_rank_0,rocblas_set_matrix_async_i4_rank_1,& rocblas_set_matrix_async_i8_full_rank,rocblas_set_matrix_async_i8_rank_0,rocblas_set_matrix_async_i8_rank_1,& rocblas_set_matrix_async_r4_full_rank,rocblas_set_matrix_async_r4_rank_0,rocblas_set_matrix_async_r4_rank_1,& rocblas_set_matrix_async_r8_full_rank,rocblas_set_matrix_async_r8_rank_0,rocblas_set_matrix_async_r8_rank_1,& rocblas_set_matrix_async_c4_full_rank,rocblas_set_matrix_async_c4_rank_0,rocblas_set_matrix_async_c4_rank_1,& rocblas_set_matrix_async_c8_full_rank,rocblas_set_matrix_async_c8_rank_0,rocblas_set_matrix_async_c8_rank_1 #endif end interface interface rocblas_get_matrix_async function rocblas_get_matrix_async_(rows,cols,elem_size,A,lda,B,ldb,stream) bind(c, name="rocblas_get_matrix_async") result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure rocblas_get_matrix_async_l_full_rank,rocblas_get_matrix_async_l_rank_0,rocblas_get_matrix_async_l_rank_1,& rocblas_get_matrix_async_i4_full_rank,rocblas_get_matrix_async_i4_rank_0,rocblas_get_matrix_async_i4_rank_1,& rocblas_get_matrix_async_i8_full_rank,rocblas_get_matrix_async_i8_rank_0,rocblas_get_matrix_async_i8_rank_1,& rocblas_get_matrix_async_r4_full_rank,rocblas_get_matrix_async_r4_rank_0,rocblas_get_matrix_async_r4_rank_1,& rocblas_get_matrix_async_r8_full_rank,rocblas_get_matrix_async_r8_rank_0,rocblas_get_matrix_async_r8_rank_1,& rocblas_get_matrix_async_c4_full_rank,rocblas_get_matrix_async_c4_rank_0,rocblas_get_matrix_async_c4_rank_1,& rocblas_get_matrix_async_c8_full_rank,rocblas_get_matrix_async_c8_rank_0,rocblas_get_matrix_async_c8_rank_1 #endif end interface #ifdef USE_FPOINTER_INTERFACES contains function rocblas_set_vector_l_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_l_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_l_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_l_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_l_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_l_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_l_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_l_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_l_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_l_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_l_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_l_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_l_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_l_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_l_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_l_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_l_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_l_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_l_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_l_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_vector_i4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_i4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_i4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_i4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_i4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_i4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_i4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_i4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_i4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_i4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_i4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_i4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_i4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_i4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_i4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_i4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_i4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_i4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_i4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_i4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_vector_i8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_i8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_i8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_i8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_i8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_i8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_i8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_i8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_i8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_i8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_i8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_i8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_i8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_i8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_i8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_i8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_i8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_i8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_i8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_i8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_vector_r4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_r4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_r4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_r4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_r4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_r4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_r4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_r4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_r4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_r4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_r4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_r4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_r4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_r4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_r4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_r4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_r4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_r4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_r4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_r4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_vector_r8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_r8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_r8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_r8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_r8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_r8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_r8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_r8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_r8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_r8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_r8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_r8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_r8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_r8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_r8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_r8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_r8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_r8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_r8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_r8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_vector_c4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_c4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_c4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_c4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_c4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_c4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_c4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_c4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_c4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_c4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_c4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_c4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_c4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_c4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_c4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_c4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_c4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_c4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_c4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_c4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_vector_c8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_vector_c8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_set_vector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_c8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_get_vector_c8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = rocblas_get_vector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function rocblas_set_matrix_c8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B ! ret = rocblas_set_matrix_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_set_matrix_c8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_matrix_c8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_set_matrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_c8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B ! ret = rocblas_get_matrix_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function rocblas_get_matrix_c8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_get_matrix_c8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = rocblas_get_matrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_set_vector_async_c8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_vector_async_c8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_set_vector_async_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_c8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_get_vector_async_c8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = rocblas_get_vector_async_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function rocblas_set_matrix_async_c8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_set_matrix_async_c8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_set_matrix_async_c8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_set_matrix_async_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_c8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function rocblas_get_matrix_async_c8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function function rocblas_get_matrix_async_c8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = rocblas_get_matrix_async_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function #endif end modulehipfort-7.2.4/lib/hipfort/hipfort_rocrand.F900000664000175000017500000006342615207260635021270 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocrand use hipfort_rocrand_enums implicit none !> \brief Creates a new random number generator. !> !> Creates a new pseudo random number generator of type \p rng_type !> and returns it in \p generator. !> !> Values for \p rng_type are: !> - ROCRAND_RNG_PSEUDO_XORWOW !> - ROCRAND_RNG_PSEUDO_MRG32K3A !> - ROCRAND_RNG_PSEUDO_MTGP32 !> - ROCRAND_RNG_PSEUDO_PHILOX4_32_10 !> - ROCRAND_RNG_QUASI_SOBOL32 !> !> \param generator - Pointer to generator !> \param rng_type - Type of generator to create !> !> \return !> - ROCRAND_STATUS_ALLOCATION_FAILED, if memory could not be allocated \n !> - ROCRAND_STATUS_VERSION_MISMATCH if the header file version does not match the !> dynamically linked library version \n !> - ROCRAND_STATUS_TYPE_ERROR if the value for \p rng_type is invalid \n !> - ROCRAND_STATUS_SUCCESS if generator was created successfully \n !> interface rocrand_create_generator function rocrand_create_generator_(generator,rng_type) bind(c, name="rocrand_create_generator") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_create_generator_ type(c_ptr) :: generator integer(kind(ROCRAND_RNG_PSEUDO_DEFAULT)),value :: rng_type end function end interface !> \brief Destroys random number generator. !> !> Destroys random number generator and frees related memory. !> !> \param generator - Generator to be destroyed !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_SUCCESS if generator was destroyed successfully \n interface rocrand_destroy_generator function rocrand_destroy_generator_(generator) bind(c, name="rocrand_destroy_generator") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_destroy_generator_ type(c_ptr),value :: generator end function end interface !> \brief Generates uniformly distributed 32-bit unsigned integers. !> !> Generates \p n uniformly distributed 32-bit unsigned integers and !> saves them to \p output_data. !> !> Generated numbers are between \p 0 and \p 2^32, including \p 0 and !> excluding \p 2^32. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 32-bit unsigned integers to generate !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate function rocrand_generate_(generator,output_data,n) bind(c, name="rocrand_generate") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed 8-bit unsigned integers. !> !> Generates \p n uniformly distributed 8-bit unsigned integers and !> saves them to \p output_data. !> !> Generated numbers are between \p 0 and \p 2^8, including \p 0 and !> excluding \p 2^8. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 8-bit unsigned integers to generate !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_char function rocrand_generate_char_(generator,output_data,n) bind(c, name="rocrand_generate_char") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_char_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed 16-bit unsigned integers. !> !> Generates \p n uniformly distributed 16-bit unsigned integers and !> saves them to \p output_data. !> !> Generated numbers are between \p 0 and \p 2^16, including \p 0 and !> excluding \p 2^16. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 16-bit unsigned integers to generate !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_short function rocrand_generate_short_(generator,output_data,n) bind(c, name="rocrand_generate_short") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_short_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed \p float values. !> !> Generates \p n uniformly distributed 32-bit floating-point values !> and saves them to \p output_data. !> !> Generated numbers are between \p 0.0f and \p 1.0f, excluding \p 0.0f and !> including \p 1.0f. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_uniform function rocrand_generate_uniform_(generator,output_data,n) bind(c, name="rocrand_generate_uniform") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_uniform_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed double-precision floating-point values. !> !> Generates \p n uniformly distributed 64-bit double-precision floating-point !> values and saves them to \p output_data. !> !> Generated numbers are between \p 0.0 and \p 1.0, excluding \p 0.0 and !> including \p 1.0. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of doubles to generate !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_uniform_double function rocrand_generate_uniform_double_(generator,output_data,n) bind(c, name="rocrand_generate_uniform_double") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_uniform_double_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates normally distributed \p float values. !> !> Generates \p n normally distributed distributed 32-bit floating-point !> values and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> \param mean - Mean value of normal distribution !> \param stddev - Standard deviation value of normal distribution !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_normal function rocrand_generate_normal_(generator,output_data,n,mean,stddev) bind(c, name="rocrand_generate_normal") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_normal_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_float),value :: mean real(c_float),value :: stddev end function end interface !> \brief Generates normally distributed \p double values. !> !> Generates \p n normally distributed 64-bit double-precision floating-point !> numbers and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of doubles to generate !> \param mean - Mean value of normal distribution !> \param stddev - Standard deviation value of normal distribution !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_normal_double function rocrand_generate_normal_double_(generator,output_data,n,mean,stddev) bind(c, name="rocrand_generate_normal_double") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_normal_double_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_double),value :: mean real(c_double),value :: stddev end function end interface !> \brief Generates log-normally distributed \p float values. !> !> Generates \p n log-normally distributed 32-bit floating-point values !> and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> \param mean - Mean value of log normal distribution !> \param stddev - Standard deviation value of log normal distribution !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_log_normal function rocrand_generate_log_normal_(generator,output_data,n,mean,stddev) bind(c, name="rocrand_generate_log_normal") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_log_normal_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_float),value :: mean real(c_float),value :: stddev end function end interface !> \brief Generates log-normally distributed \p double values. !> !> Generates \p n log-normally distributed 64-bit double-precision floating-point !> values and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of doubles to generate !> \param mean - Mean value of log normal distribution !> \param stddev - Standard deviation value of log normal distribution !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_log_normal_double function rocrand_generate_log_normal_double_(generator,output_data,n,mean,stddev) bind(c, name="rocrand_generate_log_normal_double") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_log_normal_double_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_double),value :: mean real(c_double),value :: stddev end function end interface !> \brief Generates Poisson-distributed 32-bit unsigned integers. !> !> Generates \p n Poisson-distributed 32-bit unsigned integers and !> saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 32-bit unsigned integers to generate !> \param lambda - lambda for the Poisson distribution !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_OUT_OF_RANGE if lambda is non-positive \n !> - ROCRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - ROCRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface rocrand_generate_poisson function rocrand_generate_poisson_(generator,output_data,n,lambda) bind(c, name="rocrand_generate_poisson") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_generate_poisson_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_double),value :: lambda end function end interface !> \brief Initializes the generator's state on GPU or host. !> !> Initializes the generator's state on GPU or host. User it not !> required to call this function before using a generator. !> !> If rocrand_initialize() was not called for a generator, it will be !> automatically called by functions which generates random numbers like !> rocrand_generate(), rocrang_generate_uniform() etc. !> !> \param generator - Generator to initialize !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_LAUNCH_FAILURE if a HIP kernel launch failed \n !> - ROCRAND_STATUS_SUCCESS if the seeds were generated successfully \n interface rocrand_initialize_generator function rocrand_initialize_generator_(generator) bind(c, name="rocrand_initialize_generator") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_initialize_generator_ type(c_ptr),value :: generator end function end interface !> \brief Sets the current stream for kernel launches. !> !> Sets the current stream for all kernel launches of the generator. !> All functions will use this stream. !> !> \param generator - Generator to modify !> \param stream - Stream to use or NULL for default stream !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_SUCCESS if stream was set successfully \n interface rocrand_set_stream function rocrand_set_stream_(generator,stream) bind(c, name="rocrand_set_stream") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_set_stream_ type(c_ptr),value :: generator type(c_ptr),value :: stream end function end interface !> \brief Sets the seed of a pseudo-random number generator. !> !> Sets the seed of the pseudo-random number generator. !> !> - This operation resets the generator's internal state. !> - This operation does not change the generator's offset. !> !> For a MRG32K3a generator seed value can't be zero. If \p seed is !> equal zero and generator's type is ROCRAND_RNG_PSEUDO_MRG32K3A, !> value \p 12345 is used as a seed instead. !> !> \param generator - Pseudo-random number generator !> \param seed - New seed value !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_TYPE_ERROR if the generator is a quasi-random number generator \n !> - ROCRAND_STATUS_SUCCESS if seed was set successfully \n interface rocrand_set_seed function rocrand_set_seed_(generator,seed) bind(c, name="rocrand_set_seed") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_set_seed_ type(c_ptr),value :: generator integer(c_long_long),value :: seed end function end interface !> \brief Sets the offset of a random number generator. !> !> Sets the absolute offset of the random number generator. !> !> - This operation resets the generator's internal state. !> - This operation does not change the generator's seed. !> !> Absolute offset cannot be set if generator's type is ROCRAND_RNG_PSEUDO_MTGP32. !> !> \param generator - Random number generator !> \param offset - New absolute offset !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_SUCCESS if offset was successfully set \n !> - ROCRAND_STATUS_TYPE_ERROR if generator's type is ROCRAND_RNG_PSEUDO_MTGP32 interface rocrand_set_offset function rocrand_set_offset_(generator,offset) bind(c, name="rocrand_set_offset") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_set_offset_ type(c_ptr),value :: generator integer(c_long_long),value :: offset end function end interface !> \brief Set the number of dimensions of a quasi-random number generator. !> !> Set the number of dimensions of a quasi-random number generator. !> Supported values of \p dimensions are 1 to 20000. !> !> - This operation resets the generator's internal state. !> - This operation does not change the generator's offset. !> !> \param generator - Quasi-random number generator !> \param dimensions - Number of dimensions !> !> \return !> - ROCRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - ROCRAND_STATUS_TYPE_ERROR if the generator is not a quasi-random number generator \n !> - ROCRAND_STATUS_OUT_OF_RANGE if \p dimensions is out of range \n !> - ROCRAND_STATUS_SUCCESS if the number of dimensions was set successfully \n interface rocrand_set_quasi_random_generator_dimensions function rocrand_set_quasi_random_generator_dimensions_(generator,dimensions) bind(c, name="rocrand_set_quasi_random_generator_dimensions") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_set_quasi_random_generator_dimensions_ type(c_ptr),value :: generator integer(c_int),value :: dimensions end function end interface !> \brief Returns the version number of the library. !> !> Returns in \p version the version number of the dynamically linked !> rocRAND library. !> !> \param version - Version of the library !> !> \return !> - ROCRAND_STATUS_OUT_OF_RANGE if \p version is NULL \n !> - ROCRAND_STATUS_SUCCESS if the version number was successfully returned \n interface rocrand_get_version function rocrand_get_version_(version) bind(c, name="rocrand_get_version") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_get_version_ type(c_ptr),value :: version end function end interface !> \brief Construct the histogram for a Poisson distribution. !> !> Construct the histogram for the Poisson distribution with lambda \p lambda. !> !> \param lambda - lambda for the Poisson distribution !> \param discrete_distribution - pointer to the histogram in device memory !> !> \return !> - ROCRAND_STATUS_ALLOCATION_FAILED if memory could not be allocated \n !> - ROCRAND_STATUS_OUT_OF_RANGE if \p discrete_distribution pointer was null \n !> - ROCRAND_STATUS_OUT_OF_RANGE if lambda is non-positive \n !> - ROCRAND_STATUS_SUCCESS if the histogram was ructed successfully \n interface rocrand_create_poisson_distribution function rocrand_create_poisson_distribution_(lambda,discrete_distribution) bind(c, name="rocrand_create_poisson_distribution") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_create_poisson_distribution_ real(c_double),value :: lambda type(c_ptr) :: discrete_distribution end function end interface !> \brief Construct the histogram for a custom discrete distribution. !> !> Construct the histogram for the discrete distribution of \p size !> 32-bit unsigned integers from the range [\p offset, \p offset + \p size) !> using \p probabilities as probabilities. !> !> \param probabilities - probabilities of the the distribution in host memory !> \param size - size of \p probabilities !> \param offset - offset of values !> \param discrete_distribution - pointer to the histogram in device memory !> !> \return !> - ROCRAND_STATUS_ALLOCATION_FAILED if memory could not be allocated \n !> - ROCRAND_STATUS_OUT_OF_RANGE if \p discrete_distribution pointer was null \n !> - ROCRAND_STATUS_OUT_OF_RANGE if \p size was zero \n !> - ROCRAND_STATUS_SUCCESS if the histogram was ructed successfully \n interface rocrand_create_discrete_distribution function rocrand_create_discrete_distribution_(probabilities,mySize,offset,discrete_distribution) bind(c, name="rocrand_create_discrete_distribution") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_create_discrete_distribution_ type(c_ptr),value :: probabilities integer(c_int),value :: mySize integer(c_int),value :: offset type(c_ptr) :: discrete_distribution end function end interface !> \brief Destroy the histogram array for a discrete distribution. !> !> Destroy the histogram array for a discrete distribution created by !> rocrand_create_poisson_distribution. !> !> \param discrete_distribution - pointer to the histogram in device memory !> !> \return !> - ROCRAND_STATUS_OUT_OF_RANGE if \p discrete_distribution was null \n !> - ROCRAND_STATUS_SUCCESS if the histogram was destroyed successfully \n interface rocrand_destroy_discrete_distribution function rocrand_destroy_discrete_distribution_(discrete_distribution) bind(c, name="rocrand_destroy_discrete_distribution") use iso_c_binding use hipfort_rocrand_enums implicit none integer(kind(ROCRAND_STATUS_SUCCESS)) :: rocrand_destroy_discrete_distribution_ type(c_ptr),value :: discrete_distribution end function end interface #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_rocrandhipfort-7.2.4/lib/hipfort/hipfort_rocfft.F900000664000175000017500000007647315207260635021131 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocfft use hipfort_rocfft_enums implicit none !> @brief Library setup function, called once in program before start of !> library use interface rocfft_setup function rocfft_setup_() bind(c, name="rocfft_setup") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_setup_ end function end interface !> @brief Library cleanup function, called once in program after end of library !> use interface rocfft_cleanup function rocfft_cleanup_() bind(c, name="rocfft_cleanup") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_cleanup_ end function end interface !> @brief Create an FFT plan !> !> @details This API creates a plan, which the user can execute !> subsequently. This function takes many of the fundamental !> parameters needed to specify a transform. !> !> The dimensions parameter can take a value of 1, 2, or 3. The !> 'lengths' array specifies the size of data in each dimension. Note !> that lengths[0] is the size of the innermost dimension, lengths[1] !> is the next higher dimension and so on (column-major ordering). !> !> The 'number_of_transforms' parameter specifies how many !> transforms (of the same kind) needs to be computed. By specifying !> a value greater than 1, a batch of transforms can be computed !> with a single API call. !> !> Additionally, a handle to a plan description can be passed for !> more detailed transforms. For simple transforms, this parameter !> can be set to NULL. !> !> The plan must be destroyed with a call to rocfft_plan_destroy. !> !> @param[out] plan plan handle !> @param[in] placement placement of result !> @param[in] transform_type type of transform !> @param[in] precision precision !> @param[in] dimensions dimensions !> @param[in] lengths dimensions-sized array of transform lengths !> @param[in] number_of_transforms number of transforms !> @param[in] description description handle created by !> rocfft_plan_description_create; can be !> NULL for simple transforms interface rocfft_plan_create function rocfft_plan_create_(plan,placement,transform_type,myPrecision,dimensions,lengths,number_of_transforms,description) bind(c, name="rocfft_plan_create") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_create_ type(c_ptr) :: plan integer(kind(rocfft_placement_inplace)),value :: placement integer(kind(rocfft_transform_type_complex_forward)),value :: transform_type integer(kind(rocfft_precision_single)),value :: myPrecision integer(c_size_t),value :: dimensions type(c_ptr),value :: lengths integer(c_size_t),value :: number_of_transforms type(c_ptr),value :: description end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocfft_plan_create_rank_0,& rocfft_plan_create_rank_1 #endif end interface !> @brief Execute an FFT plan !> !> @details This API executes an FFT plan on buffers given by the user. !> !> If the transform is in-place, only the input buffer is needed and !> the output buffer parameter can be set to NULL. For not in-place !> transforms, output buffers have to be specified. !> !> Input and output buffer are arrays of pointers. Interleaved !> array formats are the default, and require just one pointer per !> input or output buffer. Planar array formats require two !> pointers per input or output buffer - real and imaginary !> pointers, in that order. !> !> Note that input buffers may still be overwritten during execution !> of a transform, even if the transform is not in-place. !> !> The final parameter in this function is a rocfft_execution_info !> handle. This optional parameter serves as a way for the user to control !> execution streams and work buffers. !> !> @param[in] plan plan handle !> @param[in,out] in_buffer array (of size 1 for interleaved data, of size 2 !> for planar data) of input buffers !> @param[in,out] out_buffer array (of size 1 for interleaved data, of size 2 !> for planar data) of output buffers, ignored for in-place transforms !> @param[in] info execution info handle created by !> rocfft_execution_info_create interface rocfft_execute function rocfft_execute_(plan,in_buffer,out_buffer,myInfo) bind(c, name="rocfft_execute") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execute_ type(c_ptr),value :: plan type(c_ptr) :: in_buffer type(c_ptr) :: out_buffer type(c_ptr),value :: myInfo end function end interface !> @brief Destroy an FFT plan !> @details This API frees the plan after it is no longer needed. !> @param[in] plan plan handle interface rocfft_plan_destroy function rocfft_plan_destroy_(plan) bind(c, name="rocfft_plan_destroy") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_destroy_ type(c_ptr),value :: plan end function end interface !> @brief Set scaling factor in single precision !> @details This is one of plan description functions to specify optional additional plan properties using the description handle. This API specifies scaling factor. !> @param[in] description description handle !> @param[in] scale scaling factor interface rocfft_plan_description_set_scale_float function rocfft_plan_description_set_scale_float_(description,scale) bind(c, name="rocfft_plan_description_set_scale_float") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_set_scale_float_ type(c_ptr),value :: description real(c_float),value :: scale end function end interface !> @brief Set scaling factor in double precision !> @details This is one of plan description functions to specify optional additional plan properties using the description handle. This API specifies scaling factor. !> @param[in] description description handle !> @param[in] scale scaling factor interface rocfft_plan_description_set_scale_double function rocfft_plan_description_set_scale_double_(description,scale) bind(c, name="rocfft_plan_description_set_scale_double") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_set_scale_double_ type(c_ptr),value :: description real(c_double),value :: scale end function end interface !> @brief Set advanced data layout parameters on a plan description !> !> @details This API specifies advanced layout of input/output !> buffers for a plan description. !> !> The following parameters are supported for inputs and outputs: !> !> * Array type (real, hermitian, or complex data, in either !> interleaved or planar format). !> * Real forward transforms require real input and hermitian output. !> * Real inverse transforms require hermitian input and real output. !> * Complex transforms require complex input and output. !> * Hermitian and complex data defaults to interleaved if a specific !> format is not specified. !> * Offset of first data element in the data buffer. Defaults to 0 if unspecified. !> * Stride between consecutive elements in each dimension. Defaults !> to contiguous data in all dimensions if unspecified. !> * Distance between consecutive batches. Defaults to contiguous !> batches if unspecified. !> !> Not all combinations of array types are supported and error codes !> will be returned for unsupported cases. !> !> @param[in, out] description description handle !> @param[in] in_array_type array type of input buffer !> @param[in] out_array_type array type of output buffer !> @param[in] in_offsets offsets, in element units, to start of data in input buffer !> @param[in] out_offsets offsets, in element units, to start of data in output buffer !> @param[in] in_strides_size size of in_strides array (must be equal to transform dimensions) !> @param[in] in_strides array of strides, in each dimension, of !> input buffer; if set to null ptr library chooses defaults !> @param[in] in_distance distance between start of each data instance in input buffer !> @param[in] out_strides_size size of out_strides array (must be !> equal to transform dimensions) !> @param[in] out_strides array of strides, in each dimension, of !> output buffer; if set to null ptr library chooses defaults !> @param[in] out_distance distance between start of each data instance in output buffer interface rocfft_plan_description_set_data_layout function rocfft_plan_description_set_data_layout_(description,in_array_type,out_array_type,in_offsets,out_offsets,in_strides_size,in_strides,in_distance,out_strides_size,out_strides,out_distance) bind(c, name="rocfft_plan_description_set_data_layout") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_set_data_layout_ type(c_ptr),value :: description integer(kind(rocfft_array_type_complex_interleaved)),value :: in_array_type integer(kind(rocfft_array_type_complex_interleaved)),value :: out_array_type type(c_ptr),value :: in_offsets type(c_ptr),value :: out_offsets integer(c_size_t),value :: in_strides_size type(c_ptr),value :: in_strides integer(c_size_t),value :: in_distance integer(c_size_t),value :: out_strides_size type(c_ptr),value :: out_strides integer(c_size_t),value :: out_distance end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocfft_plan_description_set_data_layout_rank_0,& rocfft_plan_description_set_data_layout_rank_1 #endif end interface !> @brief Get library version string !> !> @param[in, out] buf buffer that receives the version string !> @param[in] len length of buf, minimum 30 characters interface rocfft_get_version_string function rocfft_get_version_string_(buf,len) bind(c, name="rocfft_get_version_string") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_get_version_string_ type(c_ptr),value :: buf integer(c_size_t),value :: len end function end interface !> @brief Set devices in plan description !> @details This is one of plan description functions to specify optional additional plan properties using the description handle. This API specifies what compute devices to target. !> @param[in] description description handle !> @param[in] devices array of device identifiers !> @param[in] number_of_devices number of devices (size of devices array) interface rocfft_plan_description_set_devices function rocfft_plan_description_set_devices_(description,devices,number_of_devices) bind(c, name="rocfft_plan_description_set_devices") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_set_devices_ type(c_ptr),value :: description type(c_ptr),value :: devices integer(c_size_t),value :: number_of_devices end function end interface !> @brief Get work buffer size !> @details Get the work buffer size required for a plan. !> @param[in] plan plan handle !> @param[out] size_in_bytes size of needed work buffer in bytes interface rocfft_plan_get_work_buffer_size function rocfft_plan_get_work_buffer_size_(plan,size_in_bytes) bind(c, name="rocfft_plan_get_work_buffer_size") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_get_work_buffer_size_ type(c_ptr),value :: plan integer(c_size_t) :: size_in_bytes end function end interface !> @brief Print all plan information !> @details Prints plan details to stdout, to aid debugging !> @param[in] plan plan handle interface rocfft_plan_get_print function rocfft_plan_get_print_(plan) bind(c, name="rocfft_plan_get_print") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_get_print_ type(c_ptr),value :: plan end function end interface !> @brief Create plan description !> @details This API creates a plan description with which the user !> can set extra plan properties. The plan description must be freed !> with a call to rocfft_plan_description_destroy. !> @param[out] description plan description handle interface rocfft_plan_description_create function rocfft_plan_description_create_(description) bind(c, name="rocfft_plan_description_create") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_create_ type(c_ptr) :: description end function end interface !> @brief Destroy a plan description !> @details This API frees the plan description. A plan description !> can be freed any time after it is passed to rocfft_plan_create. !> @param[in] description plan description handle interface rocfft_plan_description_destroy function rocfft_plan_description_destroy_(description) bind(c, name="rocfft_plan_description_destroy") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_destroy_ type(c_ptr),value :: description end function end interface !> @brief Create execution info !> @details This API creates an execution info with which the user !> can control plan execution and work buffers. The execution info must be freed !> with a call to rocfft_execution_info_destroy. !> @param[out] info execution info handle interface rocfft_execution_info_create function rocfft_execution_info_create_(myInfo) bind(c, name="rocfft_execution_info_create") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_create_ type(c_ptr) :: myInfo end function end interface !> @brief Destroy an execution info !> @details This API frees the execution info. An execution info !> object can be freed any time after it is passed to !> rocfft_execute. !> @param[in] info execution info handle interface rocfft_execution_info_destroy function rocfft_execution_info_destroy_(myInfo) bind(c, name="rocfft_execution_info_destroy") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_destroy_ type(c_ptr),value :: myInfo end function end interface !> @brief Set work buffer in execution info !> !> @details This is one of the execution info functions to specify !> optional additional information to control execution. This API !> provides a work buffer for the transform. It must be called !> before rocfft_execute. !> !> When a non-zero value is obtained from !> rocfft_plan_get_work_buffer_size, that means the library needs a !> work buffer to compute the transform. In this case, the user !> should allocate the work buffer and pass it to the library via !> this API. !> !> If a work buffer is required for the transform but is not !> specified using this function, rocfft_execute will automatically !> allocate the required buffer and free it when execution is !> finished. !> !> Users should allocate their own work buffers if they need precise !> control over the lifetimes of those buffers, or if multiple plans !> need to share the same buffer. !> !> @param[in] info execution info handle !> @param[in] work_buffer work buffer !> @param[in] size_in_bytes size of work buffer in bytes interface rocfft_execution_info_set_work_buffer function rocfft_execution_info_set_work_buffer_(myInfo,work_buffer,size_in_bytes) bind(c, name="rocfft_execution_info_set_work_buffer") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_set_work_buffer_ type(c_ptr),value :: myInfo type(c_ptr),value :: work_buffer integer(c_size_t),value :: size_in_bytes end function end interface !> @brief Set execution mode in execution info !> @details This is one of the execution info functions to specify optional additional information to control execution. !> This API specifies execution mode. It has to be called before the call to rocfft_execute. !> Appropriate enumeration value can be specified to control blocking/non-blocking behavior of the rocfft_execute call. !> @param[in] info execution info handle !> @param[in] mode execution mode interface rocfft_execution_info_set_mode function rocfft_execution_info_set_mode_(myInfo,mode) bind(c, name="rocfft_execution_info_set_mode") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_set_mode_ type(c_ptr),value :: myInfo integer(kind(rocfft_exec_mode_nonblocking)),value :: mode end function end interface !> @brief Set stream in execution info !> @details Associates an existing compute stream to a plan. This !> must be called before the call to rocfft_execute. !> !> Once the association is made, execution of the FFT will run the !> computation through the specified stream. !> !> The stream must be of type hipStream_t. It is an error to pass !> the address of a hipStream_t object. !> !> @param[in] info execution info handle !> @param[in] stream underlying compute stream interface rocfft_execution_info_set_stream function rocfft_execution_info_set_stream_(myInfo,stream) bind(c, name="rocfft_execution_info_set_stream") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_set_stream_ type(c_ptr),value :: myInfo type(c_ptr),value :: stream end function end interface !> @brief Set a load callback for a plan execution (experimental) !> @details This function specifies a user-defined callback function !> that is run to load input from global memory at the start of the !> transform. Callbacks are an experimental feature in rocFFT. !> !> Callback function pointers/data are given as arrays, with one !> function/data pointer per device executing this plan. Currently, !> plans can only use one device. !> !> The provided function pointers replace any previously-specified !> load callback for this execution info handle. !> !> Load callbacks have the following signature: !> !> @code !> T load_cb(T* data, size_t offset, void* cbdata, void* sharedMem); !> @endcode !> !> 'T' is the type of a single element of the input buffer. It is !> the caller's responsibility to ensure that the function type is !> appropriate for the plan (for example, a single-precision !> real-to-complex transform would load single-precision real !> elements). !> !> A null value for 'cb' may be specified to clear any previously !> registered load callback. !> !> Currently, 'shared_mem_bytes' must be 0. Callbacks are not !> supported on transforms that use planar formats for either input !> or output. !> !> @param[in] info execution info handle !> @param[in] cb callback function pointers !> @param[in] cbdata callback function data, passed to the function pointer when it is called !> @param[in] shared_mem_bytes amount of shared memory to allocate for the callback function to use interface rocfft_execution_info_set_load_callback function rocfft_execution_info_set_load_callback_(myInfo,cb_functions,cb_data,shared_mem_bytes) bind(c, name="rocfft_execution_info_set_load_callback") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_set_load_callback_ type(c_ptr),value :: myInfo type(c_ptr) :: cb_functions type(c_ptr) :: cb_data integer(c_size_t),value :: shared_mem_bytes end function end interface !> @brief Set a store callback for a plan execution (experimental) !> @details This function specifies a user-defined callback function !> that is run to store output to global memory at the end of the !> transform. Callbacks are an experimental feature in rocFFT. !> !> Callback function pointers/data are given as arrays, with one !> function/data pointer per device executing this plan. Currently, !> plans can only use one device. !> !> The provided function pointers replace any previously-specified !> store callback for this execution info handle. !> !> Store callbacks have the following signature: !> !> @code !> void store_cb(T* data, size_t offset, T element, void* cbdata, void* sharedMem); !> @endcode !> !> 'T' is the type of a single element of the output buffer. It is !> the caller's responsibility to ensure that the function type is !> appropriate for the plan (for example, a single-precision !> real-to-complex transform would store single-precision complex !> elements). !> !> A null value for 'cb' may be specified to clear any previously !> registered store callback. !> !> Currently, 'shared_mem_bytes' must be 0. Callbacks are not !> supported on transforms that use planar formats for either input !> or output. !> !> @param[in] info execution info handle !> @param[in] cb callbacks function pointers !> @param[in] cbdata callback function data, passed to the function pointer when it is called !> @param[in] shared_mem_bytes amount of shared memory to allocate for the callback function to use interface rocfft_execution_info_set_store_callback function rocfft_execution_info_set_store_callback_(myInfo,cb_functions,cb_data,shared_mem_bytes) bind(c, name="rocfft_execution_info_set_store_callback") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_set_store_callback_ type(c_ptr),value :: myInfo type(c_ptr) :: cb_functions type(c_ptr) :: cb_data integer(c_size_t),value :: shared_mem_bytes end function end interface !> @brief Get events from execution info !> @details This is one of the execution info functions to retrieve information from execution. !> This API obtains event information. It has to be called after the call to rocfft_execute. !> This gets handles to events that the library created around one or more kernel launches during execution. !> @param[in] info execution info handle !> @param[out] events array of events !> @param[out] number_of_events number of events (size of events array) interface rocfft_execution_info_get_events function rocfft_execution_info_get_events_(myInfo,events,number_of_events) bind(c, name="rocfft_execution_info_get_events") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_execution_info_get_events_ type(c_ptr),value :: myInfo type(c_ptr) :: events integer(c_size_t) :: number_of_events end function end interface !> @brief Serialize compiled kernel cache !> !> @details Serialize rocFFT's cache of compiled kernels into a !> buffer. This buffer is allocated by rocFFT and must be freed !> with a call to rocfft_cache_buffer_free. The length of the !> buffer in bytes is written to 'buffer_len_bytes'. interface rocfft_cache_serialize function rocfft_cache_serialize_(buffer,buffer_len_bytes) bind(c, name="rocfft_cache_serialize") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_cache_serialize_ type(c_ptr) :: buffer type(c_ptr),value :: buffer_len_bytes end function end interface !> @brief Free cache serialization buffer !> !> @details Deallocate a buffer allocated by rocfft_cache_serialize. interface rocfft_cache_buffer_free function rocfft_cache_buffer_free_(buffer) bind(c, name="rocfft_cache_buffer_free") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_cache_buffer_free_ type(c_ptr),value :: buffer end function end interface !> @brief Deserialize a buffer into the compiled kernel cache. !> !> @details Kernels in the buffer that match already-cached kernels !> will replace those kernels that are in the cache. Already-cached !> kernels that do not match those in the buffer are unmodified by !> this operation. The cache is unmodified if either a null buffer !> pointer or a zero length is passed. interface rocfft_cache_deserialize function rocfft_cache_deserialize_(buffer,buffer_len_bytes) bind(c, name="rocfft_cache_deserialize") use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_cache_deserialize_ type(c_ptr),value :: buffer integer(c_size_t),value :: buffer_len_bytes end function end interface #ifdef USE_FPOINTER_INTERFACES contains function rocfft_plan_create_rank_0(plan,placement,transform_type,myPrecision,dimensions,lengths,number_of_transforms,description) use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_create_rank_0 type(c_ptr) :: plan integer(kind(rocfft_placement_inplace)) :: placement integer(kind(rocfft_transform_type_complex_forward)) :: transform_type integer(kind(rocfft_precision_single)) :: myPrecision integer(c_size_t) :: dimensions integer(c_size_t),target :: lengths integer(c_size_t) :: number_of_transforms type(c_ptr) :: description ! rocfft_plan_create_rank_0 = rocfft_plan_create_(plan,placement,transform_type,myPrecision,dimensions,c_loc(lengths),number_of_transforms,description) end function function rocfft_plan_create_rank_1(plan,placement,transform_type,myPrecision,dimensions,lengths,number_of_transforms,description) use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_create_rank_1 type(c_ptr) :: plan integer(kind(rocfft_placement_inplace)) :: placement integer(kind(rocfft_transform_type_complex_forward)) :: transform_type integer(kind(rocfft_precision_single)) :: myPrecision integer(c_size_t) :: dimensions integer(c_size_t),target,dimension(:) :: lengths integer(c_size_t) :: number_of_transforms type(c_ptr) :: description ! rocfft_plan_create_rank_1 = rocfft_plan_create_(plan,placement,transform_type,myPrecision,dimensions,c_loc(lengths),number_of_transforms,description) end function function rocfft_plan_description_set_data_layout_rank_0(description,in_array_type,out_array_type,in_offsets,out_offsets,in_strides_size,in_strides,in_distance,out_strides_size,out_strides,out_distance) use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_set_data_layout_rank_0 type(c_ptr) :: description integer(kind(rocfft_array_type_complex_interleaved)) :: in_array_type integer(kind(rocfft_array_type_complex_interleaved)) :: out_array_type integer(c_size_t),target :: in_offsets integer(c_size_t),target :: out_offsets integer(c_size_t) :: in_strides_size integer(c_size_t),target :: in_strides integer(c_size_t) :: in_distance integer(c_size_t) :: out_strides_size integer(c_size_t),target :: out_strides integer(c_size_t) :: out_distance ! rocfft_plan_description_set_data_layout_rank_0 = rocfft_plan_description_set_data_layout_(description,in_array_type,out_array_type,c_loc(in_offsets),c_loc(out_offsets),in_strides_size,c_loc(in_strides),in_distance,out_strides_size,c_loc(out_strides),out_distance) end function function rocfft_plan_description_set_data_layout_rank_1(description,in_array_type,out_array_type,in_offsets,out_offsets,in_strides_size,in_strides,in_distance,out_strides_size,out_strides,out_distance) use iso_c_binding use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_plan_description_set_data_layout_rank_1 type(c_ptr) :: description integer(kind(rocfft_array_type_complex_interleaved)) :: in_array_type integer(kind(rocfft_array_type_complex_interleaved)) :: out_array_type integer(c_size_t),target,dimension(:) :: in_offsets integer(c_size_t),target,dimension(:) :: out_offsets integer(c_size_t) :: in_strides_size integer(c_size_t),target,dimension(:) :: in_strides integer(c_size_t) :: in_distance integer(c_size_t) :: out_strides_size integer(c_size_t),target,dimension(:) :: out_strides integer(c_size_t) :: out_distance ! rocfft_plan_description_set_data_layout_rank_1 = rocfft_plan_description_set_data_layout_(description,in_array_type,out_array_type,c_loc(in_offsets),c_loc(out_offsets),in_strides_size,c_loc(in_strides),in_distance,out_strides_size,c_loc(out_strides),out_distance) end function #endif end module hipfort_rocfft hipfort-7.2.4/lib/hipfort/hipfort_rocfft_enums.F900000664000175000017500000000604115207260635022320 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocfft_enums implicit none enum, bind(c) enumerator :: rocfft_status_success enumerator :: rocfft_status_failure enumerator :: rocfft_status_invalid_arg_value enumerator :: rocfft_status_invalid_dimensions enumerator :: rocfft_status_invalid_array_type enumerator :: rocfft_status_invalid_strides enumerator :: rocfft_status_invalid_distance enumerator :: rocfft_status_invalid_offset enumerator :: rocfft_status_invalid_work_buffer end enum enum, bind(c) enumerator :: rocfft_transform_type_complex_forward enumerator :: rocfft_transform_type_complex_inverse enumerator :: rocfft_transform_type_real_forward enumerator :: rocfft_transform_type_real_inverse end enum enum, bind(c) enumerator :: rocfft_precision_single enumerator :: rocfft_precision_double end enum enum, bind(c) enumerator :: rocfft_placement_inplace enumerator :: rocfft_placement_notinplace end enum enum, bind(c) enumerator :: rocfft_array_type_complex_interleaved enumerator :: rocfft_array_type_complex_planar enumerator :: rocfft_array_type_real enumerator :: rocfft_array_type_hermitian_interleaved enumerator :: rocfft_array_type_hermitian_planar enumerator :: rocfft_array_type_unset end enum enum, bind(c) enumerator :: rocfft_exec_mode_nonblocking enumerator :: rocfft_exec_mode_nonblocking_with_flush enumerator :: rocfft_exec_mode_blocking end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_rocfft_enumshipfort-7.2.4/lib/hipfort/hipfort_hiprand.F900000664000175000017500000007307115207260635021262 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hiprand use hipfort_hiprand_enums implicit none !> \brief Creates a new random number generator. !> !> Creates a new random number generator of type \p rng_type, !> and returns it in \p generator. That generator will use !> GPU to create random numbers. !> !> Values for \p rng_type are: !> - HIPRAND_RNG_PSEUDO_DEFAULT !> - HIPRAND_RNG_PSEUDO_XORWOW !> - HIPRAND_RNG_PSEUDO_MRG32K3A !> - HIPRAND_RNG_PSEUDO_MTGP32 !> - HIPRAND_RNG_PSEUDO_MT19937 !> - HIPRAND_RNG_PSEUDO_PHILOX4_32_10 !> - HIPRAND_RNG_QUASI_DEFAULT !> - HIPRAND_RNG_QUASI_SOBOL32 !> - HIPRAND_RNG_QUASI_SCRAMBLED_SOBOL32 !> - HIPRAND_RNG_QUASI_SOBOL64 !> - HIPRAND_RNG_QUASI_SCRAMBLED_SOBOL64 !> !> \param generator - Pointer to generator !> \param rng_type - Type of random number generator to create !> !> \return !> - HIPRAND_STATUS_ALLOCATION_FAILED, if memory allocation failed \n !> - HIPRAND_STATUS_INITIALIZATION_FAILED if there was a problem setting up the GPU \n !> - HIPRAND_STATUS_VERSION_MISMATCH if the header file version does not match the !> dynamically linked library version \n !> - HIPRAND_STATUS_TYPE_ERROR if the value for \p rng_type is invalid \n !> - HIPRAND_STATUS_NOT_IMPLEMENTED if generator of type \p rng_type is not implemented yet \n !> - HIPRAND_STATUS_SUCCESS if generator was created successfully \n !> interface hiprandCreateGenerator #ifdef USE_CUDA_NAMES function hiprandCreateGenerator_(generator,rng_type) bind(c, name="curandCreateGenerator") #else function hiprandCreateGenerator_(generator,rng_type) bind(c, name="hiprandCreateGenerator") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandCreateGenerator_ type(c_ptr) :: generator integer(kind(HIPRAND_RNG_TEST)),value :: rng_type end function end interface !> \brief Creates a new random number generator on host. !> !> Creates a new host random number generator of type \p rng_type !> and returns it in \p generator. Created generator will use !> host CPU to generate random numbers. !> !> Values for \p rng_type are: !> - HIPRAND_RNG_PSEUDO_DEFAULT !> - HIPRAND_RNG_PSEUDO_XORWOW !> - HIPRAND_RNG_PSEUDO_MRG32K3A !> - HIPRAND_RNG_PSEUDO_MTGP32 !> - HIPRAND_RNG_PSEUDO_MT19937 !> - HIPRAND_RNG_PSEUDO_PHILOX4_32_10 !> - HIPRAND_RNG_QUASI_DEFAULT !> - HIPRAND_RNG_QUASI_SOBOL32 !> - HIPRAND_RNG_QUASI_SCRAMBLED_SOBOL32 !> - HIPRAND_RNG_QUASI_SOBOL64 !> - HIPRAND_RNG_QUASI_SCRAMBLED_SOBOL64 !> !> \param generator - Pointer to generator !> \param rng_type - Type of random number generator to create !> !> \return !> - HIPRAND_STATUS_ALLOCATION_FAILED, if memory allocation failed \n !> - HIPRAND_STATUS_VERSION_MISMATCH if the header file version does not match the !> dynamically linked library version \n !> - HIPRAND_STATUS_TYPE_ERROR if the value for \p rng_type is invalid \n !> - HIPRAND_STATUS_NOT_IMPLEMENTED if host generator of type \p rng_type is not implemented yet \n !> - HIPRAND_STATUS_SUCCESS if generator was created successfully \n interface hiprandCreateGeneratorHost #ifdef USE_CUDA_NAMES function hiprandCreateGeneratorHost_(generator,rng_type) bind(c, name="curandCreateGeneratorHost") #else function hiprandCreateGeneratorHost_(generator,rng_type) bind(c, name="hiprandCreateGeneratorHost") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandCreateGeneratorHost_ type(c_ptr) :: generator integer(kind(HIPRAND_RNG_TEST)),value :: rng_type end function end interface !> \brief Destroys random number generator. !> !> Destroys random number generator and frees related memory. !> !> \param generator - Generator to be destroyed !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_SUCCESS if generator was destroyed successfully \n interface hiprandDestroyGenerator #ifdef USE_CUDA_NAMES function hiprandDestroyGenerator_(generator) bind(c, name="curandDestroyGenerator") #else function hiprandDestroyGenerator_(generator) bind(c, name="hiprandDestroyGenerator") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandDestroyGenerator_ type(c_ptr),value :: generator end function end interface !> \brief Generates uniformly distributed 32-bit unsigned integers. !> !> Generates \p n uniformly distributed 32-bit unsigned integers and !> saves them to \p output_data. !> !> Generated numbers are between \p 0 and \p 2^32, including \p 0 and !> excluding \p 2^32. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 32-bit unsigned integers to generate !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerate #ifdef USE_CUDA_NAMES function hiprandGenerate_(generator,output_data,n) bind(c, name="curandGenerate") #else function hiprandGenerate_(generator,output_data,n) bind(c, name="hiprandGenerate") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerate_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed 8-bit unsigned integers. !> !> Generates \p n uniformly distributed 8-bit unsigned integers and !> saves them to \p output_data. !> !> Generated numbers are between \p 0 and \p 2^8, including \p 0 and !> excluding \p 2^8. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 8-bit unsigned integers to generate !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateChar #ifdef USE_CUDA_NAMES function hiprandGenerateChar_(generator,output_data,n) bind(c, name="curandGenerateChar") #else function hiprandGenerateChar_(generator,output_data,n) bind(c, name="hiprandGenerateChar") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateChar_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed 16-bit unsigned integers. !> !> Generates \p n uniformly distributed 16-bit unsigned integers and !> saves them to \p output_data. !> !> Generated numbers are between \p 0 and \p 2^16, including \p 0 and !> excluding \p 2^16. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 16-bit unsigned integers to generate !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateShort #ifdef USE_CUDA_NAMES function hiprandGenerateShort_(generator,output_data,n) bind(c, name="curandGenerateShort") #else function hiprandGenerateShort_(generator,output_data,n) bind(c, name="hiprandGenerateShort") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateShort_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed floats. !> !> Generates \p n uniformly distributed 32-bit floating-point values !> and saves them to \p output_data. !> !> Generated numbers are between \p 0.0f and \p 1.0f, excluding \p 0.0f and !> including \p 1.0f. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateUniform #ifdef USE_CUDA_NAMES function hiprandGenerateUniform_(generator,output_data,n) bind(c, name="curandGenerateUniform") #else function hiprandGenerateUniform_(generator,output_data,n) bind(c, name="hiprandGenerateUniform") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateUniform_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates uniformly distributed double-precision floating-point values. !> !> Generates \p n uniformly distributed 64-bit double-precision floating-point !> values and saves them to \p output_data. !> !> Generated numbers are between \p 0.0 and \p 1.0, excluding \p 0.0 and !> including \p 1.0. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> !> Note: When \p generator is of type: \p HIPRAND_RNG_PSEUDO_MRG32K3A, !> \p HIPRAND_RNG_PSEUDO_MTGP32, or \p HIPRAND_RNG_QUASI_SOBOL32, !> then the returned \p double values are generated from only 32 random bits !> each (one unsigned int value per one generated \p double). !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateUniformDouble #ifdef USE_CUDA_NAMES function hiprandGenerateUniformDouble_(generator,output_data,n) bind(c, name="curandGenerateUniformDouble") #else function hiprandGenerateUniformDouble_(generator,output_data,n) bind(c, name="hiprandGenerateUniformDouble") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateUniformDouble_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n end function end interface !> \brief Generates normally distributed floats. !> !> Generates \p n normally distributed 32-bit floating-point !> values and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> \param mean - Mean value of normal distribution !> \param stddev - Standard deviation value of normal distribution !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not even, \p output_data is not !> aligned to \p sizeof(float2) bytes, or \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateNormal #ifdef USE_CUDA_NAMES function hiprandGenerateNormal_(generator,output_data,n,mean,stddev) bind(c, name="curandGenerateNormal") #else function hiprandGenerateNormal_(generator,output_data,n,mean,stddev) bind(c, name="hiprandGenerateNormal") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateNormal_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_float),value :: mean real(c_float),value :: stddev end function end interface !> \brief Generates normally distributed doubles. !> !> Generates \p n normally distributed 64-bit double-precision floating-point !> numbers and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of doubles to generate !> \param mean - Mean value of normal distribution !> \param stddev - Standard deviation value of normal distribution !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not even, \p output_data is not !> aligned to \p sizeof(double2) bytes, or \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateNormalDouble #ifdef USE_CUDA_NAMES function hiprandGenerateNormalDouble_(generator,output_data,n,mean,stddev) bind(c, name="curandGenerateNormalDouble") #else function hiprandGenerateNormalDouble_(generator,output_data,n,mean,stddev) bind(c, name="hiprandGenerateNormalDouble") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateNormalDouble_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_double),value :: mean real(c_double),value :: stddev end function end interface !> \brief Generates log-normally distributed floats. !> !> Generates \p n log-normally distributed 32-bit floating-point values !> and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of floats to generate !> \param mean - Mean value of log normal distribution !> \param stddev - Standard deviation value of log normal distribution !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not even, \p output_data is not !> aligned to \p sizeof(float2) bytes, or \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateLogNormal #ifdef USE_CUDA_NAMES function hiprandGenerateLogNormal_(generator,output_data,n,mean,stddev) bind(c, name="curandGenerateLogNormal") #else function hiprandGenerateLogNormal_(generator,output_data,n,mean,stddev) bind(c, name="hiprandGenerateLogNormal") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateLogNormal_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_float),value :: mean real(c_float),value :: stddev end function end interface !> \brief Generates log-normally distributed doubles. !> !> Generates \p n log-normally distributed 64-bit double-precision floating-point !> values and saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of doubles to generate !> \param mean - Mean value of log normal distribution !> \param stddev - Standard deviation value of log normal distribution !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not even, \p output_data is not !> aligned to \p sizeof(double2) bytes, or \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGenerateLogNormalDouble #ifdef USE_CUDA_NAMES function hiprandGenerateLogNormalDouble_(generator,output_data,n,mean,stddev) bind(c, name="curandGenerateLogNormalDouble") #else function hiprandGenerateLogNormalDouble_(generator,output_data,n,mean,stddev) bind(c, name="hiprandGenerateLogNormalDouble") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateLogNormalDouble_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_double),value :: mean real(c_double),value :: stddev end function end interface !> \brief Generates Poisson-distributed 32-bit unsigned integers. !> !> Generates \p n Poisson-distributed 32-bit unsigned integers and !> saves them to \p output_data. !> !> \param generator - Generator to use !> \param output_data - Pointer to memory to store generated numbers !> \param n - Number of 32-bit unsigned integers to generate !> \param lambda - lambda for the Poisson distribution !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if generator failed to launch kernel \n !> - HIPRAND_STATUS_OUT_OF_RANGE if lambda is non-positive \n !> - HIPRAND_STATUS_LENGTH_NOT_MULTIPLE if \p n is not a multiple of the dimension !> of used quasi-random generator \n !> - HIPRAND_STATUS_SUCCESS if random numbers were successfully generated \n interface hiprandGeneratePoisson #ifdef USE_CUDA_NAMES function hiprandGeneratePoisson_(generator,output_data,n,lambda) bind(c, name="curandGeneratePoisson") #else function hiprandGeneratePoisson_(generator,output_data,n,lambda) bind(c, name="hiprandGeneratePoisson") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGeneratePoisson_ type(c_ptr),value :: generator type(c_ptr),value :: output_data integer(c_size_t),value :: n real(c_double),value :: lambda end function end interface !> \brief Initializes the generator's state on GPU or host. !> !> Initializes the generator's state on GPU or host. !> !> If hiprandGenerateSeeds() was not called for a generator, it will be !> automatically called by functions which generates random numbers like !> hiprandGenerate(), hiprandGenerateUniform(), hiprandGenerateNormal() etc. !> !> \param generator - Generator to initialize !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was never created \n !> - HIPRAND_STATUS_PREEXISTING_FAILURE if there was an existing error from !> a previous kernel launch \n !> - HIPRAND_STATUS_LAUNCH_FAILURE if the kernel launch failed for any reason \n !> - HIPRAND_STATUS_SUCCESS if the seeds were generated successfully \n interface hiprandGenerateSeeds #ifdef USE_CUDA_NAMES function hiprandGenerateSeeds_(generator) bind(c, name="curandGenerateSeeds") #else function hiprandGenerateSeeds_(generator) bind(c, name="hiprandGenerateSeeds") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGenerateSeeds_ type(c_ptr),value :: generator end function end interface !> \brief Sets the current stream for kernel launches. !> !> Sets the current stream for all kernel launches of the generator. !> All functions will use this stream. !> !> \param generator - Generator to modify !> \param stream - Stream to use or NULL for default stream !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_SUCCESS if stream was set successfully \n interface hiprandSetStream #ifdef USE_CUDA_NAMES function hiprandSetStream_(generator,stream) bind(c, name="curandSetStream") #else function hiprandSetStream_(generator,stream) bind(c, name="hiprandSetStream") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandSetStream_ type(c_ptr),value :: generator type(c_ptr),value :: stream end function end interface !> \brief Sets the seed of a pseudo-random number generator. !> !> Sets the seed of the pseudo-random number generator. !> !> - This operation resets the generator's internal state. !> - This operation does not change the generator's offset. !> !> \param generator - Pseudo-random number generator !> \param seed - New seed value !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_TYPE_ERROR if the generator is a quasi random number generator \n !> - HIPRAND_STATUS_SUCCESS if seed was set successfully \n interface hiprandSetPseudoRandomGeneratorSeed #ifdef USE_CUDA_NAMES function hiprandSetPseudoRandomGeneratorSeed_(generator,seed) bind(c, name="curandSetPseudoRandomGeneratorSeed") #else function hiprandSetPseudoRandomGeneratorSeed_(generator,seed) bind(c, name="hiprandSetPseudoRandomGeneratorSeed") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandSetPseudoRandomGeneratorSeed_ type(c_ptr),value :: generator integer(c_long_long),value :: seed end function end interface !> \brief Sets the offset of a random number generator. !> !> Sets the absolute offset of the random number generator. !> !> - This operation resets the generator's internal state. !> - This operation does not change the generator's seed. !> !> Absolute offset cannot be set if generator's type is !> HIPRAND_RNG_PSEUDO_MTGP32 or HIPRAND_RNG_PSEUDO_MT19937. !> !> \param generator - Random number generator !> \param offset - New absolute offset !> !> \return !> - HIPRAND_STATUS_NOT_INITIALIZED if the generator was not initialized \n !> - HIPRAND_STATUS_SUCCESS if offset was successfully set \n !> - HIPRAND_STATUS_TYPE_ERROR if generator's type is HIPRAND_RNG_PSEUDO_MTGP32 !> or HIPRAND_RNG_PSEUDO_MT19937 \n interface hiprandSetGeneratorOffset #ifdef USE_CUDA_NAMES function hiprandSetGeneratorOffset_(generator,offset) bind(c, name="curandSetGeneratorOffset") #else function hiprandSetGeneratorOffset_(generator,offset) bind(c, name="hiprandSetGeneratorOffset") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandSetGeneratorOffset_ type(c_ptr),value :: generator integer(c_long_long),value :: offset end function end interface !> \brief Set the number of dimensions of a quasi-random number generator. !> !> Set the number of dimensions of a quasi-random number generator. !> Supported values of \p dimensions are 1 to 20000. !> !> - This operation resets the generator's internal state. !> - This operation does not change the generator's offset. !> !> \param generator - Quasi-random number generator !> \param dimensions - Number of dimensions !> !> \return !> - HIPRAND_STATUS_NOT_CREATED if the generator wasn't created \n !> - HIPRAND_STATUS_TYPE_ERROR if the generator is not a quasi-random number generator \n !> - HIPRAND_STATUS_OUT_OF_RANGE if \p dimensions is out of range \n !> - HIPRAND_STATUS_SUCCESS if the number of dimensions was set successfully \n interface hiprandSetQuasiRandomGeneratorDimensions #ifdef USE_CUDA_NAMES function hiprandSetQuasiRandomGeneratorDimensions_(generator,dimensions) bind(c, name="curandSetQuasiRandomGeneratorDimensions") #else function hiprandSetQuasiRandomGeneratorDimensions_(generator,dimensions) bind(c, name="hiprandSetQuasiRandomGeneratorDimensions") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandSetQuasiRandomGeneratorDimensions_ type(c_ptr),value :: generator integer(c_int),value :: dimensions end function end interface !> \brief Returns the version number of the cuRAND or rocRAND library. !> !> Returns in \p version the version number of the underlying cuRAND or !> rocRAND library. !> !> \param version - Version of the library !> !> \return !> - HIPRAND_STATUS_OUT_OF_RANGE if \p version is NULL \n !> - HIPRAND_STATUS_SUCCESS if the version number was successfully returned \n interface hiprandGetVersion #ifdef USE_CUDA_NAMES function hiprandGetVersion_(version) bind(c, name="curandGetVersion") #else function hiprandGetVersion_(version) bind(c, name="hiprandGetVersion") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandGetVersion_ type(c_ptr),value :: version end function end interface !> \brief Construct the histogram for a Poisson distribution. !> !> Construct the histogram for the Poisson distribution with lambda \p lambda. !> !> \param lambda - lambda for the Poisson distribution !> \param discrete_distribution - pointer to the histogram in device memory !> !> \return !> - HIPRAND_STATUS_ALLOCATION_FAILED if memory could not be allocated \n !> - HIPRAND_STATUS_OUT_OF_RANGE if \p discrete_distribution pointer was null \n !> - HIPRAND_STATUS_OUT_OF_RANGE if lambda is non-positive \n !> - HIPRAND_STATUS_SUCCESS if the histogram was ructed successfully \n interface hiprandCreatePoissonDistribution #ifdef USE_CUDA_NAMES function hiprandCreatePoissonDistribution_(lambda,discrete_distribution) bind(c, name="curandCreatePoissonDistribution") #else function hiprandCreatePoissonDistribution_(lambda,discrete_distribution) bind(c, name="hiprandCreatePoissonDistribution") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandCreatePoissonDistribution_ real(c_double),value :: lambda type(c_ptr) :: discrete_distribution end function end interface !> \brief Destroy the histogram array for a discrete distribution. !> !> Destroy the histogram array for a discrete distribution created by !> hiprandCreatePoissonDistribution. !> !> \param discrete_distribution - pointer to the histogram in device memory !> !> \return !> - HIPRAND_STATUS_OUT_OF_RANGE if \p discrete_distribution was null \n !> - HIPRAND_STATUS_SUCCESS if the histogram was destroyed successfully \n interface hiprandDestroyDistribution #ifdef USE_CUDA_NAMES function hiprandDestroyDistribution_(discrete_distribution) bind(c, name="curandDestroyDistribution") #else function hiprandDestroyDistribution_(discrete_distribution) bind(c, name="hiprandDestroyDistribution") #endif use iso_c_binding use hipfort_hiprand_enums implicit none integer(kind(HIPRAND_STATUS_SUCCESS)) :: hiprandDestroyDistribution_ type(c_ptr),value :: discrete_distribution end function end interface #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_hiprandhipfort-7.2.4/lib/hipfort/hipfort_hipmalloc.F900000664000175000017500000363451515207260635021616 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipmalloc use, intrinsic :: iso_fortran_env , only : int32, int64, real32, real64 integer(int32) :: elem_int32 integer(int64) :: elem_int64 real(real32) :: elem_real32 real(real64) :: elem_real64 private :: byte_size interface byte_size module procedure byte_size_int32, & byte_size_int64, & byte_size_real32, & byte_size_real64 endinterface interface hipMalloc !> !> @brief Allocate memory on the default accelerator !> !> @param[out] ptr Pointer to the allocated memory !> @param[in] mySize Requested memory size !> !> If size is 0, no memory is allocated, ptr returns nullptr, and hipSuccess is returned. !> !> @return hipSuccess, hipErrorOutOfMemory, hipErrorInvalidValue (bad context, null ptr) !> !> @see hipMallocPitch, hipFree, hipMallocArray, hipFreeArray, hipMalloc3D, hipMalloc3DArray, !> hipHostFree, hipHostMalloc !> #ifdef USE_CUDA_NAMES function hipMalloc_(ptr,mySize) bind(c, name="cudaMalloc") #else function hipMalloc_(ptr,mySize) bind(c, name="hipMalloc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_ #else integer(kind(hipSuccess)) :: hipMalloc_ #endif type(c_ptr) :: ptr integer(c_size_t),value :: mySize end function #ifdef USE_FPOINTER_INTERFACES module procedure hipMalloc_l_0_source,& hipMalloc_l_1_source,& hipMalloc_l_1_c_int,& hipMalloc_l_1_c_size_t,& hipMalloc_l_2_source,& hipMalloc_l_2_c_int,& hipMalloc_l_2_c_size_t,& hipMalloc_l_3_source,& hipMalloc_l_3_c_int,& hipMalloc_l_3_c_size_t,& hipMalloc_l_4_source,& hipMalloc_l_4_c_int,& hipMalloc_l_4_c_size_t,& hipMalloc_l_5_source,& hipMalloc_l_5_c_int,& hipMalloc_l_5_c_size_t,& hipMalloc_l_6_source,& hipMalloc_l_6_c_int,& hipMalloc_l_6_c_size_t,& hipMalloc_l_7_source,& hipMalloc_l_7_c_int,& hipMalloc_l_7_c_size_t,& hipMalloc_i4_0_source,& hipMalloc_i4_1_source,& hipMalloc_i4_1_c_int,& hipMalloc_i4_1_c_size_t,& hipMalloc_i4_2_source,& hipMalloc_i4_2_c_int,& hipMalloc_i4_2_c_size_t,& hipMalloc_i4_3_source,& hipMalloc_i4_3_c_int,& hipMalloc_i4_3_c_size_t,& hipMalloc_i4_4_source,& hipMalloc_i4_4_c_int,& hipMalloc_i4_4_c_size_t,& hipMalloc_i4_5_source,& hipMalloc_i4_5_c_int,& hipMalloc_i4_5_c_size_t,& hipMalloc_i4_6_source,& hipMalloc_i4_6_c_int,& hipMalloc_i4_6_c_size_t,& hipMalloc_i4_7_source,& hipMalloc_i4_7_c_int,& hipMalloc_i4_7_c_size_t,& hipMalloc_i8_0_source,& hipMalloc_i8_1_source,& hipMalloc_i8_1_c_int,& hipMalloc_i8_1_c_size_t,& hipMalloc_i8_2_source,& hipMalloc_i8_2_c_int,& hipMalloc_i8_2_c_size_t,& hipMalloc_i8_3_source,& hipMalloc_i8_3_c_int,& hipMalloc_i8_3_c_size_t,& hipMalloc_i8_4_source,& hipMalloc_i8_4_c_int,& hipMalloc_i8_4_c_size_t,& hipMalloc_i8_5_source,& hipMalloc_i8_5_c_int,& hipMalloc_i8_5_c_size_t,& hipMalloc_i8_6_source,& hipMalloc_i8_6_c_int,& hipMalloc_i8_6_c_size_t,& hipMalloc_i8_7_source,& hipMalloc_i8_7_c_int,& hipMalloc_i8_7_c_size_t,& hipMalloc_r4_0_source,& hipMalloc_r4_1_source,& hipMalloc_r4_1_c_int,& hipMalloc_r4_1_c_size_t,& hipMalloc_r4_2_source,& hipMalloc_r4_2_c_int,& hipMalloc_r4_2_c_size_t,& hipMalloc_r4_3_source,& hipMalloc_r4_3_c_int,& hipMalloc_r4_3_c_size_t,& hipMalloc_r4_4_source,& hipMalloc_r4_4_c_int,& hipMalloc_r4_4_c_size_t,& hipMalloc_r4_5_source,& hipMalloc_r4_5_c_int,& hipMalloc_r4_5_c_size_t,& hipMalloc_r4_6_source,& hipMalloc_r4_6_c_int,& hipMalloc_r4_6_c_size_t,& hipMalloc_r4_7_source,& hipMalloc_r4_7_c_int,& hipMalloc_r4_7_c_size_t,& hipMalloc_r8_0_source,& hipMalloc_r8_1_source,& hipMalloc_r8_1_c_int,& hipMalloc_r8_1_c_size_t,& hipMalloc_r8_2_source,& hipMalloc_r8_2_c_int,& hipMalloc_r8_2_c_size_t,& hipMalloc_r8_3_source,& hipMalloc_r8_3_c_int,& hipMalloc_r8_3_c_size_t,& hipMalloc_r8_4_source,& hipMalloc_r8_4_c_int,& hipMalloc_r8_4_c_size_t,& hipMalloc_r8_5_source,& hipMalloc_r8_5_c_int,& hipMalloc_r8_5_c_size_t,& hipMalloc_r8_6_source,& hipMalloc_r8_6_c_int,& hipMalloc_r8_6_c_size_t,& hipMalloc_r8_7_source,& hipMalloc_r8_7_c_int,& hipMalloc_r8_7_c_size_t,& hipMalloc_c4_0_source,& hipMalloc_c4_1_source,& hipMalloc_c4_1_c_int,& hipMalloc_c4_1_c_size_t,& hipMalloc_c4_2_source,& hipMalloc_c4_2_c_int,& hipMalloc_c4_2_c_size_t,& hipMalloc_c4_3_source,& hipMalloc_c4_3_c_int,& hipMalloc_c4_3_c_size_t,& hipMalloc_c4_4_source,& hipMalloc_c4_4_c_int,& hipMalloc_c4_4_c_size_t,& hipMalloc_c4_5_source,& hipMalloc_c4_5_c_int,& hipMalloc_c4_5_c_size_t,& hipMalloc_c4_6_source,& hipMalloc_c4_6_c_int,& hipMalloc_c4_6_c_size_t,& hipMalloc_c4_7_source,& hipMalloc_c4_7_c_int,& hipMalloc_c4_7_c_size_t,& hipMalloc_c8_0_source,& hipMalloc_c8_1_source,& hipMalloc_c8_1_c_int,& hipMalloc_c8_1_c_size_t,& hipMalloc_c8_2_source,& hipMalloc_c8_2_c_int,& hipMalloc_c8_2_c_size_t,& hipMalloc_c8_3_source,& hipMalloc_c8_3_c_int,& hipMalloc_c8_3_c_size_t,& hipMalloc_c8_4_source,& hipMalloc_c8_4_c_int,& hipMalloc_c8_4_c_size_t,& hipMalloc_c8_5_source,& hipMalloc_c8_5_c_int,& hipMalloc_c8_5_c_size_t,& hipMalloc_c8_6_source,& hipMalloc_c8_6_c_int,& hipMalloc_c8_6_c_size_t,& hipMalloc_c8_7_source,& hipMalloc_c8_7_c_int,& hipMalloc_c8_7_c_size_t #endif end interface !> !> @brief Allocates memory that will be automatically managed by AMD HMM. !> !> @param [out] dev_ptr - pointer to allocated device memory !> @param [in] size - requested allocation size in bytes !> @param [in] flags - must be either hipMemAttachGlobal or hipMemAttachHost !> (defaults to hipMemAttachGlobal) !> !> @returns hipSuccess, hipErrorMemoryAllocation, hipErrorNotSupported, hipErrorInvalidValue !> interface hipMallocManaged #ifdef USE_CUDA_NAMES function hipMallocManaged_(dev_ptr,mySize,flags) bind(c, name="cudaMallocManaged") #else function hipMallocManaged_(dev_ptr,mySize,flags) bind(c, name="hipMallocManaged") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_ #else integer(kind(hipSuccess)) :: hipMallocManaged_ #endif type(c_ptr) :: dev_ptr integer(c_size_t),value :: mySize integer(kind=4),value :: flags end function #ifdef USE_FPOINTER_INTERFACES module procedure hipMallocManaged_l_0_source,& hipMallocManaged_l_1_source,& hipMallocManaged_l_1_c_int,& hipMallocManaged_l_1_c_size_t,& hipMallocManaged_l_2_source,& hipMallocManaged_l_2_c_int,& hipMallocManaged_l_2_c_size_t,& hipMallocManaged_l_3_source,& hipMallocManaged_l_3_c_int,& hipMallocManaged_l_3_c_size_t,& hipMallocManaged_l_4_source,& hipMallocManaged_l_4_c_int,& hipMallocManaged_l_4_c_size_t,& hipMallocManaged_l_5_source,& hipMallocManaged_l_5_c_int,& hipMallocManaged_l_5_c_size_t,& hipMallocManaged_l_6_source,& hipMallocManaged_l_6_c_int,& hipMallocManaged_l_6_c_size_t,& hipMallocManaged_l_7_source,& hipMallocManaged_l_7_c_int,& hipMallocManaged_l_7_c_size_t,& hipMallocManaged_i4_0_source,& hipMallocManaged_i4_1_source,& hipMallocManaged_i4_1_c_int,& hipMallocManaged_i4_1_c_size_t,& hipMallocManaged_i4_2_source,& hipMallocManaged_i4_2_c_int,& hipMallocManaged_i4_2_c_size_t,& hipMallocManaged_i4_3_source,& hipMallocManaged_i4_3_c_int,& hipMallocManaged_i4_3_c_size_t,& hipMallocManaged_i4_4_source,& hipMallocManaged_i4_4_c_int,& hipMallocManaged_i4_4_c_size_t,& hipMallocManaged_i4_5_source,& hipMallocManaged_i4_5_c_int,& hipMallocManaged_i4_5_c_size_t,& hipMallocManaged_i4_6_source,& hipMallocManaged_i4_6_c_int,& hipMallocManaged_i4_6_c_size_t,& hipMallocManaged_i4_7_source,& hipMallocManaged_i4_7_c_int,& hipMallocManaged_i4_7_c_size_t,& hipMallocManaged_i8_0_source,& hipMallocManaged_i8_1_source,& hipMallocManaged_i8_1_c_int,& hipMallocManaged_i8_1_c_size_t,& hipMallocManaged_i8_2_source,& hipMallocManaged_i8_2_c_int,& hipMallocManaged_i8_2_c_size_t,& hipMallocManaged_i8_3_source,& hipMallocManaged_i8_3_c_int,& hipMallocManaged_i8_3_c_size_t,& hipMallocManaged_i8_4_source,& hipMallocManaged_i8_4_c_int,& hipMallocManaged_i8_4_c_size_t,& hipMallocManaged_i8_5_source,& hipMallocManaged_i8_5_c_int,& hipMallocManaged_i8_5_c_size_t,& hipMallocManaged_i8_6_source,& hipMallocManaged_i8_6_c_int,& hipMallocManaged_i8_6_c_size_t,& hipMallocManaged_i8_7_source,& hipMallocManaged_i8_7_c_int,& hipMallocManaged_i8_7_c_size_t,& hipMallocManaged_r4_0_source,& hipMallocManaged_r4_1_source,& hipMallocManaged_r4_1_c_int,& hipMallocManaged_r4_1_c_size_t,& hipMallocManaged_r4_2_source,& hipMallocManaged_r4_2_c_int,& hipMallocManaged_r4_2_c_size_t,& hipMallocManaged_r4_3_source,& hipMallocManaged_r4_3_c_int,& hipMallocManaged_r4_3_c_size_t,& hipMallocManaged_r4_4_source,& hipMallocManaged_r4_4_c_int,& hipMallocManaged_r4_4_c_size_t,& hipMallocManaged_r4_5_source,& hipMallocManaged_r4_5_c_int,& hipMallocManaged_r4_5_c_size_t,& hipMallocManaged_r4_6_source,& hipMallocManaged_r4_6_c_int,& hipMallocManaged_r4_6_c_size_t,& hipMallocManaged_r4_7_source,& hipMallocManaged_r4_7_c_int,& hipMallocManaged_r4_7_c_size_t,& hipMallocManaged_r8_0_source,& hipMallocManaged_r8_1_source,& hipMallocManaged_r8_1_c_int,& hipMallocManaged_r8_1_c_size_t,& hipMallocManaged_r8_2_source,& hipMallocManaged_r8_2_c_int,& hipMallocManaged_r8_2_c_size_t,& hipMallocManaged_r8_3_source,& hipMallocManaged_r8_3_c_int,& hipMallocManaged_r8_3_c_size_t,& hipMallocManaged_r8_4_source,& hipMallocManaged_r8_4_c_int,& hipMallocManaged_r8_4_c_size_t,& hipMallocManaged_r8_5_source,& hipMallocManaged_r8_5_c_int,& hipMallocManaged_r8_5_c_size_t,& hipMallocManaged_r8_6_source,& hipMallocManaged_r8_6_c_int,& hipMallocManaged_r8_6_c_size_t,& hipMallocManaged_r8_7_source,& hipMallocManaged_r8_7_c_int,& hipMallocManaged_r8_7_c_size_t,& hipMallocManaged_c4_0_source,& hipMallocManaged_c4_1_source,& hipMallocManaged_c4_1_c_int,& hipMallocManaged_c4_1_c_size_t,& hipMallocManaged_c4_2_source,& hipMallocManaged_c4_2_c_int,& hipMallocManaged_c4_2_c_size_t,& hipMallocManaged_c4_3_source,& hipMallocManaged_c4_3_c_int,& hipMallocManaged_c4_3_c_size_t,& hipMallocManaged_c4_4_source,& hipMallocManaged_c4_4_c_int,& hipMallocManaged_c4_4_c_size_t,& hipMallocManaged_c4_5_source,& hipMallocManaged_c4_5_c_int,& hipMallocManaged_c4_5_c_size_t,& hipMallocManaged_c4_6_source,& hipMallocManaged_c4_6_c_int,& hipMallocManaged_c4_6_c_size_t,& hipMallocManaged_c4_7_source,& hipMallocManaged_c4_7_c_int,& hipMallocManaged_c4_7_c_size_t,& hipMallocManaged_c8_0_source,& hipMallocManaged_c8_1_source,& hipMallocManaged_c8_1_c_int,& hipMallocManaged_c8_1_c_size_t,& hipMallocManaged_c8_2_source,& hipMallocManaged_c8_2_c_int,& hipMallocManaged_c8_2_c_size_t,& hipMallocManaged_c8_3_source,& hipMallocManaged_c8_3_c_int,& hipMallocManaged_c8_3_c_size_t,& hipMallocManaged_c8_4_source,& hipMallocManaged_c8_4_c_int,& hipMallocManaged_c8_4_c_size_t,& hipMallocManaged_c8_5_source,& hipMallocManaged_c8_5_c_int,& hipMallocManaged_c8_5_c_size_t,& hipMallocManaged_c8_6_source,& hipMallocManaged_c8_6_c_int,& hipMallocManaged_c8_6_c_size_t,& hipMallocManaged_c8_7_source,& hipMallocManaged_c8_7_c_int,& hipMallocManaged_c8_7_c_size_t #endif end interface interface hipHostMalloc !> !> @brief Allocate device accessible page locked host memory !> !> @param[out] ptr Pointer to the allocated host pinned memory !> @param[in] mySize Requested memory size !> @param[in] flags Type of host memory allocation !> !> If size is 0, no memory is allocated, ptr returns nullptr, and hipSuccess is returned. !> !> @return hipSuccess, hipErrorOutOfMemory !> !> @see hipSetDeviceFlags, hipHostFree !> #ifdef USE_CUDA_NAMES function hipHostMalloc_(ptr,mySize,flags) bind(c, name="cudaHostMalloc") #else function hipHostMalloc_(ptr,mySize,flags) bind(c, name="hipHostMalloc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_ #else integer(kind(hipSuccess)) :: hipHostMalloc_ #endif type(c_ptr) :: ptr integer(c_size_t),value :: mySize integer(kind=4),value :: flags end function #ifdef USE_FPOINTER_INTERFACES module procedure hipHostMalloc_l_0_source,& hipHostMalloc_l_1_source,& hipHostMalloc_l_1_c_int,& hipHostMalloc_l_1_c_size_t,& hipHostMalloc_l_2_source,& hipHostMalloc_l_2_c_int,& hipHostMalloc_l_2_c_size_t,& hipHostMalloc_l_3_source,& hipHostMalloc_l_3_c_int,& hipHostMalloc_l_3_c_size_t,& hipHostMalloc_l_4_source,& hipHostMalloc_l_4_c_int,& hipHostMalloc_l_4_c_size_t,& hipHostMalloc_l_5_source,& hipHostMalloc_l_5_c_int,& hipHostMalloc_l_5_c_size_t,& hipHostMalloc_l_6_source,& hipHostMalloc_l_6_c_int,& hipHostMalloc_l_6_c_size_t,& hipHostMalloc_l_7_source,& hipHostMalloc_l_7_c_int,& hipHostMalloc_l_7_c_size_t,& hipHostMalloc_i4_0_source,& hipHostMalloc_i4_1_source,& hipHostMalloc_i4_1_c_int,& hipHostMalloc_i4_1_c_size_t,& hipHostMalloc_i4_2_source,& hipHostMalloc_i4_2_c_int,& hipHostMalloc_i4_2_c_size_t,& hipHostMalloc_i4_3_source,& hipHostMalloc_i4_3_c_int,& hipHostMalloc_i4_3_c_size_t,& hipHostMalloc_i4_4_source,& hipHostMalloc_i4_4_c_int,& hipHostMalloc_i4_4_c_size_t,& hipHostMalloc_i4_5_source,& hipHostMalloc_i4_5_c_int,& hipHostMalloc_i4_5_c_size_t,& hipHostMalloc_i4_6_source,& hipHostMalloc_i4_6_c_int,& hipHostMalloc_i4_6_c_size_t,& hipHostMalloc_i4_7_source,& hipHostMalloc_i4_7_c_int,& hipHostMalloc_i4_7_c_size_t,& hipHostMalloc_i8_0_source,& hipHostMalloc_i8_1_source,& hipHostMalloc_i8_1_c_int,& hipHostMalloc_i8_1_c_size_t,& hipHostMalloc_i8_2_source,& hipHostMalloc_i8_2_c_int,& hipHostMalloc_i8_2_c_size_t,& hipHostMalloc_i8_3_source,& hipHostMalloc_i8_3_c_int,& hipHostMalloc_i8_3_c_size_t,& hipHostMalloc_i8_4_source,& hipHostMalloc_i8_4_c_int,& hipHostMalloc_i8_4_c_size_t,& hipHostMalloc_i8_5_source,& hipHostMalloc_i8_5_c_int,& hipHostMalloc_i8_5_c_size_t,& hipHostMalloc_i8_6_source,& hipHostMalloc_i8_6_c_int,& hipHostMalloc_i8_6_c_size_t,& hipHostMalloc_i8_7_source,& hipHostMalloc_i8_7_c_int,& hipHostMalloc_i8_7_c_size_t,& hipHostMalloc_r4_0_source,& hipHostMalloc_r4_1_source,& hipHostMalloc_r4_1_c_int,& hipHostMalloc_r4_1_c_size_t,& hipHostMalloc_r4_2_source,& hipHostMalloc_r4_2_c_int,& hipHostMalloc_r4_2_c_size_t,& hipHostMalloc_r4_3_source,& hipHostMalloc_r4_3_c_int,& hipHostMalloc_r4_3_c_size_t,& hipHostMalloc_r4_4_source,& hipHostMalloc_r4_4_c_int,& hipHostMalloc_r4_4_c_size_t,& hipHostMalloc_r4_5_source,& hipHostMalloc_r4_5_c_int,& hipHostMalloc_r4_5_c_size_t,& hipHostMalloc_r4_6_source,& hipHostMalloc_r4_6_c_int,& hipHostMalloc_r4_6_c_size_t,& hipHostMalloc_r4_7_source,& hipHostMalloc_r4_7_c_int,& hipHostMalloc_r4_7_c_size_t,& hipHostMalloc_r8_0_source,& hipHostMalloc_r8_1_source,& hipHostMalloc_r8_1_c_int,& hipHostMalloc_r8_1_c_size_t,& hipHostMalloc_r8_2_source,& hipHostMalloc_r8_2_c_int,& hipHostMalloc_r8_2_c_size_t,& hipHostMalloc_r8_3_source,& hipHostMalloc_r8_3_c_int,& hipHostMalloc_r8_3_c_size_t,& hipHostMalloc_r8_4_source,& hipHostMalloc_r8_4_c_int,& hipHostMalloc_r8_4_c_size_t,& hipHostMalloc_r8_5_source,& hipHostMalloc_r8_5_c_int,& hipHostMalloc_r8_5_c_size_t,& hipHostMalloc_r8_6_source,& hipHostMalloc_r8_6_c_int,& hipHostMalloc_r8_6_c_size_t,& hipHostMalloc_r8_7_source,& hipHostMalloc_r8_7_c_int,& hipHostMalloc_r8_7_c_size_t,& hipHostMalloc_c4_0_source,& hipHostMalloc_c4_1_source,& hipHostMalloc_c4_1_c_int,& hipHostMalloc_c4_1_c_size_t,& hipHostMalloc_c4_2_source,& hipHostMalloc_c4_2_c_int,& hipHostMalloc_c4_2_c_size_t,& hipHostMalloc_c4_3_source,& hipHostMalloc_c4_3_c_int,& hipHostMalloc_c4_3_c_size_t,& hipHostMalloc_c4_4_source,& hipHostMalloc_c4_4_c_int,& hipHostMalloc_c4_4_c_size_t,& hipHostMalloc_c4_5_source,& hipHostMalloc_c4_5_c_int,& hipHostMalloc_c4_5_c_size_t,& hipHostMalloc_c4_6_source,& hipHostMalloc_c4_6_c_int,& hipHostMalloc_c4_6_c_size_t,& hipHostMalloc_c4_7_source,& hipHostMalloc_c4_7_c_int,& hipHostMalloc_c4_7_c_size_t,& hipHostMalloc_c8_0_source,& hipHostMalloc_c8_1_source,& hipHostMalloc_c8_1_c_int,& hipHostMalloc_c8_1_c_size_t,& hipHostMalloc_c8_2_source,& hipHostMalloc_c8_2_c_int,& hipHostMalloc_c8_2_c_size_t,& hipHostMalloc_c8_3_source,& hipHostMalloc_c8_3_c_int,& hipHostMalloc_c8_3_c_size_t,& hipHostMalloc_c8_4_source,& hipHostMalloc_c8_4_c_int,& hipHostMalloc_c8_4_c_size_t,& hipHostMalloc_c8_5_source,& hipHostMalloc_c8_5_c_int,& hipHostMalloc_c8_5_c_size_t,& hipHostMalloc_c8_6_source,& hipHostMalloc_c8_6_c_int,& hipHostMalloc_c8_6_c_size_t,& hipHostMalloc_c8_7_source,& hipHostMalloc_c8_7_c_int,& hipHostMalloc_c8_7_c_size_t #endif end interface interface hipFree !> !> @brief Free memory allocated by the amd hip memory allocation API. !> This API performs an implicit hipDeviceSynchronize() call. !> If pointer is NULL, the hip runtime is initialized and hipSuccess is returned. !> !> @param[in] ptr Pointer to memory to be freed !> @return hipSuccess !> @return hipErrorInvalidDevicePointer (if pointer is invalid, including host pointers allocated !> with hipHostMalloc) !> !> @see hipMalloc, hipMallocPitch, hipMallocArray, hipFreeArray, hipHostFree, hipMalloc3D, !> hipMalloc3DArray, hipHostMalloc !> #ifdef USE_CUDA_NAMES function hipFree_(ptr) bind(c, name="cudaFree") #else function hipFree_(ptr) bind(c, name="hipFree") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_ #else integer(kind(hipSuccess)) :: hipFree_ #endif type(c_ptr),value :: ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure hipFree_l_0,& hipFree_l_1,& hipFree_l_2,& hipFree_l_3,& hipFree_l_4,& hipFree_l_5,& hipFree_l_6,& hipFree_l_7,& hipFree_i4_0,& hipFree_i4_1,& hipFree_i4_2,& hipFree_i4_3,& hipFree_i4_4,& hipFree_i4_5,& hipFree_i4_6,& hipFree_i4_7,& hipFree_i8_0,& hipFree_i8_1,& hipFree_i8_2,& hipFree_i8_3,& hipFree_i8_4,& hipFree_i8_5,& hipFree_i8_6,& hipFree_i8_7,& hipFree_r4_0,& hipFree_r4_1,& hipFree_r4_2,& hipFree_r4_3,& hipFree_r4_4,& hipFree_r4_5,& hipFree_r4_6,& hipFree_r4_7,& hipFree_r8_0,& hipFree_r8_1,& hipFree_r8_2,& hipFree_r8_3,& hipFree_r8_4,& hipFree_r8_5,& hipFree_r8_6,& hipFree_r8_7,& hipFree_c4_0,& hipFree_c4_1,& hipFree_c4_2,& hipFree_c4_3,& hipFree_c4_4,& hipFree_c4_5,& hipFree_c4_6,& hipFree_c4_7,& hipFree_c8_0,& hipFree_c8_1,& hipFree_c8_2,& hipFree_c8_3,& hipFree_c8_4,& hipFree_c8_5,& hipFree_c8_6,& hipFree_c8_7 #endif end interface interface hipHostFree !> !> @brief Free memory allocated by the amd hip host memory allocation API !> This API performs an implicit hipDeviceSynchronize() call. !> If pointer is NULL, the hip runtime is initialized and hipSuccess is returned. !> !> @param[in] ptr Pointer to memory to be freed !> @return hipSuccess, !> hipErrorInvalidValue (if pointer is invalid, including device pointers allocated with !> hipMalloc) !> !> @see hipMalloc, hipMallocPitch, hipFree, hipMallocArray, hipFreeArray, hipMalloc3D, !> hipMalloc3DArray, hipHostMalloc !> #ifdef USE_CUDA_NAMES function hipHostFree_(ptr) bind(c, name="cudaHostFree") #else function hipHostFree_(ptr) bind(c, name="hipHostFree") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_ #else integer(kind(hipSuccess)) :: hipHostFree_ #endif type(c_ptr),value :: ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure hipHostFree_l_0,& hipHostFree_l_1,& hipHostFree_l_2,& hipHostFree_l_3,& hipHostFree_l_4,& hipHostFree_l_5,& hipHostFree_l_6,& hipHostFree_l_7,& hipHostFree_i4_0,& hipHostFree_i4_1,& hipHostFree_i4_2,& hipHostFree_i4_3,& hipHostFree_i4_4,& hipHostFree_i4_5,& hipHostFree_i4_6,& hipHostFree_i4_7,& hipHostFree_i8_0,& hipHostFree_i8_1,& hipHostFree_i8_2,& hipHostFree_i8_3,& hipHostFree_i8_4,& hipHostFree_i8_5,& hipHostFree_i8_6,& hipHostFree_i8_7,& hipHostFree_r4_0,& hipHostFree_r4_1,& hipHostFree_r4_2,& hipHostFree_r4_3,& hipHostFree_r4_4,& hipHostFree_r4_5,& hipHostFree_r4_6,& hipHostFree_r4_7,& hipHostFree_r8_0,& hipHostFree_r8_1,& hipHostFree_r8_2,& hipHostFree_r8_3,& hipHostFree_r8_4,& hipHostFree_r8_5,& hipHostFree_r8_6,& hipHostFree_r8_7,& hipHostFree_c4_0,& hipHostFree_c4_1,& hipHostFree_c4_2,& hipHostFree_c4_3,& hipHostFree_c4_4,& hipHostFree_c4_5,& hipHostFree_c4_6,& hipHostFree_c4_7,& hipHostFree_c8_0,& hipHostFree_c8_1,& hipHostFree_c8_2,& hipHostFree_c8_3,& hipHostFree_c8_4,& hipHostFree_c8_5,& hipHostFree_c8_6,& hipHostFree_c8_7 #endif end interface #ifdef USE_FPOINTER_INTERFACES contains elemental function byte_size_int32(x) result(bytes) integer(int32), intent(in) :: x integer(int64) :: bytes bytes = storage_size(x) / 8_int64 endfunction byte_size_int32 elemental function byte_size_int64(x) result(bytes) integer(int64), intent(in) :: x integer(int64) :: bytes bytes = storage_size(x) / 8_int64 endfunction byte_size_int64 elemental function byte_size_real32(x) result(bytes) real(real32), intent(in) :: x integer(int64) :: bytes bytes = storage_size(x) / 8_int64 endfunction byte_size_real32 elemental function byte_size_real64(x) result(bytes) real(real64), intent(in) :: x integer(int64) :: bytes bytes = storage_size(x) / 8_int64 endfunction byte_size_real64 ! scalars function hipMalloc_l_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,intent(inout) :: ptr logical(c_bool),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_0_source #else integer(kind(hipSuccess)) :: hipMalloc_l_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_l_0_source = hipMalloc_(cptr,1_int64) hipMalloc_l_0_source = hipMemcpy(cptr,c_loc(dsource),1_int64,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_l_0_source = hipMalloc_(cptr,1_int64) hipMalloc_l_0_source = hipMemcpy(cptr,c_loc(source),1_int64,hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_l_0_source = hipMalloc_(cptr,1_int64) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_l_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) logical(c_bool),target,dimension(:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_1_source #else integer(kind(hipSuccess)) :: hipMalloc_l_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_1_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_l_1_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_l_1_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_l_1_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_1_c_int #endif ! hipMalloc_l_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_l_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_1_c_size_t #endif ! hipMalloc_l_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_l_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) logical(c_bool),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_2_source #else integer(kind(hipSuccess)) :: hipMalloc_l_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_2_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_l_2_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_l_2_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_l_2_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_2_c_int #endif ! hipMalloc_l_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_l_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_2_c_size_t #endif ! hipMalloc_l_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_l_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) logical(c_bool),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_3_source #else integer(kind(hipSuccess)) :: hipMalloc_l_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_3_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_l_3_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_l_3_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_l_3_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_3_c_int #endif ! hipMalloc_l_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_l_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_3_c_size_t #endif ! hipMalloc_l_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_l_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) logical(c_bool),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_4_source #else integer(kind(hipSuccess)) :: hipMalloc_l_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_4_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_l_4_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_l_4_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_l_4_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_4_c_int #endif ! hipMalloc_l_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_l_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_4_c_size_t #endif ! hipMalloc_l_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_l_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) logical(c_bool),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_5_source #else integer(kind(hipSuccess)) :: hipMalloc_l_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_5_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_l_5_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_l_5_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_l_5_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_5_c_int #endif ! hipMalloc_l_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_l_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_5_c_size_t #endif ! hipMalloc_l_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_l_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_6_source #else integer(kind(hipSuccess)) :: hipMalloc_l_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_6_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_l_6_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_l_6_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_l_6_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_6_c_int #endif ! hipMalloc_l_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_l_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_6_c_size_t #endif ! hipMalloc_l_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_l_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_7_source #else integer(kind(hipSuccess)) :: hipMalloc_l_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_l_7_source = hipMalloc_(cptr,size(dsource,kind=int64)) hipMalloc_l_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_l_7_source = hipMalloc_(cptr,size(source,kind=int64)) hipMalloc_l_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_l_7_source = hipMalloc_(cptr,size(mold,kind=int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_l_7_source = hipMalloc_(cptr,PRODUCT(dims8)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_l_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_l_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_l_7_c_int #endif ! hipMalloc_l_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_l_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_l_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_l_7_c_size_t #endif ! hipMalloc_l_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMalloc_i4_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,intent(inout) :: ptr integer(c_int),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_0_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_i4_0_source = hipMalloc_(cptr,byte_size(elem_int32)) hipMalloc_i4_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_i4_0_source = hipMalloc_(cptr,byte_size(elem_int32)) hipMalloc_i4_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_i4_0_source = hipMalloc_(cptr,byte_size(elem_int32)) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_i4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) integer(c_int),target,dimension(:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_1_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_1_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_i4_1_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_i4_1_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_i4_1_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_1_c_int #endif ! hipMalloc_i4_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_i4_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_1_c_size_t #endif ! hipMalloc_i4_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_i4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) integer(c_int),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_2_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_2_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_i4_2_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_i4_2_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_i4_2_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_2_c_int #endif ! hipMalloc_i4_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_i4_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_2_c_size_t #endif ! hipMalloc_i4_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_i4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) integer(c_int),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_3_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_3_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_i4_3_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_i4_3_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_i4_3_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_3_c_int #endif ! hipMalloc_i4_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_i4_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_3_c_size_t #endif ! hipMalloc_i4_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_i4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) integer(c_int),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_4_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_4_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_i4_4_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_i4_4_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_i4_4_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_4_c_int #endif ! hipMalloc_i4_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_i4_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_4_c_size_t #endif ! hipMalloc_i4_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_i4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) integer(c_int),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_5_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_5_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_i4_5_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_i4_5_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_i4_5_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_5_c_int #endif ! hipMalloc_i4_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_i4_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_5_c_size_t #endif ! hipMalloc_i4_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_i4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) integer(c_int),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_6_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_6_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_i4_6_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_i4_6_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_i4_6_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_6_c_int #endif ! hipMalloc_i4_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_i4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_6_c_size_t #endif ! hipMalloc_i4_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_i4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_7_source #else integer(kind(hipSuccess)) :: hipMalloc_i4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i4_7_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_i4_7_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32)) hipMalloc_i4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_i4_7_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_i4_7_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i4_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_i4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i4_7_c_int #endif ! hipMalloc_i4_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_i4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i4_7_c_size_t #endif ! hipMalloc_i4_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMalloc_i8_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,intent(inout) :: ptr integer(c_long),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_0_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_i8_0_source = hipMalloc_(cptr,8_8) hipMalloc_i8_0_source = hipMemcpy(cptr,c_loc(dsource),8_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_i8_0_source = hipMalloc_(cptr,8_8) hipMalloc_i8_0_source = hipMemcpy(cptr,c_loc(source),8_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_i8_0_source = hipMalloc_(cptr,8_8) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_i8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) integer(c_long),target,dimension(:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_1_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_1_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_i8_1_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_i8_1_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_i8_1_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_1_c_int #endif ! hipMalloc_i8_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_i8_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_1_c_size_t #endif ! hipMalloc_i8_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_i8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) integer(c_long),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_2_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_2_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_i8_2_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_i8_2_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_i8_2_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_2_c_int #endif ! hipMalloc_i8_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_i8_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_2_c_size_t #endif ! hipMalloc_i8_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_i8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) integer(c_long),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_3_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_3_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_i8_3_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_i8_3_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_i8_3_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_3_c_int #endif ! hipMalloc_i8_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_i8_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_3_c_size_t #endif ! hipMalloc_i8_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_i8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) integer(c_long),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_4_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_4_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_i8_4_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_i8_4_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_i8_4_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_4_c_int #endif ! hipMalloc_i8_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_i8_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_4_c_size_t #endif ! hipMalloc_i8_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_i8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) integer(c_long),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_5_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_5_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_i8_5_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_i8_5_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_i8_5_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_5_c_int #endif ! hipMalloc_i8_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_i8_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_5_c_size_t #endif ! hipMalloc_i8_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_i8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) integer(c_long),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_6_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_6_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_i8_6_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_i8_6_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_i8_6_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_6_c_int #endif ! hipMalloc_i8_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_i8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_6_c_size_t #endif ! hipMalloc_i8_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_i8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_7_source #else integer(kind(hipSuccess)) :: hipMalloc_i8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_i8_7_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_i8_7_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64)) hipMalloc_i8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_i8_7_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_i8_7_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_i8_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_i8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_i8_7_c_int #endif ! hipMalloc_i8_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_i8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_i8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_i8_7_c_size_t #endif ! hipMalloc_i8_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMalloc_r4_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,intent(inout) :: ptr real(c_float),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_0_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_r4_0_source = hipMalloc_(cptr,4_8) hipMalloc_r4_0_source = hipMemcpy(cptr,c_loc(dsource),4_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_r4_0_source = hipMalloc_(cptr,4_8) hipMalloc_r4_0_source = hipMemcpy(cptr,c_loc(source),4_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_r4_0_source = hipMalloc_(cptr,4_8) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_r4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) real(c_float),target,dimension(:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_1_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_1_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_r4_1_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_r4_1_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_r4_1_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_1_c_int #endif ! hipMalloc_r4_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_r4_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_1_c_size_t #endif ! hipMalloc_r4_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_r4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) real(c_float),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_2_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_2_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_r4_2_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_r4_2_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_r4_2_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_2_c_int #endif ! hipMalloc_r4_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_r4_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_2_c_size_t #endif ! hipMalloc_r4_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_r4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) real(c_float),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_3_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_3_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_r4_3_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_r4_3_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_r4_3_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_3_c_int #endif ! hipMalloc_r4_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_r4_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_3_c_size_t #endif ! hipMalloc_r4_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_r4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) real(c_float),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_4_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_4_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_r4_4_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_r4_4_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_r4_4_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_4_c_int #endif ! hipMalloc_r4_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_r4_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_4_c_size_t #endif ! hipMalloc_r4_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_r4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) real(c_float),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_5_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_5_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_r4_5_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_r4_5_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_r4_5_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_5_c_int #endif ! hipMalloc_r4_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_r4_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_5_c_size_t #endif ! hipMalloc_r4_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_r4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) real(c_float),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_6_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_6_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_r4_6_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_r4_6_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_r4_6_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_6_c_int #endif ! hipMalloc_r4_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_r4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_6_c_size_t #endif ! hipMalloc_r4_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_r4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_7_source #else integer(kind(hipSuccess)) :: hipMalloc_r4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r4_7_source = hipMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_r4_7_source = hipMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32)) hipMalloc_r4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_r4_7_source = hipMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_r4_7_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r4_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_r4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r4_7_c_int #endif ! hipMalloc_r4_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_r4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r4_7_c_size_t #endif ! hipMalloc_r4_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMalloc_r8_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,intent(inout) :: ptr real(c_double),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_0_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_r8_0_source = hipMalloc_(cptr,byte_size(elem_real64)) hipMalloc_r8_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_r8_0_source = hipMalloc_(cptr,byte_size(elem_real64)) hipMalloc_r8_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_r8_0_source = hipMalloc_(cptr,byte_size(elem_real64)) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_r8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) real(c_double),target,dimension(:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_1_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_1_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_r8_1_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_1_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_r8_1_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_r8_1_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_1_c_int #endif ! hipMalloc_r8_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_r8_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_1_c_size_t #endif ! hipMalloc_r8_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_r8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) real(c_double),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_2_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_2_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_r8_2_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_2_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_r8_2_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_r8_2_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_2_c_int #endif ! hipMalloc_r8_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_r8_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_2_c_size_t #endif ! hipMalloc_r8_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_r8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) real(c_double),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_3_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_3_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_r8_3_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_3_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_r8_3_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_r8_3_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_3_c_int #endif ! hipMalloc_r8_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_r8_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_3_c_size_t #endif ! hipMalloc_r8_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_r8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) real(c_double),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_4_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_4_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_r8_4_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_4_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_r8_4_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_r8_4_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_4_c_int #endif ! hipMalloc_r8_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_r8_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_4_c_size_t #endif ! hipMalloc_r8_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_r8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) real(c_double),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_5_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_5_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_r8_5_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_5_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_r8_5_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_r8_5_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_5_c_int #endif ! hipMalloc_r8_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_r8_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_5_c_size_t #endif ! hipMalloc_r8_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_r8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) real(c_double),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_6_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_6_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_r8_6_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_6_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_r8_6_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_r8_6_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_6_c_int #endif ! hipMalloc_r8_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_r8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_6_c_size_t #endif ! hipMalloc_r8_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_r8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_7_source #else integer(kind(hipSuccess)) :: hipMalloc_r8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_r8_7_source = hipMalloc_(cptr,size(dsource)*byte_size(elem_real64)) hipMalloc_r8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_r8_7_source = hipMalloc_(cptr,size(source)*byte_size(elem_real64)) hipMalloc_r8_7_source = hipMemcpy(cptr,c_loc(source),size(source)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_r8_7_source = hipMalloc_(cptr,size(mold)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_r8_7_source = hipMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_r8_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_r8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_r8_7_c_int #endif ! hipMalloc_r8_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_r8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_r8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_r8_7_c_size_t #endif ! hipMalloc_r8_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMalloc_c4_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,intent(inout) :: ptr complex(c_float_complex),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_0_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_c4_0_source = hipMalloc_(cptr,2_int64*byte_size(elem_real32)) hipMalloc_c4_0_source = hipMemcpy(cptr,c_loc(dsource),2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_c4_0_source = hipMalloc_(cptr,2_int64*byte_size(elem_real32)) hipMalloc_c4_0_source = hipMemcpy(cptr,c_loc(source),2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_c4_0_source = hipMalloc_(cptr,2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_c4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) complex(c_float_complex),target,dimension(:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_1_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_1_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_c4_1_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_c4_1_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_c4_1_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_1_c_int #endif ! hipMalloc_c4_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_c4_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_1_c_size_t #endif ! hipMalloc_c4_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_c4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) complex(c_float_complex),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_2_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_2_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_c4_2_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_c4_2_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_c4_2_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_2_c_int #endif ! hipMalloc_c4_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_c4_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_2_c_size_t #endif ! hipMalloc_c4_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_c4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) complex(c_float_complex),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_3_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_3_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_c4_3_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_c4_3_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_c4_3_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_3_c_int #endif ! hipMalloc_c4_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_c4_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_3_c_size_t #endif ! hipMalloc_c4_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_c4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) complex(c_float_complex),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_4_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_4_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_c4_4_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_c4_4_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_c4_4_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_4_c_int #endif ! hipMalloc_c4_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_c4_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_4_c_size_t #endif ! hipMalloc_c4_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_c4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_5_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_5_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_c4_5_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_c4_5_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_c4_5_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_5_c_int #endif ! hipMalloc_c4_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_c4_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_5_c_size_t #endif ! hipMalloc_c4_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_c4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_6_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_6_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_c4_6_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_c4_6_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_c4_6_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_6_c_int #endif ! hipMalloc_c4_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_c4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_6_c_size_t #endif ! hipMalloc_c4_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_c4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_7_source #else integer(kind(hipSuccess)) :: hipMalloc_c4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c4_7_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_c4_7_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32)) hipMalloc_c4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_c4_7_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_c4_7_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c4_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_c4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c4_7_c_int #endif ! hipMalloc_c4_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_c4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c4_7_c_size_t #endif ! hipMalloc_c4_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real32)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMalloc_c8_0_source(ptr,dsource,source) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,intent(inout) :: ptr complex(c_double_complex),target,intent(in),optional :: dsource,source ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_0_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMalloc_c8_0_source = hipMalloc_(cptr,2_int64*byte_size(elem_real64)) hipMalloc_c8_0_source = hipMemcpy(cptr,c_loc(dsource),2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMalloc_c8_0_source = hipMalloc_(cptr,2_int64*byte_size(elem_real64)) hipMalloc_c8_0_source = hipMemcpy(cptr,c_loc(source),2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMalloc_c8_0_source = hipMalloc_(cptr,2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMalloc_c8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) complex(c_double_complex),target,dimension(:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_1_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_1_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMalloc_c8_1_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMalloc_c8_1_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMalloc_c8_1_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_1_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_1_c_int(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_1_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_1_c_int #endif ! hipMalloc_c8_1_c_int = hipMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_c8_1_c_size_t(ptr,length1) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_1_c_size_t #endif ! hipMalloc_c8_1_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMalloc_c8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) complex(c_double_complex),target,dimension(:,:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_2_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_2_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMalloc_c8_2_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMalloc_c8_2_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMalloc_c8_2_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_2_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_2_c_int(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_2_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_2_c_int #endif ! hipMalloc_c8_2_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_c8_2_c_size_t(ptr,length1,length2) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_2_c_size_t #endif ! hipMalloc_c8_2_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMalloc_c8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) complex(c_double_complex),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_3_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_3_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMalloc_c8_3_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMalloc_c8_3_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMalloc_c8_3_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_3_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_3_c_int(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_3_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_3_c_int #endif ! hipMalloc_c8_3_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_c8_3_c_size_t(ptr,length1,length2,length3) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_3_c_size_t #endif ! hipMalloc_c8_3_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMalloc_c8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) complex(c_double_complex),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_4_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_4_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMalloc_c8_4_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMalloc_c8_4_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMalloc_c8_4_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_4_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_4_c_int(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_4_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_4_c_int #endif ! hipMalloc_c8_4_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_c8_4_c_size_t(ptr,length1,length2,length3,length4) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_4_c_size_t #endif ! hipMalloc_c8_4_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMalloc_c8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_5_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_5_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMalloc_c8_5_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMalloc_c8_5_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMalloc_c8_5_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_5_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_5_c_int(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_5_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_5_c_int #endif ! hipMalloc_c8_5_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_c8_5_c_size_t(ptr,length1,length2,length3,length4,length5) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_5_c_size_t #endif ! hipMalloc_c8_5_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMalloc_c8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_6_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_6_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMalloc_c8_6_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMalloc_c8_6_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMalloc_c8_6_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_6_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_6_c_int(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_6_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_6_c_int #endif ! hipMalloc_c8_6_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_c8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_6_c_size_t #endif ! hipMalloc_c8_6_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMalloc_c8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold ! complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_7_source #else integer(kind(hipSuccess)) :: hipMalloc_c8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMalloc_c8_7_source = hipMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMalloc_c8_7_source = hipMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64)) hipMalloc_c8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMalloc_c8_7_source = hipMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMalloc_c8_7_source = hipMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMalloc_c8_7_source = hipMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMalloc_c8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_7_c_int #else integer(kind(hipSuccess)) :: hipMalloc_c8_7_c_int #endif ! hipMalloc_c8_7_c_int = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMalloc_c8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc_c8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMalloc_c8_7_c_size_t #endif ! hipMalloc_c8_7_c_size_t = hipMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real64)) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_l_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,intent(inout) :: ptr logical(c_bool),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_l_0_source = hipMallocManaged_(cptr,1_8,flags) hipMallocManaged_l_0_source = hipMemcpy(cptr,c_loc(dsource),1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_l_0_source = hipMallocManaged_(cptr,1_8,flags) hipMallocManaged_l_0_source = hipMemcpy(cptr,c_loc(source),1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_l_0_source = hipMallocManaged_(cptr,1_8,flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_l_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(1),dims(1) integer(8),intent(in),optional :: lbounds8(1),dims8(1) logical(c_bool),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_1_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_l_1_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_1_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_l_1_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_1_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_1_c_int #endif ! hipMallocManaged_l_1_c_int = hipMallocManaged_(cptr,length1*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_l_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_1_c_size_t #endif ! hipMallocManaged_l_1_c_size_t = hipMallocManaged_(cptr,length1*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_l_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(2),dims(2) integer(8),intent(in),optional :: lbounds8(2),dims8(2) logical(c_bool),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_2_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_l_2_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_2_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_l_2_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_2_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_2_c_int #endif ! hipMallocManaged_l_2_c_int = hipMallocManaged_(cptr,length1*length2*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_l_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_2_c_size_t #endif ! hipMallocManaged_l_2_c_size_t = hipMallocManaged_(cptr,length1*length2*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_l_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(3),dims(3) integer(8),intent(in),optional :: lbounds8(3),dims8(3) logical(c_bool),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_3_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_l_3_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_3_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_l_3_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_3_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_3_c_int #endif ! hipMallocManaged_l_3_c_int = hipMallocManaged_(cptr,length1*length2*length3*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_l_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_3_c_size_t #endif ! hipMallocManaged_l_3_c_size_t = hipMallocManaged_(cptr,length1*length2*length3*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_l_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(4),dims(4) integer(8),intent(in),optional :: lbounds8(4),dims8(4) logical(c_bool),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_4_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_l_4_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_4_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_l_4_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_4_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_4_c_int #endif ! hipMallocManaged_l_4_c_int = hipMallocManaged_(cptr,length1*length2*length3*length4*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_l_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_4_c_size_t #endif ! hipMallocManaged_l_4_c_size_t = hipMallocManaged_(cptr,length1*length2*length3*length4*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_l_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(5),dims(5) integer(8),intent(in),optional :: lbounds8(5),dims8(5) logical(c_bool),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_5_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_l_5_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_5_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_l_5_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_5_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_5_c_int #endif ! hipMallocManaged_l_5_c_int = hipMallocManaged_(cptr,length1*length2*length3*length4*length5*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_l_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_5_c_size_t #endif ! hipMallocManaged_l_5_c_size_t = hipMallocManaged_(cptr,length1*length2*length3*length4*length5*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_l_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(6),dims(6) integer(8),intent(in),optional :: lbounds8(6),dims8(6) logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_6_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_l_6_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_6_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_l_6_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_6_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_6_c_int #endif ! hipMallocManaged_l_6_c_int = hipMallocManaged_(cptr,length1*length2*length3*length4*length5*length6*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_l_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_6_c_size_t #endif ! hipMallocManaged_l_6_c_size_t = hipMallocManaged_(cptr,length1*length2*length3*length4*length5*length6*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_l_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(4),intent(in),optional :: lbounds(7),dims(7) integer(8),intent(in),optional :: lbounds8(7),dims8(7) logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_l_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_l_7_source = hipMallocManaged_(cptr,size(dsource)*1_8,flags) hipMallocManaged_l_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource)*1_8,hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_l_7_source = hipMallocManaged_(cptr,size(source)*1_8,flags) hipMallocManaged_l_7_source = hipMemcpy(cptr,c_loc(source),size(source)*1_8,hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_l_7_source = hipMallocManaged_(cptr,size(mold)*1_8,flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_l_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_l_7_source = hipMallocManaged_(cptr,PRODUCT(dims)*1_8,flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_l_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_l_7_c_int #endif ! hipMallocManaged_l_7_c_int = hipMallocManaged_(cptr,length1*length2*length3*length4*length5*length6*length7*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_l_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_l_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_l_7_c_size_t #endif ! hipMallocManaged_l_7_c_size_t = hipMallocManaged_(cptr,length1*length2*length3*length4*length5*length6*length7*1_8,flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_i4_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,intent(inout) :: ptr integer(c_int),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_i4_0_source = hipMallocManaged_(cptr,byte_size(elem_int32),flags) hipMallocManaged_i4_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_i4_0_source = hipMallocManaged_(cptr,byte_size(elem_int32),flags) hipMallocManaged_i4_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_i4_0_source = hipMallocManaged_(cptr,byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_i4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) integer(c_int),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_1_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_i4_1_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_1_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_1_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_1_c_int #endif ! hipMallocManaged_i4_1_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_i4_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_1_c_size_t #endif ! hipMallocManaged_i4_1_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_i4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) integer(c_int),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_2_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_i4_2_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_2_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_2_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_2_c_int #endif ! hipMallocManaged_i4_2_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_i4_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_2_c_size_t #endif ! hipMallocManaged_i4_2_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_i4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) integer(c_int),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_3_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_i4_3_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_3_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_3_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_3_c_int #endif ! hipMallocManaged_i4_3_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_i4_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_3_c_size_t #endif ! hipMallocManaged_i4_3_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_i4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) integer(c_int),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_4_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_i4_4_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_4_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_4_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_4_c_int #endif ! hipMallocManaged_i4_4_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_i4_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_4_c_size_t #endif ! hipMallocManaged_i4_4_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_i4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) integer(c_int),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_5_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_i4_5_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_5_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_5_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_5_c_int #endif ! hipMallocManaged_i4_5_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_i4_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_5_c_size_t #endif ! hipMallocManaged_i4_5_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_i4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) integer(c_int),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_6_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_i4_6_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_6_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_6_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_6_c_int #endif ! hipMallocManaged_i4_6_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_i4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_6_c_size_t #endif ! hipMallocManaged_i4_6_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_i4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i4_7_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_i4_7_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipMallocManaged_i4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_i4_7_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_i4_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i4_7_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_7_c_int #endif ! hipMallocManaged_i4_7_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_i4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i4_7_c_size_t #endif ! hipMallocManaged_i4_7_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_i8_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,intent(inout) :: ptr integer(c_long),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_i8_0_source = hipMallocManaged_(cptr,byte_size(elem_int64),flags) hipMallocManaged_i8_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_i8_0_source = hipMallocManaged_(cptr,byte_size(elem_int64),flags) hipMallocManaged_i8_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_i8_0_source = hipMallocManaged_(cptr,byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_i8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) integer(c_long),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_1_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_i8_1_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_1_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_1_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_1_c_int #endif ! hipMallocManaged_i8_1_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_i8_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_1_c_size_t #endif ! hipMallocManaged_i8_1_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_i8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) integer(c_long),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_2_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_i8_2_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_2_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_2_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_2_c_int #endif ! hipMallocManaged_i8_2_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_i8_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_2_c_size_t #endif ! hipMallocManaged_i8_2_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_i8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) integer(c_long),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_3_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_i8_3_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_3_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_3_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_3_c_int #endif ! hipMallocManaged_i8_3_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_i8_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_3_c_size_t #endif ! hipMallocManaged_i8_3_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_i8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) integer(c_long),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_4_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_i8_4_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_4_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_4_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_4_c_int #endif ! hipMallocManaged_i8_4_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_i8_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_4_c_size_t #endif ! hipMallocManaged_i8_4_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_i8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) integer(c_long),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_5_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_i8_5_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_5_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_5_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_5_c_int #endif ! hipMallocManaged_i8_5_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_i8_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_5_c_size_t #endif ! hipMallocManaged_i8_5_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_i8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) integer(c_long),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_6_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_i8_6_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_6_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_6_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_6_c_int #endif ! hipMallocManaged_i8_6_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_i8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_6_c_size_t #endif ! hipMallocManaged_i8_6_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_i8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_i8_7_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_i8_7_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipMallocManaged_i8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_i8_7_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_i8_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_i8_7_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_i8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_7_c_int #endif ! hipMallocManaged_i8_7_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_i8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_i8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_i8_7_c_size_t #endif ! hipMallocManaged_i8_7_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_r4_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,intent(inout) :: ptr real(c_float),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_r4_0_source = hipMallocManaged_(cptr,byte_size(elem_real32),flags) hipMallocManaged_r4_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_r4_0_source = hipMallocManaged_(cptr,byte_size(elem_real32),flags) hipMallocManaged_r4_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_r4_0_source = hipMallocManaged_(cptr,byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_r4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) real(c_float),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_1_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_r4_1_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_1_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_1_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_1_c_int #endif ! hipMallocManaged_r4_1_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_r4_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_1_c_size_t #endif ! hipMallocManaged_r4_1_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_r4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) real(c_float),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_2_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_r4_2_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_2_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_2_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_2_c_int #endif ! hipMallocManaged_r4_2_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_r4_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_2_c_size_t #endif ! hipMallocManaged_r4_2_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_r4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) real(c_float),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_3_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_r4_3_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_3_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_3_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_3_c_int #endif ! hipMallocManaged_r4_3_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_r4_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_3_c_size_t #endif ! hipMallocManaged_r4_3_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_r4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) real(c_float),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_4_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_r4_4_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_4_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_4_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_4_c_int #endif ! hipMallocManaged_r4_4_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_r4_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_4_c_size_t #endif ! hipMallocManaged_r4_4_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_r4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) real(c_float),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_5_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_r4_5_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_5_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_5_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_5_c_int #endif ! hipMallocManaged_r4_5_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_r4_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_5_c_size_t #endif ! hipMallocManaged_r4_5_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_r4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) real(c_float),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_6_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_r4_6_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_6_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_6_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_6_c_int #endif ! hipMallocManaged_r4_6_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_r4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_6_c_size_t #endif ! hipMallocManaged_r4_6_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_r4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r4_7_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_r4_7_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipMallocManaged_r4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_r4_7_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_r4_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r4_7_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_7_c_int #endif ! hipMallocManaged_r4_7_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*int(length7,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_r4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r4_7_c_size_t #endif ! hipMallocManaged_r4_7_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*int(length7,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_r8_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,intent(inout) :: ptr real(c_double),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_r8_0_source = hipMallocManaged_(cptr,byte_size(elem_real64),flags) hipMallocManaged_r8_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_r8_0_source = hipMallocManaged_(cptr,byte_size(elem_real64),flags) hipMallocManaged_r8_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_r8_0_source = hipMallocManaged_(cptr,byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_r8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) real(c_double),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_1_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_r8_1_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_1_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_1_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_1_c_int #endif ! hipMallocManaged_r8_1_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_r8_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_1_c_size_t #endif ! hipMallocManaged_r8_1_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_r8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) real(c_double),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_2_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_r8_2_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_2_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_2_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_2_c_int #endif ! hipMallocManaged_r8_2_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_r8_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_2_c_size_t #endif ! hipMallocManaged_r8_2_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_r8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) real(c_double),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_3_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_r8_3_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_3_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_3_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_3_c_int #endif ! hipMallocManaged_r8_3_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_r8_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_3_c_size_t #endif ! hipMallocManaged_r8_3_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_r8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) real(c_double),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_4_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_r8_4_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_4_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_4_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_4_c_int #endif ! hipMallocManaged_r8_4_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_r8_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_4_c_size_t #endif ! hipMallocManaged_r8_4_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_r8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) real(c_double),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_5_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_r8_5_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_5_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_5_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_5_c_int #endif ! hipMallocManaged_r8_5_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_r8_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_5_c_size_t #endif ! hipMallocManaged_r8_5_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_r8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) real(c_double),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_6_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_r8_6_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_6_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_6_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_6_c_int #endif ! hipMallocManaged_r8_6_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_r8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_6_c_size_t #endif ! hipMallocManaged_r8_6_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_r8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_r8_7_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_r8_7_source = hipMallocManaged_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipMallocManaged_r8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_r8_7_source = hipMallocManaged_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_r8_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_r8_7_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_r8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_7_c_int #endif ! hipMallocManaged_r8_7_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*int(length7,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_r8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_r8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_r8_7_c_size_t #endif ! hipMallocManaged_r8_7_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*int(length7,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_c4_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,intent(inout) :: ptr complex(c_float_complex),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_c4_0_source = hipMallocManaged_(cptr,2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_0_source = hipMemcpy(cptr,c_loc(dsource),2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_c4_0_source = hipMallocManaged_(cptr,2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_0_source = hipMemcpy(cptr,c_loc(source),2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_c4_0_source = hipMallocManaged_(cptr,2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_c4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) complex(c_float_complex),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_1_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_c4_1_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_1_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_1_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_1_c_int #endif ! hipMallocManaged_c4_1_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_c4_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_1_c_size_t #endif ! hipMallocManaged_c4_1_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_c4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) complex(c_float_complex),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_2_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_c4_2_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_2_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_2_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_2_c_int #endif ! hipMallocManaged_c4_2_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_c4_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_2_c_size_t #endif ! hipMallocManaged_c4_2_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_c4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) complex(c_float_complex),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_3_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_c4_3_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_3_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_3_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_3_c_int #endif ! hipMallocManaged_c4_3_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_c4_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_3_c_size_t #endif ! hipMallocManaged_c4_3_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_c4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) complex(c_float_complex),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_4_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_c4_4_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_4_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_4_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_4_c_int #endif ! hipMallocManaged_c4_4_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_c4_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_4_c_size_t #endif ! hipMallocManaged_c4_4_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_c4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_5_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_c4_5_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_5_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_5_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_5_c_int #endif ! hipMallocManaged_c4_5_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_c4_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_5_c_size_t #endif ! hipMallocManaged_c4_5_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_c4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_6_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_c4_6_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_6_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_6_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_6_c_int #endif ! hipMallocManaged_c4_6_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_c4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_6_c_size_t #endif ! hipMallocManaged_c4_6_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_c4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c4_7_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_c4_7_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipMallocManaged_c4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_c4_7_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_c4_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c4_7_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_7_c_int #endif ! hipMallocManaged_c4_7_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_c4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c4_7_c_size_t #endif ! hipMallocManaged_c4_7_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipMallocManaged_c8_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,intent(inout) :: ptr complex(c_double_complex),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_0_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMallocManaged (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipMallocManaged_c8_0_source = hipMallocManaged_(cptr,2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_0_source = hipMemcpy(cptr,c_loc(dsource),2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipMallocManaged_c8_0_source = hipMallocManaged_(cptr,2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_0_source = hipMemcpy(cptr,c_loc(source),2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,ptr) else hipMallocManaged_c8_0_source = hipMallocManaged_(cptr,2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipMallocManaged_c8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) complex(c_double_complex),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_1_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_1_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipMallocManaged_c8_1_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_1_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_1_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_1_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_int) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_1_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_1_c_int #endif ! hipMallocManaged_c8_1_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_c8_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:), intent(inout) :: ptr integer(c_size_t) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_1_c_size_t #endif ! hipMallocManaged_c8_1_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipMallocManaged_c8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) complex(c_double_complex),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_2_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_2_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipMallocManaged_c8_2_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_2_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_2_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_2_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_int) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_2_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_2_c_int #endif ! hipMallocManaged_c8_2_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_c8_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_2_c_size_t #endif ! hipMallocManaged_c8_2_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipMallocManaged_c8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) complex(c_double_complex),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_3_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_3_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipMallocManaged_c8_3_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_3_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_3_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_3_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_3_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_3_c_int #endif ! hipMallocManaged_c8_3_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_c8_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_3_c_size_t #endif ! hipMallocManaged_c8_3_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipMallocManaged_c8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) complex(c_double_complex),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_4_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_4_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipMallocManaged_c8_4_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_4_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_4_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_4_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_4_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_4_c_int #endif ! hipMallocManaged_c8_4_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_c8_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_4_c_size_t #endif ! hipMallocManaged_c8_4_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipMallocManaged_c8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_5_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_5_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipMallocManaged_c8_5_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_5_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_5_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_5_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_5_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_5_c_int #endif ! hipMallocManaged_c8_5_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_c8_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_5_c_size_t #endif ! hipMallocManaged_c8_5_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipMallocManaged_c8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_6_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_6_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipMallocManaged_c8_6_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_6_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_6_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_6_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_6_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_6_c_int #endif ! hipMallocManaged_c8_6_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_c8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_6_c_size_t #endif ! hipMallocManaged_c8_6_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipMallocManaged_c8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_7_source #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipMallocManaged_c8_7_source = hipMallocManaged_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToDevice) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipMallocManaged_c8_7_source = hipMallocManaged_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipMallocManaged_c8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToDevice) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipMallocManaged_c8_7_source = hipMallocManaged_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipMallocManaged_c8_7_source = hipMallocManaged_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipMallocManaged_c8_7_source = hipMallocManaged_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipMallocManaged_c8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_int) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_7_c_int #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_7_c_int #endif ! hipMallocManaged_c8_7_c_int = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipMallocManaged_c8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:), intent(inout) :: ptr integer(c_size_t) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocManaged_c8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMallocManaged_c8_7_c_size_t #endif ! hipMallocManaged_c8_7_c_size_t = hipMallocManaged_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_l_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,intent(inout) :: ptr logical(c_bool),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_l_0_source = hipHostMalloc_(cptr,1_int64,flags) hipHostMalloc_l_0_source = hipMemcpy(cptr,c_loc(dsource),1_int64,hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_l_0_source = hipHostMalloc_(cptr,1_int64,flags) hipHostMalloc_l_0_source = hipMemcpy(cptr,c_loc(source),1_int64,hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_l_0_source = hipHostMalloc_(cptr,1_int64,flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_l_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) logical(c_bool),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_l_1_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_l_1_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_1_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_1_c_int #endif ! hipHostMalloc_l_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_l_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_1_c_size_t #endif ! hipHostMalloc_l_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_l_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) logical(c_bool),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_l_2_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_l_2_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_2_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_2_c_int #endif ! hipHostMalloc_l_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_l_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_2_c_size_t #endif ! hipHostMalloc_l_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_l_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) logical(c_bool),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_l_3_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_l_3_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_3_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_3_c_int #endif ! hipHostMalloc_l_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_l_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_3_c_size_t #endif ! hipHostMalloc_l_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_l_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) logical(c_bool),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_l_4_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_l_4_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_4_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_4_c_int #endif ! hipHostMalloc_l_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_l_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_4_c_size_t #endif ! hipHostMalloc_l_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_l_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) logical(c_bool),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_l_5_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_l_5_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_5_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_5_c_int #endif ! hipHostMalloc_l_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_l_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_5_c_size_t #endif ! hipHostMalloc_l_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_l_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_l_6_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_l_6_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_6_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_6_c_int #endif ! hipHostMalloc_l_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_l_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_6_c_size_t #endif ! hipHostMalloc_l_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_l_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_l_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_l_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64),flags) hipHostMalloc_l_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_l_7_source = hipHostMalloc_(cptr,size(source,kind=int64),flags) hipHostMalloc_l_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_l_7_source = hipHostMalloc_(cptr,size(mold,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_l_7_source = hipHostMalloc_(cptr,PRODUCT(dims8),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_l_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64)),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_l_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_l_7_c_int #endif ! hipHostMalloc_l_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_l_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_l_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_l_7_c_size_t #endif ! hipHostMalloc_l_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_i4_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,intent(inout) :: ptr integer(c_int),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_i4_0_source = hipHostMalloc_(cptr,byte_size(elem_int32),flags) hipHostMalloc_i4_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_i4_0_source = hipHostMalloc_(cptr,byte_size(elem_int32),flags) hipHostMalloc_i4_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_i4_0_source = hipHostMalloc_(cptr,byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_i4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) integer(c_int),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_i4_1_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_1_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_1_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_1_c_int #endif ! hipHostMalloc_i4_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_i4_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_1_c_size_t #endif ! hipHostMalloc_i4_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_i4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) integer(c_int),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_i4_2_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_2_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_2_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_2_c_int #endif ! hipHostMalloc_i4_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_i4_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_2_c_size_t #endif ! hipHostMalloc_i4_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_i4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) integer(c_int),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_i4_3_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_3_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_3_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_3_c_int #endif ! hipHostMalloc_i4_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_i4_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_3_c_size_t #endif ! hipHostMalloc_i4_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_i4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) integer(c_int),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_i4_4_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_4_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_4_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_4_c_int #endif ! hipHostMalloc_i4_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_i4_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_4_c_size_t #endif ! hipHostMalloc_i4_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_i4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) integer(c_int),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_i4_5_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_5_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_5_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_5_c_int #endif ! hipHostMalloc_i4_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_i4_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_5_c_size_t #endif ! hipHostMalloc_i4_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_i4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) integer(c_int),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_i4_6_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_6_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_6_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_6_c_int #endif ! hipHostMalloc_i4_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_i4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_6_c_size_t #endif ! hipHostMalloc_i4_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_i4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i4_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_i4_7_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int32),flags) hipHostMalloc_i4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_i4_7_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_i4_7_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i4_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_7_c_int #endif ! hipHostMalloc_i4_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_i4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i4_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i4_7_c_size_t #endif ! hipHostMalloc_i4_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_i8_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,intent(inout) :: ptr integer(c_long),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_i8_0_source = hipHostMalloc_(cptr,byte_size(elem_int64),flags) hipHostMalloc_i8_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_i8_0_source = hipHostMalloc_(cptr,byte_size(elem_int64),flags) hipHostMalloc_i8_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_i8_0_source = hipHostMalloc_(cptr,byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_i8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) integer(c_long),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_i8_1_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_1_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_1_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_1_c_int #endif ! hipHostMalloc_i8_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_i8_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_1_c_size_t #endif ! hipHostMalloc_i8_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_i8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) integer(c_long),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_i8_2_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_2_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_2_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_2_c_int #endif ! hipHostMalloc_i8_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_i8_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_2_c_size_t #endif ! hipHostMalloc_i8_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_i8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) integer(c_long),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_i8_3_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_3_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_3_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_3_c_int #endif ! hipHostMalloc_i8_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_i8_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_3_c_size_t #endif ! hipHostMalloc_i8_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_i8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) integer(c_long),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_i8_4_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_4_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_4_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_4_c_int #endif ! hipHostMalloc_i8_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_i8_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_4_c_size_t #endif ! hipHostMalloc_i8_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_i8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) integer(c_long),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_i8_5_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_5_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_5_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_5_c_int #endif ! hipHostMalloc_i8_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_i8_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_5_c_size_t #endif ! hipHostMalloc_i8_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_i8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) integer(c_long),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_i8_6_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_6_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_6_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_6_c_int #endif ! hipHostMalloc_i8_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_i8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_6_c_size_t #endif ! hipHostMalloc_i8_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_i8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_i8_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_int64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_i8_7_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_int64),flags) hipHostMalloc_i8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_int64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_i8_7_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_i8_7_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_i8_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_int64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_i8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_7_c_int #endif ! hipHostMalloc_i8_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_i8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_i8_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_i8_7_c_size_t #endif ! hipHostMalloc_i8_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_int64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_r4_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,intent(inout) :: ptr real(c_float),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_r4_0_source = hipHostMalloc_(cptr,byte_size(elem_real32),flags) hipHostMalloc_r4_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_r4_0_source = hipHostMalloc_(cptr,byte_size(elem_real32),flags) hipHostMalloc_r4_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_r4_0_source = hipHostMalloc_(cptr,byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_r4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) real(c_float),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_r4_1_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_1_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_1_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_1_c_int #endif ! hipHostMalloc_r4_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_r4_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_1_c_size_t #endif ! hipHostMalloc_r4_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_r4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) real(c_float),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_r4_2_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_2_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_2_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_2_c_int #endif ! hipHostMalloc_r4_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_r4_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_2_c_size_t #endif ! hipHostMalloc_r4_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_r4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) real(c_float),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_r4_3_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_3_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_3_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_3_c_int #endif ! hipHostMalloc_r4_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_r4_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_3_c_size_t #endif ! hipHostMalloc_r4_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_r4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) real(c_float),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_r4_4_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_4_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_4_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_4_c_int #endif ! hipHostMalloc_r4_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_r4_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_4_c_size_t #endif ! hipHostMalloc_r4_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_r4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) real(c_float),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_r4_5_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_5_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_5_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_5_c_int #endif ! hipHostMalloc_r4_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_r4_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_5_c_size_t #endif ! hipHostMalloc_r4_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_r4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) real(c_float),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_r4_6_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_6_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_6_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_6_c_int #endif ! hipHostMalloc_r4_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_r4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_6_c_size_t #endif ! hipHostMalloc_r4_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_r4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r4_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_r4_7_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real32),flags) hipHostMalloc_r4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_r4_7_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_r4_7_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r4_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_7_c_int #endif ! hipHostMalloc_r4_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_r4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r4_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r4_7_c_size_t #endif ! hipHostMalloc_r4_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_r8_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,intent(inout) :: ptr real(c_double),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_r8_0_source = hipHostMalloc_(cptr,byte_size(elem_real64),flags) hipHostMalloc_r8_0_source = hipMemcpy(cptr,c_loc(dsource),byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_r8_0_source = hipHostMalloc_(cptr,byte_size(elem_real64),flags) hipHostMalloc_r8_0_source = hipMemcpy(cptr,c_loc(source),byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_r8_0_source = hipHostMalloc_(cptr,byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_r8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) real(c_double),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_r8_1_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_1_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_1_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_1_c_int #endif ! hipHostMalloc_r8_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_r8_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_1_c_size_t #endif ! hipHostMalloc_r8_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_r8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) real(c_double),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_r8_2_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_2_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_2_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_2_c_int #endif ! hipHostMalloc_r8_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_r8_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_2_c_size_t #endif ! hipHostMalloc_r8_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_r8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) real(c_double),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_r8_3_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_3_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_3_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_3_c_int #endif ! hipHostMalloc_r8_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_r8_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_3_c_size_t #endif ! hipHostMalloc_r8_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_r8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) real(c_double),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_r8_4_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_4_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_4_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_4_c_int #endif ! hipHostMalloc_r8_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_r8_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_4_c_size_t #endif ! hipHostMalloc_r8_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_r8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) real(c_double),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_r8_5_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_5_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_5_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_5_c_int #endif ! hipHostMalloc_r8_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_r8_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_5_c_size_t #endif ! hipHostMalloc_r8_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_r8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) real(c_double),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_r8_6_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_6_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_6_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_6_c_int #endif ! hipHostMalloc_r8_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_r8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_6_c_size_t #endif ! hipHostMalloc_r8_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_r8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_r8_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_r8_7_source = hipHostMalloc_(cptr,size(source,kind=int64)*byte_size(elem_real64),flags) hipHostMalloc_r8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_r8_7_source = hipHostMalloc_(cptr,size(mold,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_r8_7_source = hipHostMalloc_(cptr,PRODUCT(dims8)*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_r8_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_r8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_7_c_int #endif ! hipHostMalloc_r8_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_r8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_r8_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_r8_7_c_size_t #endif ! hipHostMalloc_r8_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_c4_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,intent(inout) :: ptr complex(c_float_complex),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_c4_0_source = hipHostMalloc_(cptr,2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_0_source = hipMemcpy(cptr,c_loc(dsource),2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_c4_0_source = hipHostMalloc_(cptr,2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_0_source = hipMemcpy(cptr,c_loc(source),2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_c4_0_source = hipHostMalloc_(cptr,2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_c4_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) complex(c_float_complex),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_c4_1_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_1_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_1_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_1_c_int #endif ! hipHostMalloc_c4_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_c4_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_1_c_size_t #endif ! hipHostMalloc_c4_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_c4_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) complex(c_float_complex),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_c4_2_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_2_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_2_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_2_c_int #endif ! hipHostMalloc_c4_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_c4_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_2_c_size_t #endif ! hipHostMalloc_c4_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_c4_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) complex(c_float_complex),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_c4_3_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_3_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_3_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_3_c_int #endif ! hipHostMalloc_c4_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_c4_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_3_c_size_t #endif ! hipHostMalloc_c4_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_c4_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) complex(c_float_complex),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_c4_4_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_4_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_4_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_4_c_int #endif ! hipHostMalloc_c4_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_c4_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_4_c_size_t #endif ! hipHostMalloc_c4_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_c4_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_c4_5_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_5_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_5_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_5_c_int #endif ! hipHostMalloc_c4_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_c4_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_5_c_size_t #endif ! hipHostMalloc_c4_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_c4_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_c4_6_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_6_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_6_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_6_c_int #endif ! hipHostMalloc_c4_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_c4_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_6_c_size_t #endif ! hipHostMalloc_c4_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_c4_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c4_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_c4_7_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real32),flags) hipHostMalloc_c4_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real32),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_c4_7_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_c4_7_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c4_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c4_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_7_c_int #endif ! hipHostMalloc_c4_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_c4_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c4_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c4_7_c_size_t #endif ! hipHostMalloc_c4_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real32),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function ! scalars function hipHostMalloc_c8_0_source(ptr,dsource,source,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,intent(inout) :: ptr complex(c_double_complex),target,intent(in),optional :: dsource,source integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_0_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_0_source #endif ! nOptArgs = 0 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc (scalar version): Only one optional argument ('dsource','source') must be specified." if ( present(dsource) ) then hipHostMalloc_c8_0_source = hipHostMalloc_(cptr,2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_0_source = hipMemcpy(cptr,c_loc(dsource),2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,ptr) else if ( present(source) ) then hipHostMalloc_c8_0_source = hipHostMalloc_(cptr,2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_0_source = hipMemcpy(cptr,c_loc(source),2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,ptr) else hipHostMalloc_c8_0_source = hipHostMalloc_(cptr,2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr) end if end function ! arrays function hipHostMalloc_c8_1_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(1),dims(1) integer(int64),intent(in),optional :: lbounds8(1),dims8(1) complex(c_double_complex),target,dimension(:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_1_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_1_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_1_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_1_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):) => tmp else if ( present(source) ) then hipHostMalloc_c8_1_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_1_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_1_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_1_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_1_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_1_c_int(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:) :: ptr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_1_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_1_c_int #endif ! hipHostMalloc_c8_1_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_c8_1_c_size_t(ptr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:) :: ptr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_1_c_size_t #endif ! hipHostMalloc_c8_1_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1]) end function function hipHostMalloc_c8_2_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(2),dims(2) integer(int64),intent(in),optional :: lbounds8(2),dims8(2) complex(c_double_complex),target,dimension(:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_2_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_2_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_2_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_2_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):) => tmp else if ( present(source) ) then hipHostMalloc_c8_2_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_2_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_2_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_2_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_2_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_2_c_int(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:) :: ptr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_2_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_2_c_int #endif ! hipHostMalloc_c8_2_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_c8_2_c_size_t(ptr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_2_c_size_t #endif ! hipHostMalloc_c8_2_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2]) end function function hipHostMalloc_c8_3_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(3),dims(3) integer(int64),intent(in),optional :: lbounds8(3),dims8(3) complex(c_double_complex),target,dimension(:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_3_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_3_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_3_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_3_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):) => tmp else if ( present(source) ) then hipHostMalloc_c8_3_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_3_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_3_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_3_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_3_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_3_c_int(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_3_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_3_c_int #endif ! hipHostMalloc_c8_3_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_c8_3_c_size_t(ptr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_3_c_size_t #endif ! hipHostMalloc_c8_3_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3]) end function function hipHostMalloc_c8_4_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(4),dims(4) integer(int64),intent(in),optional :: lbounds8(4),dims8(4) complex(c_double_complex),target,dimension(:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_4_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_4_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_4_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_4_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):) => tmp else if ( present(source) ) then hipHostMalloc_c8_4_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_4_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_4_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_4_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_4_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_4_c_int(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_4_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_4_c_int #endif ! hipHostMalloc_c8_4_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_c8_4_c_size_t(ptr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_4_c_size_t #endif ! hipHostMalloc_c8_4_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4]) end function function hipHostMalloc_c8_5_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(5),dims(5) integer(int64),intent(in),optional :: lbounds8(5),dims8(5) complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_5_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_5_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_5_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_5_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):) => tmp else if ( present(source) ) then hipHostMalloc_c8_5_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_5_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_5_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_5_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_5_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_5_c_int(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_5_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_5_c_int #endif ! hipHostMalloc_c8_5_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_c8_5_c_size_t(ptr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_5_c_size_t #endif ! hipHostMalloc_c8_5_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5]) end function function hipHostMalloc_c8_6_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(6),dims(6) integer(int64),intent(in),optional :: lbounds8(6),dims8(6) complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_6_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_6_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_6_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_6_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):) => tmp else if ( present(source) ) then hipHostMalloc_c8_6_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_6_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_6_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_6_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_6_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_6_c_int(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_6_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_6_c_int #endif ! hipHostMalloc_c8_6_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_c8_6_c_size_t(ptr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_6_c_size_t #endif ! hipHostMalloc_c8_6_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6]) end function function hipHostMalloc_c8_7_source(ptr,dims,dims8,lbounds,lbounds8,dsource,source,mold,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmemcpy, ONLY: hipMemcpy implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: ptr integer(int32),intent(in),optional :: lbounds(7),dims(7) integer(int64),intent(in),optional :: lbounds8(7),dims8(7) complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in),optional :: dsource,source,mold integer(kind=4),intent(in) :: flags ! complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: tmp type(c_ptr) :: cptr integer :: nOptArgs #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_7_source #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_7_source #endif ! nOptArgs = 0 if ( present(dims) ) nOptArgs = nOptArgs + 1 if ( present(dims8) ) nOptArgs = nOptArgs + 1 if ( present(dsource) ) nOptArgs = nOptArgs + 1 if ( present(source) ) nOptArgs = nOptArgs + 1 if ( present(mold) ) nOptArgs = nOptArgs + 1 if ( nOptArgs == 0 ) ERROR STOP "ERROR: hipHostMalloc: At least one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( nOptArgs > 1 ) ERROR STOP "ERROR: hipHostMalloc: Only one optional argument ('dims','dims8','dsource','source','mold') must be specified." if ( present(lbounds8) .and. .not. present(dims8) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds8' may only be specified in combination with 'dims8'." else if ( present(lbounds) .and. .not. present(dims) ) then ERROR STOP "ERROR: hipMalloc: 'lbounds' may only be specified in combination with 'dims'." endif if ( present(dsource) ) then hipHostMalloc_c8_7_source = hipHostMalloc_(cptr,size(dsource,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_7_source = hipMemcpy(cptr,c_loc(dsource),size(dsource,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyDeviceToHost) call c_f_pointer(cptr,tmp,shape=shape(dsource)) ptr(LBOUND(dsource,1):,LBOUND(dsource,2):,LBOUND(dsource,3):,LBOUND(dsource,4):,LBOUND(dsource,5):,LBOUND(dsource,6):,LBOUND(dsource,7):) => tmp else if ( present(source) ) then hipHostMalloc_c8_7_source = hipHostMalloc_(cptr,size(source,kind=int64)*2_int64*byte_size(elem_real64),flags) hipHostMalloc_c8_7_source = hipMemcpy(cptr,c_loc(source),size(source,kind=int64)*2_int64*byte_size(elem_real64),hipMemcpyHostToHost) call c_f_pointer(cptr,tmp,shape=shape(source)) ptr(LBOUND(source,1):,LBOUND(source,2):,LBOUND(source,3):,LBOUND(source,4):,LBOUND(source,5):,LBOUND(source,6):,LBOUND(source,7):) => tmp else if ( present(mold) ) then hipHostMalloc_c8_7_source = hipHostMalloc_(cptr,size(mold,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=shape(mold)) ptr(LBOUND(mold,1):,LBOUND(mold,2):,LBOUND(mold,3):,LBOUND(mold,4):,LBOUND(mold,5):,LBOUND(mold,6):,LBOUND(mold,7):) => tmp else if ( present(dims8) ) then hipHostMalloc_c8_7_source = hipHostMalloc_(cptr,PRODUCT(dims8)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims8) if ( present(lbounds8) ) then ptr(lbounds8(1):,lbounds8(2):,lbounds8(3):,lbounds8(4):,lbounds8(5):,lbounds8(6):,lbounds8(7):) => tmp else ptr => tmp end if else if ( present(dims) ) then hipHostMalloc_c8_7_source = hipHostMalloc_(cptr,PRODUCT(int(dims,kind=int64))*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,tmp,shape=dims) if ( present(lbounds) ) then ptr(lbounds(1):,lbounds(2):,lbounds(3):,lbounds(4):,lbounds(5):,lbounds(6):,lbounds(7):) => tmp else ptr => tmp end if end if end function function hipHostMalloc_c8_7_c_int(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_7_c_int #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_7_c_int #endif ! hipHostMalloc_c8_7_c_int = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipHostMalloc_c8_7_c_size_t(ptr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostMalloc_c8_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostMalloc_c8_7_c_size_t #endif ! hipHostMalloc_c8_7_c_size_t = hipHostMalloc_(cptr,int(length1,kind=int64)*int(length2,kind=int64)*int(length3,kind=int64)*& int(length4,kind=int64)*int(length5,kind=int64)*int(length6,kind=int64)*& int(length7,kind=int64)*2_int64*byte_size(elem_real64),flags) call c_f_pointer(cptr,ptr,shape=[length1,length2,length3,length4,length5,length6,length7]) end function function hipFree_l_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_0 #else integer(kind(hipSuccess)) :: hipFree_l_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_0 = cudaSuccess #else hipFree_l_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_1 #else integer(kind(hipSuccess)) :: hipFree_l_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_1 = cudaSuccess #else hipFree_l_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_2 #else integer(kind(hipSuccess)) :: hipFree_l_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_2 = cudaSuccess #else hipFree_l_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_3 #else integer(kind(hipSuccess)) :: hipFree_l_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_3 = cudaSuccess #else hipFree_l_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_4 #else integer(kind(hipSuccess)) :: hipFree_l_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_4 = cudaSuccess #else hipFree_l_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_5 #else integer(kind(hipSuccess)) :: hipFree_l_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_5 = cudaSuccess #else hipFree_l_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_6 #else integer(kind(hipSuccess)) :: hipFree_l_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_6 = cudaSuccess #else hipFree_l_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_l_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_l_7 #else integer(kind(hipSuccess)) :: hipFree_l_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_l_7 = cudaSuccess #else hipFree_l_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_l_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_0 #else integer(kind(hipSuccess)) :: hipFree_i4_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_0 = cudaSuccess #else hipFree_i4_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_1 #else integer(kind(hipSuccess)) :: hipFree_i4_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_1 = cudaSuccess #else hipFree_i4_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_2 #else integer(kind(hipSuccess)) :: hipFree_i4_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_2 = cudaSuccess #else hipFree_i4_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_3 #else integer(kind(hipSuccess)) :: hipFree_i4_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_3 = cudaSuccess #else hipFree_i4_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_4 #else integer(kind(hipSuccess)) :: hipFree_i4_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_4 = cudaSuccess #else hipFree_i4_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_5 #else integer(kind(hipSuccess)) :: hipFree_i4_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_5 = cudaSuccess #else hipFree_i4_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_6 #else integer(kind(hipSuccess)) :: hipFree_i4_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_6 = cudaSuccess #else hipFree_i4_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i4_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i4_7 #else integer(kind(hipSuccess)) :: hipFree_i4_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i4_7 = cudaSuccess #else hipFree_i4_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i4_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_0 #else integer(kind(hipSuccess)) :: hipFree_i8_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_0 = cudaSuccess #else hipFree_i8_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_1 #else integer(kind(hipSuccess)) :: hipFree_i8_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_1 = cudaSuccess #else hipFree_i8_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_2 #else integer(kind(hipSuccess)) :: hipFree_i8_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_2 = cudaSuccess #else hipFree_i8_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_3 #else integer(kind(hipSuccess)) :: hipFree_i8_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_3 = cudaSuccess #else hipFree_i8_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_4 #else integer(kind(hipSuccess)) :: hipFree_i8_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_4 = cudaSuccess #else hipFree_i8_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_5 #else integer(kind(hipSuccess)) :: hipFree_i8_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_5 = cudaSuccess #else hipFree_i8_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_6 #else integer(kind(hipSuccess)) :: hipFree_i8_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_6 = cudaSuccess #else hipFree_i8_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_i8_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_i8_7 #else integer(kind(hipSuccess)) :: hipFree_i8_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_i8_7 = cudaSuccess #else hipFree_i8_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_i8_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_0 #else integer(kind(hipSuccess)) :: hipFree_r4_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_0 = cudaSuccess #else hipFree_r4_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_1 #else integer(kind(hipSuccess)) :: hipFree_r4_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_1 = cudaSuccess #else hipFree_r4_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_2 #else integer(kind(hipSuccess)) :: hipFree_r4_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_2 = cudaSuccess #else hipFree_r4_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_3 #else integer(kind(hipSuccess)) :: hipFree_r4_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_3 = cudaSuccess #else hipFree_r4_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_4 #else integer(kind(hipSuccess)) :: hipFree_r4_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_4 = cudaSuccess #else hipFree_r4_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_5 #else integer(kind(hipSuccess)) :: hipFree_r4_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_5 = cudaSuccess #else hipFree_r4_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_6 #else integer(kind(hipSuccess)) :: hipFree_r4_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_6 = cudaSuccess #else hipFree_r4_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r4_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r4_7 #else integer(kind(hipSuccess)) :: hipFree_r4_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r4_7 = cudaSuccess #else hipFree_r4_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r4_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_0 #else integer(kind(hipSuccess)) :: hipFree_r8_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_0 = cudaSuccess #else hipFree_r8_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_1 #else integer(kind(hipSuccess)) :: hipFree_r8_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_1 = cudaSuccess #else hipFree_r8_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_2 #else integer(kind(hipSuccess)) :: hipFree_r8_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_2 = cudaSuccess #else hipFree_r8_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_3 #else integer(kind(hipSuccess)) :: hipFree_r8_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_3 = cudaSuccess #else hipFree_r8_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_4 #else integer(kind(hipSuccess)) :: hipFree_r8_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_4 = cudaSuccess #else hipFree_r8_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_5 #else integer(kind(hipSuccess)) :: hipFree_r8_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_5 = cudaSuccess #else hipFree_r8_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_6 #else integer(kind(hipSuccess)) :: hipFree_r8_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_6 = cudaSuccess #else hipFree_r8_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_r8_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_r8_7 #else integer(kind(hipSuccess)) :: hipFree_r8_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_r8_7 = cudaSuccess #else hipFree_r8_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_r8_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_0 #else integer(kind(hipSuccess)) :: hipFree_c4_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_0 = cudaSuccess #else hipFree_c4_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_1 #else integer(kind(hipSuccess)) :: hipFree_c4_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_1 = cudaSuccess #else hipFree_c4_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_2 #else integer(kind(hipSuccess)) :: hipFree_c4_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_2 = cudaSuccess #else hipFree_c4_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_3 #else integer(kind(hipSuccess)) :: hipFree_c4_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_3 = cudaSuccess #else hipFree_c4_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_4 #else integer(kind(hipSuccess)) :: hipFree_c4_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_4 = cudaSuccess #else hipFree_c4_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_5 #else integer(kind(hipSuccess)) :: hipFree_c4_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_5 = cudaSuccess #else hipFree_c4_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_6 #else integer(kind(hipSuccess)) :: hipFree_c4_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_6 = cudaSuccess #else hipFree_c4_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c4_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c4_7 #else integer(kind(hipSuccess)) :: hipFree_c4_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c4_7 = cudaSuccess #else hipFree_c4_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c4_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_0 #else integer(kind(hipSuccess)) :: hipFree_c8_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_0 = cudaSuccess #else hipFree_c8_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_0 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_1 #else integer(kind(hipSuccess)) :: hipFree_c8_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_1 = cudaSuccess #else hipFree_c8_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_1 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_2 #else integer(kind(hipSuccess)) :: hipFree_c8_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_2 = cudaSuccess #else hipFree_c8_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_2 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_3 #else integer(kind(hipSuccess)) :: hipFree_c8_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_3 = cudaSuccess #else hipFree_c8_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_3 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_4 #else integer(kind(hipSuccess)) :: hipFree_c8_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_4 = cudaSuccess #else hipFree_c8_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_4 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_5 #else integer(kind(hipSuccess)) :: hipFree_c8_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_5 = cudaSuccess #else hipFree_c8_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_5 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_6 #else integer(kind(hipSuccess)) :: hipFree_c8_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_6 = cudaSuccess #else hipFree_c8_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_6 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipFree_c8_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFree_c8_7 #else integer(kind(hipSuccess)) :: hipFree_c8_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipFree_c8_7 = cudaSuccess #else hipFree_c8_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipFree_c8_7 = hipFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_0 #else integer(kind(hipSuccess)) :: hipHostFree_l_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_0 = cudaSuccess #else hipHostFree_l_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_1 #else integer(kind(hipSuccess)) :: hipHostFree_l_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_1 = cudaSuccess #else hipHostFree_l_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_2 #else integer(kind(hipSuccess)) :: hipHostFree_l_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_2 = cudaSuccess #else hipHostFree_l_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_3 #else integer(kind(hipSuccess)) :: hipHostFree_l_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_3 = cudaSuccess #else hipHostFree_l_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_4 #else integer(kind(hipSuccess)) :: hipHostFree_l_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_4 = cudaSuccess #else hipHostFree_l_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_5 #else integer(kind(hipSuccess)) :: hipHostFree_l_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_5 = cudaSuccess #else hipHostFree_l_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_6 #else integer(kind(hipSuccess)) :: hipHostFree_l_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_6 = cudaSuccess #else hipHostFree_l_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_l_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_l_7 #else integer(kind(hipSuccess)) :: hipHostFree_l_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_l_7 = cudaSuccess #else hipHostFree_l_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_l_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_0 #else integer(kind(hipSuccess)) :: hipHostFree_i4_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_0 = cudaSuccess #else hipHostFree_i4_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_1 #else integer(kind(hipSuccess)) :: hipHostFree_i4_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_1 = cudaSuccess #else hipHostFree_i4_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_2 #else integer(kind(hipSuccess)) :: hipHostFree_i4_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_2 = cudaSuccess #else hipHostFree_i4_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_3 #else integer(kind(hipSuccess)) :: hipHostFree_i4_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_3 = cudaSuccess #else hipHostFree_i4_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_4 #else integer(kind(hipSuccess)) :: hipHostFree_i4_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_4 = cudaSuccess #else hipHostFree_i4_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_5 #else integer(kind(hipSuccess)) :: hipHostFree_i4_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_5 = cudaSuccess #else hipHostFree_i4_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_6 #else integer(kind(hipSuccess)) :: hipHostFree_i4_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_6 = cudaSuccess #else hipHostFree_i4_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i4_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i4_7 #else integer(kind(hipSuccess)) :: hipHostFree_i4_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i4_7 = cudaSuccess #else hipHostFree_i4_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i4_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_0 #else integer(kind(hipSuccess)) :: hipHostFree_i8_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_0 = cudaSuccess #else hipHostFree_i8_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_1 #else integer(kind(hipSuccess)) :: hipHostFree_i8_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_1 = cudaSuccess #else hipHostFree_i8_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_2 #else integer(kind(hipSuccess)) :: hipHostFree_i8_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_2 = cudaSuccess #else hipHostFree_i8_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_3 #else integer(kind(hipSuccess)) :: hipHostFree_i8_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_3 = cudaSuccess #else hipHostFree_i8_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_4 #else integer(kind(hipSuccess)) :: hipHostFree_i8_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_4 = cudaSuccess #else hipHostFree_i8_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_5 #else integer(kind(hipSuccess)) :: hipHostFree_i8_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_5 = cudaSuccess #else hipHostFree_i8_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_6 #else integer(kind(hipSuccess)) :: hipHostFree_i8_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_6 = cudaSuccess #else hipHostFree_i8_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_i8_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_i8_7 #else integer(kind(hipSuccess)) :: hipHostFree_i8_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_i8_7 = cudaSuccess #else hipHostFree_i8_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_i8_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_0 #else integer(kind(hipSuccess)) :: hipHostFree_r4_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_0 = cudaSuccess #else hipHostFree_r4_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_1 #else integer(kind(hipSuccess)) :: hipHostFree_r4_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_1 = cudaSuccess #else hipHostFree_r4_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_2 #else integer(kind(hipSuccess)) :: hipHostFree_r4_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_2 = cudaSuccess #else hipHostFree_r4_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_3 #else integer(kind(hipSuccess)) :: hipHostFree_r4_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_3 = cudaSuccess #else hipHostFree_r4_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_4 #else integer(kind(hipSuccess)) :: hipHostFree_r4_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_4 = cudaSuccess #else hipHostFree_r4_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_5 #else integer(kind(hipSuccess)) :: hipHostFree_r4_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_5 = cudaSuccess #else hipHostFree_r4_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_6 #else integer(kind(hipSuccess)) :: hipHostFree_r4_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_6 = cudaSuccess #else hipHostFree_r4_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r4_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r4_7 #else integer(kind(hipSuccess)) :: hipHostFree_r4_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r4_7 = cudaSuccess #else hipHostFree_r4_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r4_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_0 #else integer(kind(hipSuccess)) :: hipHostFree_r8_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_0 = cudaSuccess #else hipHostFree_r8_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_1 #else integer(kind(hipSuccess)) :: hipHostFree_r8_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_1 = cudaSuccess #else hipHostFree_r8_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_2 #else integer(kind(hipSuccess)) :: hipHostFree_r8_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_2 = cudaSuccess #else hipHostFree_r8_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_3 #else integer(kind(hipSuccess)) :: hipHostFree_r8_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_3 = cudaSuccess #else hipHostFree_r8_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_4 #else integer(kind(hipSuccess)) :: hipHostFree_r8_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_4 = cudaSuccess #else hipHostFree_r8_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_5 #else integer(kind(hipSuccess)) :: hipHostFree_r8_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_5 = cudaSuccess #else hipHostFree_r8_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_6 #else integer(kind(hipSuccess)) :: hipHostFree_r8_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_6 = cudaSuccess #else hipHostFree_r8_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_r8_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_r8_7 #else integer(kind(hipSuccess)) :: hipHostFree_r8_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_r8_7 = cudaSuccess #else hipHostFree_r8_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_r8_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_0 #else integer(kind(hipSuccess)) :: hipHostFree_c4_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_0 = cudaSuccess #else hipHostFree_c4_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_1 #else integer(kind(hipSuccess)) :: hipHostFree_c4_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_1 = cudaSuccess #else hipHostFree_c4_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_2 #else integer(kind(hipSuccess)) :: hipHostFree_c4_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_2 = cudaSuccess #else hipHostFree_c4_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_3 #else integer(kind(hipSuccess)) :: hipHostFree_c4_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_3 = cudaSuccess #else hipHostFree_c4_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_4 #else integer(kind(hipSuccess)) :: hipHostFree_c4_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_4 = cudaSuccess #else hipHostFree_c4_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_5 #else integer(kind(hipSuccess)) :: hipHostFree_c4_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_5 = cudaSuccess #else hipHostFree_c4_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_6 #else integer(kind(hipSuccess)) :: hipHostFree_c4_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_6 = cudaSuccess #else hipHostFree_c4_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c4_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c4_7 #else integer(kind(hipSuccess)) :: hipHostFree_c4_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c4_7 = cudaSuccess #else hipHostFree_c4_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c4_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_0(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_0 #else integer(kind(hipSuccess)) :: hipHostFree_c8_0 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_0 = cudaSuccess #else hipHostFree_c8_0 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_0 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_1(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_1 #else integer(kind(hipSuccess)) :: hipHostFree_c8_1 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_1 = cudaSuccess #else hipHostFree_c8_1 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_1 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_2(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_2 #else integer(kind(hipSuccess)) :: hipHostFree_c8_2 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_2 = cudaSuccess #else hipHostFree_c8_2 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_2 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_3(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_3 #else integer(kind(hipSuccess)) :: hipHostFree_c8_3 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_3 = cudaSuccess #else hipHostFree_c8_3 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_3 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_4(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_4 #else integer(kind(hipSuccess)) :: hipHostFree_c8_4 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_4 = cudaSuccess #else hipHostFree_c8_4 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_4 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_5(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_5 #else integer(kind(hipSuccess)) :: hipHostFree_c8_5 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_5 = cudaSuccess #else hipHostFree_c8_5 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_5 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_6(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_6 #else integer(kind(hipSuccess)) :: hipHostFree_c8_6 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_6 = cudaSuccess #else hipHostFree_c8_6 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_6 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function function hipHostFree_c8_7(ptr,only_if_allocated) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:) :: ptr logical,intent(in),optional :: only_if_allocated #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostFree_c8_7 #else integer(kind(hipSuccess)) :: hipHostFree_c8_7 #endif ! logical :: opt_only_if_allocated ! #ifdef USE_CUDA_NAMES hipHostFree_c8_7 = cudaSuccess #else hipHostFree_c8_7 = hipSuccess #endif opt_only_if_allocated = .FALSE. if ( present(only_if_allocated) ) opt_only_if_allocated = only_if_allocated if ( .not. opt_only_if_allocated .or. associated(ptr) ) then hipHostFree_c8_7 = hipHostFree_(c_loc(ptr)) nullify(ptr) endif end function #endif end module hipfort-7.2.4/lib/hipfort/hipfort_hipblas_auxiliary.F900000664000175000017500000024664315207260635023355 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipblas_auxiliary interface hipblasSetVector #ifdef USE_CUDA_NAMES function hipblasSetVector_(n,elem_size,x,incx,y,incy) bind(c, name="cublasSetVector") result(ret) #else function hipblasSetVector_(n,elem_size,x,incx,y,incy) bind(c, name="hipblasSetVector") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasSetVector_l_rank_0,hipblasSetVector_l_full_rank,& hipblasSetVector_i4_rank_0,hipblasSetVector_i4_full_rank,& hipblasSetVector_i8_rank_0,hipblasSetVector_i8_full_rank,& hipblasSetVector_r4_rank_0,hipblasSetVector_r4_full_rank,& hipblasSetVector_r8_rank_0,hipblasSetVector_r8_full_rank,& hipblasSetVector_c4_rank_0,hipblasSetVector_c4_full_rank,& hipblasSetVector_c8_rank_0,hipblasSetVector_c8_full_rank #endif end interface interface hipblasGetVector #ifdef USE_CUDA_NAMES function hipblasGetVector_(n,elem_size,x,incx,y,incy) bind(c, name="cublasGetVector") result(ret) #else function hipblasGetVector_(n,elem_size,x,incx,y,incy) bind(c, name="hipblasGetVector") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasGetVector_l_rank_0,hipblasGetVector_l_full_rank,& hipblasGetVector_i4_rank_0,hipblasGetVector_i4_full_rank,& hipblasGetVector_i8_rank_0,hipblasGetVector_i8_full_rank,& hipblasGetVector_r4_rank_0,hipblasGetVector_r4_full_rank,& hipblasGetVector_r8_rank_0,hipblasGetVector_r8_full_rank,& hipblasGetVector_c4_rank_0,hipblasGetVector_c4_full_rank,& hipblasGetVector_c8_rank_0,hipblasGetVector_c8_full_rank #endif end interface interface hipblasSetMatrix #ifdef USE_CUDA_NAMES function hipblasSetMatrix_(rows,cols,elem_size,A,lda,B,ldb) bind(c, name="cublasSetMatrix") result(ret) #else function hipblasSetMatrix_(rows,cols,elem_size,A,lda,B,ldb) bind(c, name="hipblasSetMatrix") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasSetMatrix_l_full_rank,hipblasSetMatrix_l_rank_0,hipblasSetMatrix_l_rank_1,& hipblasSetMatrix_i4_full_rank,hipblasSetMatrix_i4_rank_0,hipblasSetMatrix_i4_rank_1,& hipblasSetMatrix_i8_full_rank,hipblasSetMatrix_i8_rank_0,hipblasSetMatrix_i8_rank_1,& hipblasSetMatrix_r4_full_rank,hipblasSetMatrix_r4_rank_0,hipblasSetMatrix_r4_rank_1,& hipblasSetMatrix_r8_full_rank,hipblasSetMatrix_r8_rank_0,hipblasSetMatrix_r8_rank_1,& hipblasSetMatrix_c4_full_rank,hipblasSetMatrix_c4_rank_0,hipblasSetMatrix_c4_rank_1,& hipblasSetMatrix_c8_full_rank,hipblasSetMatrix_c8_rank_0,hipblasSetMatrix_c8_rank_1 #endif end interface interface hipblasGetMatrix #ifdef USE_CUDA_NAMES function hipblasGetMatrix_(rows,cols,elem_size,A,lda,B,ldb) bind(c, name="cublasGetMatrix") result(ret) #else function hipblasGetMatrix_(rows,cols,elem_size,A,lda,B,ldb) bind(c, name="hipblasGetMatrix") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasGetMatrix_l_full_rank,hipblasGetMatrix_l_rank_0,hipblasGetMatrix_l_rank_1,& hipblasGetMatrix_i4_full_rank,hipblasGetMatrix_i4_rank_0,hipblasGetMatrix_i4_rank_1,& hipblasGetMatrix_i8_full_rank,hipblasGetMatrix_i8_rank_0,hipblasGetMatrix_i8_rank_1,& hipblasGetMatrix_r4_full_rank,hipblasGetMatrix_r4_rank_0,hipblasGetMatrix_r4_rank_1,& hipblasGetMatrix_r8_full_rank,hipblasGetMatrix_r8_rank_0,hipblasGetMatrix_r8_rank_1,& hipblasGetMatrix_c4_full_rank,hipblasGetMatrix_c4_rank_0,hipblasGetMatrix_c4_rank_1,& hipblasGetMatrix_c8_full_rank,hipblasGetMatrix_c8_rank_0,hipblasGetMatrix_c8_rank_1 #endif end interface interface hipblasSetVectorAsync #ifdef USE_CUDA_NAMES function hipblasSetVectorAsync_(n,elem_size,x,incx,y,incy,stream) bind(c, name="cublasSetVectorAsync") result(ret) #else function hipblasSetVectorAsync_(n,elem_size,x,incx,y,incy,stream) bind(c, name="hipblasSetVectorAsync") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasSetVectorAsync_l_rank_0,hipblasSetVectorAsync_l_full_rank,& hipblasSetVectorAsync_i4_rank_0,hipblasSetVectorAsync_i4_full_rank,& hipblasSetVectorAsync_i8_rank_0,hipblasSetVectorAsync_i8_full_rank,& hipblasSetVectorAsync_r4_rank_0,hipblasSetVectorAsync_r4_full_rank,& hipblasSetVectorAsync_r8_rank_0,hipblasSetVectorAsync_r8_full_rank,& hipblasSetVectorAsync_c4_rank_0,hipblasSetVectorAsync_c4_full_rank,& hipblasSetVectorAsync_c8_rank_0,hipblasSetVectorAsync_c8_full_rank #endif end interface interface hipblasGetVectorAsync #ifdef USE_CUDA_NAMES function hipblasGetVectorAsync_(n,elem_size,x,incx,y,incy,stream) bind(c, name="cublasGetVectorAsync") result(ret) #else function hipblasGetVectorAsync_(n,elem_size,x,incx,y,incy,stream) bind(c, name="hipblasGetVectorAsync") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),value :: elem_size type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasGetVectorAsync_l_rank_0,hipblasGetVectorAsync_l_full_rank,& hipblasGetVectorAsync_i4_rank_0,hipblasGetVectorAsync_i4_full_rank,& hipblasGetVectorAsync_i8_rank_0,hipblasGetVectorAsync_i8_full_rank,& hipblasGetVectorAsync_r4_rank_0,hipblasGetVectorAsync_r4_full_rank,& hipblasGetVectorAsync_r8_rank_0,hipblasGetVectorAsync_r8_full_rank,& hipblasGetVectorAsync_c4_rank_0,hipblasGetVectorAsync_c4_full_rank,& hipblasGetVectorAsync_c8_rank_0,hipblasGetVectorAsync_c8_full_rank #endif end interface interface hipblasSetMatrixAsync #ifdef USE_CUDA_NAMES function hipblasSetMatrixAsync_(rows,cols,elem_size,A,lda,B,ldb,stream) bind(c, name="cublasSetMatrixAsync") result(ret) #else function hipblasSetMatrixAsync_(rows,cols,elem_size,A,lda,B,ldb,stream) bind(c, name="hipblasSetMatrixAsync") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasSetMatrixAsync_l_full_rank,hipblasSetMatrixAsync_l_rank_0,hipblasSetMatrixAsync_l_rank_1,& hipblasSetMatrixAsync_i4_full_rank,hipblasSetMatrixAsync_i4_rank_0,hipblasSetMatrixAsync_i4_rank_1,& hipblasSetMatrixAsync_i8_full_rank,hipblasSetMatrixAsync_i8_rank_0,hipblasSetMatrixAsync_i8_rank_1,& hipblasSetMatrixAsync_r4_full_rank,hipblasSetMatrixAsync_r4_rank_0,hipblasSetMatrixAsync_r4_rank_1,& hipblasSetMatrixAsync_r8_full_rank,hipblasSetMatrixAsync_r8_rank_0,hipblasSetMatrixAsync_r8_rank_1,& hipblasSetMatrixAsync_c4_full_rank,hipblasSetMatrixAsync_c4_rank_0,hipblasSetMatrixAsync_c4_rank_1,& hipblasSetMatrixAsync_c8_full_rank,hipblasSetMatrixAsync_c8_rank_0,hipblasSetMatrixAsync_c8_rank_1 #endif end interface interface hipblasGetMatrixAsync #ifdef USE_CUDA_NAMES function hipblasGetMatrixAsync_(rows,cols,elem_size,A,lda,B,ldb,stream) bind(c, name="cublasGetMatrixAsync") result(ret) #else function hipblasGetMatrixAsync_(rows,cols,elem_size,A,lda,B,ldb,stream) bind(c, name="hipblasGetMatrixAsync") result(ret) #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure hipblasGetMatrixAsync_l_full_rank,hipblasGetMatrixAsync_l_rank_0,hipblasGetMatrixAsync_l_rank_1,& hipblasGetMatrixAsync_i4_full_rank,hipblasGetMatrixAsync_i4_rank_0,hipblasGetMatrixAsync_i4_rank_1,& hipblasGetMatrixAsync_i8_full_rank,hipblasGetMatrixAsync_i8_rank_0,hipblasGetMatrixAsync_i8_rank_1,& hipblasGetMatrixAsync_r4_full_rank,hipblasGetMatrixAsync_r4_rank_0,hipblasGetMatrixAsync_r4_rank_1,& hipblasGetMatrixAsync_r8_full_rank,hipblasGetMatrixAsync_r8_rank_0,hipblasGetMatrixAsync_r8_rank_1,& hipblasGetMatrixAsync_c4_full_rank,hipblasGetMatrixAsync_c4_rank_0,hipblasGetMatrixAsync_c4_rank_1,& hipblasGetMatrixAsync_c8_full_rank,hipblasGetMatrixAsync_c8_rank_0,hipblasGetMatrixAsync_c8_rank_1 #endif end interface #ifdef USE_FPOINTER_INTERFACES contains function hipblasSetVector_l_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_l_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_l_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_l_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,1,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_l_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_l_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_l_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_l_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_l_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_l_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_l_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_l_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_l_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target :: x integer(c_int),value :: incx logical(c_bool),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_l_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n logical(c_bool),target,dimension(:) :: x integer(c_int),value :: incx logical(c_bool),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,1,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_l_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_l_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_l_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_l_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:,:) :: A logical(c_bool),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,1,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_l_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target :: A integer(c_int),value :: lda logical(c_bool),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_l_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols logical(c_bool),target,dimension(:) :: A integer(c_int),value :: lda logical(c_bool),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,1,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetVector_i4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_i4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_i4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_i4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_i4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_i4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_i4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_i4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_i4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_i4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_i4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_i4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_i4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target :: x integer(c_int),value :: incx integer(c_int),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_i4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_int),target,dimension(:) :: x integer(c_int),value :: incx integer(c_int),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_i4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_i4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_i4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_i4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:,:) :: A integer(c_int),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_i4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target :: A integer(c_int),value :: lda integer(c_int),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_i4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),target,dimension(:) :: A integer(c_int),value :: lda integer(c_int),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetVector_i8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_i8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_i8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_i8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_i8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_i8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_i8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_i8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_i8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_i8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_i8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_i8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_i8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target :: x integer(c_int),value :: incx integer(c_long),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_i8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n integer(c_long),target,dimension(:) :: x integer(c_int),value :: incx integer(c_long),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_i8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_i8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_i8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_i8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:,:) :: A integer(c_long),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_i8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target :: A integer(c_int),value :: lda integer(c_long),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_i8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols integer(c_long),target,dimension(:) :: A integer(c_int),value :: lda integer(c_long),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetVector_r4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_r4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_r4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_r4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,4,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_r4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_r4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_r4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_r4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_r4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_r4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_r4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_r4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_r4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target :: x integer(c_int),value :: incx real(c_float),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_r4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_float),target,dimension(:) :: x integer(c_int),value :: incx real(c_float),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_r4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_r4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_r4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_r4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_r4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target :: A integer(c_int),value :: lda real(c_float),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_r4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_float),target,dimension(:) :: A integer(c_int),value :: lda real(c_float),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetVector_r8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_r8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_r8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_r8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,8,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_r8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_r8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_r8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_r8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_r8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_r8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_r8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_r8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_r8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target :: x integer(c_int),value :: incx real(c_double),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_r8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n real(c_double),target,dimension(:) :: x integer(c_int),value :: incx real(c_double),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_r8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_r8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_r8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_r8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_r8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target :: A integer(c_int),value :: lda real(c_double),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_r8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols real(c_double),target,dimension(:) :: A integer(c_int),value :: lda real(c_double),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetVector_c4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_c4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_c4_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_c4_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,2*4,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_c4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_c4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_c4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_c4_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_c4_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_c4_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_c4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_c4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_c4_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target :: x integer(c_int),value :: incx complex(c_float_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_c4_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,2*4,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_c4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_c4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_c4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_c4_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,2*4,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_c4_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target :: A integer(c_int),value :: lda complex(c_float_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_c4_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_float_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,2*4,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetVector_c8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetVector_c8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasSetVector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_c8_rank_0(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function hipblasGetVector_c8_full_rank(n,x,incx,y,incy) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy ! ret = hipblasGetVector_(n,2*8,c_loc(x),incx,c_loc(y),incy) end function function hipblasSetMatrix_c8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B ! ret = hipblasSetMatrix_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasSetMatrix_c8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetMatrix_c8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasSetMatrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_c8_full_rank(rows,cols,A,B) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B ! ret = hipblasGetMatrix_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1)) end function function hipblasGetMatrix_c8_rank_0(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasGetMatrix_c8_rank_1(rows,cols,A,lda,B,ldb) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb ! ret = hipblasGetMatrix_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb) end function function hipblasSetVectorAsync_c8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetVectorAsync_c8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasSetVectorAsync_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_c8_rank_0(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target :: x integer(c_int),value :: incx complex(c_double_complex),target :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasGetVectorAsync_c8_full_rank(n,x,incx,y,incy,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int),value :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int),value :: incy type(c_ptr),value :: stream ! ret = hipblasGetVectorAsync_(n,2*8,c_loc(x),incx,c_loc(y),incy,stream) end function function hipblasSetMatrixAsync_c8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasSetMatrixAsync_c8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasSetMatrixAsync_c8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasSetMatrixAsync_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_c8_full_rank(rows,cols,A,B,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:,:) :: B type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,2*8,c_loc(A),size(A,1),c_loc(B),size(B,1),stream) end function function hipblasGetMatrixAsync_c8_rank_0(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target :: A integer(c_int),value :: lda complex(c_double_complex),target :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function function hipblasGetMatrixAsync_c8_rank_1(rows,cols,A,lda,B,ldb,stream) result(ret) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: ret integer(c_int),value :: rows integer(c_int),value :: cols complex(c_double_complex),target,dimension(:) :: A integer(c_int),value :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int),value :: ldb type(c_ptr),value :: stream ! ret = hipblasGetMatrixAsync_(rows,cols,2*8,c_loc(A),lda,c_loc(B),ldb,stream) end function #endif end modulehipfort-7.2.4/lib/hipfort/hipfort_hipsparse_enums.F900000664000175000017500000001403515207260635023035 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipsparse_enums implicit none enum, bind(c) enumerator :: HIPSPARSE_STATUS_SUCCESS = 0 enumerator :: HIPSPARSE_STATUS_NOT_INITIALIZED = 1 enumerator :: HIPSPARSE_STATUS_ALLOC_FAILED = 2 enumerator :: HIPSPARSE_STATUS_INVALID_VALUE = 3 enumerator :: HIPSPARSE_STATUS_ARCH_MISMATCH = 4 enumerator :: HIPSPARSE_STATUS_MAPPING_ERROR = 5 enumerator :: HIPSPARSE_STATUS_EXECUTION_FAILED = 6 enumerator :: HIPSPARSE_STATUS_INTERNAL_ERROR = 7 enumerator :: HIPSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED = 8 enumerator :: HIPSPARSE_STATUS_ZERO_PIVOT = 9 enumerator :: HIPSPARSE_STATUS_NOT_SUPPORTED = 10 enumerator :: HIPSPARSE_STATUS_INSUFFICIENT_RESOURCES = 11 end enum enum, bind(c) enumerator :: HIPSPARSE_POINTER_MODE_HOST = 0 enumerator :: HIPSPARSE_POINTER_MODE_DEVICE = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_ACTION_SYMBOLIC = 0 enumerator :: HIPSPARSE_ACTION_NUMERIC = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_MATRIX_TYPE_GENERAL = 0 enumerator :: HIPSPARSE_MATRIX_TYPE_SYMMETRIC = 1 enumerator :: HIPSPARSE_MATRIX_TYPE_HERMITIAN = 2 enumerator :: HIPSPARSE_MATRIX_TYPE_TRIANGULAR = 3 end enum enum, bind(c) enumerator :: HIPSPARSE_FILL_MODE_LOWER = 0 enumerator :: HIPSPARSE_FILL_MODE_UPPER = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_DIAG_TYPE_NON_UNIT = 0 enumerator :: HIPSPARSE_DIAG_TYPE_UNIT = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_INDEX_BASE_ZERO = 0 enumerator :: HIPSPARSE_INDEX_BASE_ONE = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_OPERATION_NON_TRANSPOSE = 0 enumerator :: HIPSPARSE_OPERATION_TRANSPOSE = 1 enumerator :: HIPSPARSE_OPERATION_CONJUGATE_TRANSPOSE = 2 end enum enum, bind(c) enumerator :: HIPSPARSE_HYB_PARTITION_AUTO = 0 enumerator :: HIPSPARSE_HYB_PARTITION_USER = 1 enumerator :: HIPSPARSE_HYB_PARTITION_MAX = 2 end enum enum, bind(c) enumerator :: HIPSPARSE_SOLVE_POLICY_NO_LEVEL = 0 enumerator :: HIPSPARSE_SOLVE_POLICY_USE_LEVEL = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_SIDE_LEFT = 0 enumerator :: HIPSPARSE_SIDE_RIGHT = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_DIRECTION_ROW = 0 enumerator :: HIPSPARSE_DIRECTION_COLUMN = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_FORMAT_CSR = 1 enumerator :: HIPSPARSE_FORMAT_COO = 3 enumerator :: HIPSPARSE_FORMAT_COO_AOS = 4 enumerator :: HIPSPARSE_FORMAT_BLOCKED_ELL = 5 end enum enum, bind(c) enumerator :: HIPSPARSE_ORDER_ROW = 0 enumerator :: HIPSPARSE_ORDER_COLUMN = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_INDEX_16U = 1 enumerator :: HIPSPARSE_INDEX_32I = 2 enumerator :: HIPSPARSE_INDEX_64I = 3 end enum enum, bind(c) enumerator :: HIPSPARSE_MV_ALG_DEFAULT = 0 enumerator :: HIPSPARSE_COOMV_ALG = 1 enumerator :: HIPSPARSE_CSRMV_ALG1 = 2 enumerator :: HIPSPARSE_CSRMV_ALG2 = 3 enumerator :: HIPSPARSE_SPMV_ALG_DEFAULT = 4 enumerator :: HIPSPARSE_SPMV_COO_ALG1 = 5 enumerator :: HIPSPARSE_SPMV_COO_ALG2 = 6 enumerator :: HIPSPARSE_SPMV_CSR_ALG1 = 7 enumerator :: HIPSPARSE_SPMV_CSR_ALG2 = 8 end enum enum, bind(c) enumerator :: HIPSPARSE_MM_ALG_DEFAULT = 0 enumerator :: HIPSPARSE_COOMM_ALG1 = 1 enumerator :: HIPSPARSE_COOMM_ALG2 = 2 enumerator :: HIPSPARSE_COOMM_ALG3 = 3 enumerator :: HIPSPARSE_CSRMM_ALG1 = 4 enumerator :: HIPSPARSE_SPMM_ALG_DEFAULT = 5 enumerator :: HIPSPARSE_SPMM_COO_ALG1 = 6 enumerator :: HIPSPARSE_SPMM_COO_ALG2 = 7 enumerator :: HIPSPARSE_SPMM_COO_ALG3 = 8 enumerator :: HIPSPARSE_SPMM_COO_ALG4 = 9 enumerator :: HIPSPARSE_SPMM_CSR_ALG1 = 10 enumerator :: HIPSPARSE_SPMM_CSR_ALG2 = 11 enumerator :: HIPSPARSE_SPMM_BLOCKED_ELL_ALG1 = 12 enumerator :: HIPSPARSE_SPMM_CSR_ALG3 = 13 end enum enum, bind(c) enumerator :: HIPSPARSE_SPARSETODENSE_ALG_DEFAULT = 0 end enum enum, bind(c) enumerator :: HIPSPARSE_DENSETOSPARSE_ALG_DEFAULT = 0 end enum enum, bind(c) enumerator :: HIPSPARSE_SDDMM_ALG_DEFAULT = 0 end enum enum, bind(c) enumerator :: HIPSPARSE_SPSV_ALG_DEFAULT = 0 end enum enum, bind(c) enumerator :: HIPSPARSE_SPSM_ALG_DEFAULT = 0 end enum enum, bind(c) enumerator :: HIPSPARSE_SPMAT_FILL_MODE = 0 enumerator :: HIPSPARSE_SPMAT_DIAG_TYPE = 1 end enum enum, bind(c) enumerator :: HIPSPARSE_SPGEMM_DEFAULT = 0 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_hipsparse_enumshipfort-7.2.4/lib/hipfort/hipfort_cuda_errors.f900000664000175000017500000001557115207260635022206 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2021 Advanced Micro Devices, Inc. ! ! 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 hipfort_cuda_errors implicit none enum, bind(c) enumerator :: cudaSuccess = 0 enumerator :: cudaErrorInvalidValue = 1 enumerator :: cudaErrorMemoryAllocation = 2 enumerator :: cudaErrorInitializationError = 3 enumerator :: cudaErrorCudartUnloading = 4 enumerator :: cudaErrorProfilerDisabled = 5 enumerator :: cudaErrorProfilerNotInitialized = 6 enumerator :: cudaErrorProfilerAlreadyStarted = 7 enumerator :: cudaErrorProfilerAlreadyStopped = 8 enumerator :: cudaErrorInvalidConfiguration = 9 enumerator :: cudaErrorInvalidPitchValue = 12 enumerator :: cudaErrorInvalidSymbol = 13 enumerator :: cudaErrorInvalidHostPointer = 16 enumerator :: cudaErrorInvalidDevicePointer = 17 enumerator :: cudaErrorInvalidTexture = 18 enumerator :: cudaErrorInvalidTextureBinding = 19 enumerator :: cudaErrorInvalidChannelDescriptor = 20 enumerator :: cudaErrorInvalidMemcpyDirection = 21 enumerator :: cudaErrorAddressOfConstant = 22 enumerator :: cudaErrorTextureFetchFailed = 23 enumerator :: cudaErrorTextureNotBound = 24 enumerator :: cudaErrorSynchronizationError = 25 enumerator :: cudaErrorInvalidFilterSetting = 26 enumerator :: cudaErrorInvalidNormSetting = 27 enumerator :: cudaErrorMixedDeviceExecution = 28 enumerator :: cudaErrorNotYetImplemented = 31 enumerator :: cudaErrorMemoryValueTooLarge = 32 enumerator :: cudaErrorInsufficientDriver = 35 enumerator :: cudaErrorInvalidSurface = 37 enumerator :: cudaErrorDuplicateVariableName = 43 enumerator :: cudaErrorDuplicateTextureName = 44 enumerator :: cudaErrorDuplicateSurfaceName = 45 enumerator :: cudaErrorDevicesUnavailable = 46 enumerator :: cudaErrorIncompatibleDriverContext = 49 enumerator :: cudaErrorMissingConfiguration = 52 enumerator :: cudaErrorPriorLaunchFailure = 53 enumerator :: cudaErrorLaunchMaxDepthExceeded = 65 enumerator :: cudaErrorLaunchFileScopedTex = 66 enumerator :: cudaErrorLaunchFileScopedSurf = 67 enumerator :: cudaErrorSyncDepthExceeded = 68 enumerator :: cudaErrorLaunchPendingCountExceeded = 69 enumerator :: cudaErrorInvalidDeviceFunction = 98 enumerator :: cudaErrorNoDevice = 100 enumerator :: cudaErrorInvalidDevice = 101 enumerator :: cudaErrorStartupFailure = 127 enumerator :: cudaErrorInvalidKernelImage = 200 enumerator :: cudaErrorDeviceUninitialized = 201 enumerator :: cudaErrorMapBufferObjectFailed = 205 enumerator :: cudaErrorUnmapBufferObjectFailed = 206 enumerator :: cudaErrorArrayIsMapped = 207 enumerator :: cudaErrorAlreadyMapped = 208 enumerator :: cudaErrorNoKernelImageForDevice = 209 enumerator :: cudaErrorAlreadyAcquired = 210 enumerator :: cudaErrorNotMapped = 211 enumerator :: cudaErrorNotMappedAsArray = 212 enumerator :: cudaErrorNotMappedAsPointer = 213 enumerator :: cudaErrorECCUncorrectable = 214 enumerator :: cudaErrorUnsupportedLimit = 215 enumerator :: cudaErrorDeviceAlreadyInUse = 216 enumerator :: cudaErrorPeerAccessUnsupported = 217 enumerator :: cudaErrorInvalidPtx = 218 enumerator :: cudaErrorInvalidGraphicsContext = 219 enumerator :: cudaErrorNvlinkUncorrectable = 220 enumerator :: cudaErrorJitCompilerNotFound = 221 enumerator :: cudaErrorInvalidSource = 300 enumerator :: cudaErrorFileNotFound = 301 enumerator :: cudaErrorSharedObjectSymbolNotFound = 302 enumerator :: cudaErrorSharedObjectInitFailed = 303 enumerator :: cudaErrorOperatingSystem = 304 enumerator :: cudaErrorInvalidResourceHandle = 400 enumerator :: cudaErrorIllegalState = 401 enumerator :: cudaErrorSymbolNotFound = 500 enumerator :: cudaErrorNotReady = 600 enumerator :: cudaErrorIllegalAddress = 700 enumerator :: cudaErrorLaunchOutOfResources = 701 enumerator :: cudaErrorLaunchTimeout = 702 enumerator :: cudaErrorLaunchIncompatibleTexturing = 703 enumerator :: cudaErrorPeerAccessAlreadyEnabled = 704 enumerator :: cudaErrorPeerAccessNotEnabled = 705 enumerator :: cudaErrorSetOnActiveProcess = 708 enumerator :: cudaErrorContextIsDestroyed = 709 enumerator :: cudaErrorAssert = 710 enumerator :: cudaErrorTooManyPeers = 711 enumerator :: cudaErrorHostMemoryAlreadyRegistered = 712 enumerator :: cudaErrorHostMemoryNotRegistered = 713 enumerator :: cudaErrorHardwareStackError = 714 enumerator :: cudaErrorIllegalInstruction = 715 enumerator :: cudaErrorMisalignedAddress = 716 enumerator :: cudaErrorInvalidAddressSpace = 717 enumerator :: cudaErrorInvalidPc = 718 enumerator :: cudaErrorLaunchFailure = 719 enumerator :: cudaErrorCooperativeLaunchTooLarge = 720 enumerator :: cudaErrorNotPermitted = 800 enumerator :: cudaErrorNotSupported = 801 enumerator :: cudaErrorSystemNotReady = 802 enumerator :: cudaErrorSystemDriverMismatch = 803 enumerator :: cudaErrorCompatNotSupportedOnDevice = 804 enumerator :: cudaErrorStreamCaptureUnsupported = 900 enumerator :: cudaErrorStreamCaptureInvalidated = 901 enumerator :: cudaErrorStreamCaptureMerge = 902 enumerator :: cudaErrorStreamCaptureUnmatched = 903 enumerator :: cudaErrorStreamCaptureUnjoined = 904 enumerator :: cudaErrorStreamCaptureIsolation = 905 enumerator :: cudaErrorStreamCaptureImplicit = 906 enumerator :: cudaErrorCapturedEvent = 907 enumerator :: cudaErrorStreamCaptureWrongThread = 908 enumerator :: cudaErrorTimeout = 909 enumerator :: cudaErrorGraphExecUpdateFailure = 910 enumerator :: cudaErrorUnknown = 999 enumerator :: cudaErrorApiFailureBase = 10000 end enum end module hipfort_cuda_errors hipfort-7.2.4/lib/hipfort/hipfort.F900000664000175000017500000116363515207260635017564 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types use hipfort_hipmalloc use hipfort_hipmemcpy use hipfort_auxiliary implicit none interface hipInit #ifdef USE_CUDA_NAMES function hipInit_(flags) bind(c, name="cudaInit") #else function hipInit_(flags) bind(c, name="hipInit") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipInit_ #else integer(kind(hipSuccess)) :: hipInit_ #endif integer(c_int),value :: flags end function end interface !> @brief Returns the approximate HIP driver version. !> !> @param [out] driverVersion !> !> @returns hipSuccess, hipErrorInavlidValue !> !> @warning The HIP feature set does not correspond to an exact CUDA SDK driver revision. !> This function always set *driverVersion to 4 as an approximation though HIP supports !> some features which were introduced in later CUDA SDK revisions. !> HIP apps code should not rely on the driver revision number here and should !> use arch feature flags to test device capabilities or conditional compilation. !> !> @see hipRuntimeGetVersion interface hipDriverGetVersion #ifdef USE_CUDA_NAMES function hipDriverGetVersion_(driverVersion) bind(c, name="cudaDriverGetVersion") #else function hipDriverGetVersion_(driverVersion) bind(c, name="hipDriverGetVersion") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDriverGetVersion_ #else integer(kind(hipSuccess)) :: hipDriverGetVersion_ #endif type(c_ptr),value :: driverVersion end function end interface !> @brief Returns the approximate HIP Runtime version. !> !> @param [out] runtimeVersion !> !> @returns hipSuccess, hipErrorInavlidValue !> !> @warning The version definition of HIP runtime is different from CUDA. !> On AMD platform, the function returns HIP runtime version, !> while on NVIDIA platform, it returns CUDA runtime version. !> And there is no mapping/correlation between HIP version and CUDA version. !> !> @see hipDriverGetVersion interface hipRuntimeGetVersion #ifdef USE_CUDA_NAMES function hipRuntimeGetVersion_(runtimeVersion) bind(c, name="cudaRuntimeGetVersion") #else function hipRuntimeGetVersion_(runtimeVersion) bind(c, name="hipRuntimeGetVersion") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipRuntimeGetVersion_ #else integer(kind(hipSuccess)) :: hipRuntimeGetVersion_ #endif type(c_ptr),value :: runtimeVersion end function end interface !> @brief Returns a handle to a compute device !> @param [out] device !> @param [in] ordinal !> !> @returns hipSuccess, hipErrorInavlidDevice interface hipDeviceGet #ifdef USE_CUDA_NAMES function hipDeviceGet_(device,ordinal) bind(c, name="cudaDeviceGet") #else function hipDeviceGet_(device,ordinal) bind(c, name="hipDeviceGet") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGet_ #else integer(kind(hipSuccess)) :: hipDeviceGet_ #endif integer(c_int) :: device integer(c_int),value :: ordinal end function end interface !> @brief Returns the compute capability of the device !> @param [out] major !> @param [out] minor !> @param [in] device !> !> @returns hipSuccess, hipErrorInavlidDevice interface hipDeviceComputeCapability #ifdef USE_CUDA_NAMES function hipDeviceComputeCapability_(major,minor,device) bind(c, name="cudaDeviceComputeCapability") #else function hipDeviceComputeCapability_(major,minor,device) bind(c, name="hipDeviceComputeCapability") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceComputeCapability_ #else integer(kind(hipSuccess)) :: hipDeviceComputeCapability_ #endif type(c_ptr),value :: major type(c_ptr),value :: minor integer(c_int),value :: device end function end interface !> @brief Returns an identifer string for the device. !> @param [out] name !> @param [in] len !> @param [in] device !> !> @returns hipSuccess, hipErrorInavlidDevice interface hipDeviceGetName #ifdef USE_CUDA_NAMES function hipDeviceGetName_(name,len,device) bind(c, name="cudaDeviceGetName") #else function hipDeviceGetName_(name,len,device) bind(c, name="hipDeviceGetName") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetName_ #else integer(kind(hipSuccess)) :: hipDeviceGetName_ #endif type(c_ptr),value :: name integer(c_int),value :: len integer(c_int),value :: device end function end interface !> @brief Returns a value for attr of link between two devices !> @param [out] value !> @param [in] attr !> @param [in] srcDevice !> @param [in] dstDevice !> !> @returns hipSuccess, hipErrorInavlidDevice interface hipDeviceGetP2PAttribute #ifdef USE_CUDA_NAMES function hipDeviceGetP2PAttribute_(myValue,attr,srcDevice,dstDevice) bind(c, name="cudaDeviceGetP2PAttribute") #else function hipDeviceGetP2PAttribute_(myValue,attr,srcDevice,dstDevice) bind(c, name="hipDeviceGetP2PAttribute") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetP2PAttribute_ #else integer(kind(hipSuccess)) :: hipDeviceGetP2PAttribute_ #endif type(c_ptr),value :: myValue integer(kind(hipDevP2PAttrPerformanceRank)),value :: attr integer(c_int),value :: srcDevice integer(c_int),value :: dstDevice end function end interface !> @brief Returns a PCI Bus Id string for the device, overloaded to take int device ID. !> @param [out] pciBusId !> @param [in] len !> @param [in] device !> !> @returns hipSuccess, hipErrorInavlidDevice interface hipDeviceGetPCIBusId #ifdef USE_CUDA_NAMES function hipDeviceGetPCIBusId_(pciBusId,len,device) bind(c, name="cudaDeviceGetPCIBusId") #else function hipDeviceGetPCIBusId_(pciBusId,len,device) bind(c, name="hipDeviceGetPCIBusId") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetPCIBusId_ #else integer(kind(hipSuccess)) :: hipDeviceGetPCIBusId_ #endif type(c_ptr),value :: pciBusId integer(c_int),value :: len integer(c_int),value :: device end function end interface !> @brief Returns a handle to a compute device. !> @param [out] device handle !> @param [in] PCI Bus ID !> !> @returns hipSuccess, hipErrorInavlidDevice, hipErrorInvalidValue interface hipDeviceGetByPCIBusId #ifdef USE_CUDA_NAMES function hipDeviceGetByPCIBusId_(device,pciBusId) bind(c, name="cudaDeviceGetByPCIBusId") #else function hipDeviceGetByPCIBusId_(device,pciBusId) bind(c, name="hipDeviceGetByPCIBusId") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetByPCIBusId_ #else integer(kind(hipSuccess)) :: hipDeviceGetByPCIBusId_ #endif integer(c_int) :: device type(c_ptr),value :: pciBusId end function end interface !> @brief Returns the total amount of memory on the device. !> @param [out] bytes !> @param [in] device !> !> @returns hipSuccess, hipErrorInavlidDevice interface hipDeviceTotalMem #ifdef USE_CUDA_NAMES function hipDeviceTotalMem_(bytes,device) bind(c, name="cudaDeviceTotalMem") #else function hipDeviceTotalMem_(bytes,device) bind(c, name="hipDeviceTotalMem") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceTotalMem_ #else integer(kind(hipSuccess)) :: hipDeviceTotalMem_ #endif integer(c_size_t) :: bytes integer(c_int),value :: device end function end interface !> @brief Waits on all active streams on current device !> !> When this command is invoked, the host thread gets blocked until all the commands associated !> with streams associated with the device. HIP does not support multiple blocking modes (yet!). !> !> @returns hipSuccess !> !> @see hipSetDevice, hipDeviceReset interface hipDeviceSynchronize #ifdef USE_CUDA_NAMES function hipDeviceSynchronize_() bind(c, name="cudaDeviceSynchronize") #else function hipDeviceSynchronize_() bind(c, name="hipDeviceSynchronize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceSynchronize_ #else integer(kind(hipSuccess)) :: hipDeviceSynchronize_ #endif end function end interface !> @brief The state of current device is discarded and updated to a fresh state. !> !> Calling this function deletes all streams created, memory allocated, kernels running, events !> created. Make sure that no other thread is using the device or streams, memory, kernels, events !> associated with the current device. !> !> @returns hipSuccess !> !> @see hipDeviceSynchronize interface hipDeviceReset #ifdef USE_CUDA_NAMES function hipDeviceReset_() bind(c, name="cudaDeviceReset") #else function hipDeviceReset_() bind(c, name="hipDeviceReset") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceReset_ #else integer(kind(hipSuccess)) :: hipDeviceReset_ #endif end function end interface !> @brief Set default device to be used for subsequent hip API calls from this thread. !> !> @param[in] deviceId Valid device in range 0...hipGetDeviceCount(). !> !> Sets @p device as the default device for the calling host thread. Valid device id's are 0... !> (hipGetDeviceCount()-1). !> !> Many HIP APIs implicitly use the "default device" : !> !> - Any device memory subsequently allocated from this host thread (using hipMalloc) will be !> allocated on device. !> - Any streams or events created from this host thread will be associated with device. !> - Any kernels launched from this host thread (using hipLaunchKernel) will be executed on device !> (unless a specific stream is specified, in which case the device associated with that stream will !> be used). !> !> This function may be called from any host thread. Multiple host threads may use the same device. !> This function does no synchronization with the previous or new device, and has very little !> runtime overhead. Applications can use hipSetDevice to quickly switch the default device before !> making a HIP runtime call which uses the default device. !> !> The default device is stored in thread-local-storage for each thread. !> Thread-pool implementations may inherit the default device of the previous thread. A good !> practice is to always call hipSetDevice at the start of HIP coding sequency to establish a known !> standard device. !> !> @returns hipSuccess, hipErrorInvalidDevice, hipErrorDeviceAlreadyInUse !> !> @see hipGetDevice, hipGetDeviceCount interface hipSetDevice #ifdef USE_CUDA_NAMES function hipSetDevice_(deviceId) bind(c, name="cudaSetDevice") #else function hipSetDevice_(deviceId) bind(c, name="hipSetDevice") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipSetDevice_ #else integer(kind(hipSuccess)) :: hipSetDevice_ #endif integer(c_int),value :: deviceId end function end interface !> @brief Return the default device id for the calling host thread. !> !> @param [out] device *device is written with the default device !> !> HIP maintains an default device for each thread using thread-local-storage. !> This device is used implicitly for HIP runtime APIs called by this thread. !> hipGetDevice returns in * @p device the default device for the calling host thread. !> !> @returns hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see hipSetDevice, hipGetDevicesizeBytes interface hipGetDevice #ifdef USE_CUDA_NAMES function hipGetDevice_(deviceId) bind(c, name="cudaGetDevice") #else function hipGetDevice_(deviceId) bind(c, name="hipGetDevice") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetDevice_ #else integer(kind(hipSuccess)) :: hipGetDevice_ #endif integer(c_int) :: deviceId end function end interface !> @brief Return number of compute-capable devices. !> !> @param [output] count Returns number of compute-capable devices. !> !> @returns hipSuccess, hipErrorNoDevice !> !> !> Returns in @p *count the number of devices that have ability to run compute commands. If there !> are no such devices, then hipGetDeviceCount will return hipErrorNoDevice. If 1 or more !> devices can be found, then hipGetDeviceCount returns hipSuccess. interface hipGetDeviceCount #ifdef USE_CUDA_NAMES function hipGetDeviceCount_(count) bind(c, name="cudaGetDeviceCount") #else function hipGetDeviceCount_(count) bind(c, name="hipGetDeviceCount") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetDeviceCount_ #else integer(kind(hipSuccess)) :: hipGetDeviceCount_ #endif integer(c_int) :: count end function end interface !> @brief Query for a specific device attribute. !> !> @param [out] pi pointer to value to return !> @param [in] attr attribute to query !> @param [in] deviceId which device to query for information !> !> @returns hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue interface hipDeviceGetAttribute #ifdef USE_CUDA_NAMES function hipDeviceGetAttribute_(pi,attr,deviceId) bind(c, name="cudaDeviceGetAttribute") #else function hipDeviceGetAttribute_(pi,attr,deviceId) bind(c, name="hipDeviceGetAttribute") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetAttribute_ #else integer(kind(hipSuccess)) :: hipDeviceGetAttribute_ #endif type(c_ptr),value :: pi integer(kind(hipDeviceAttributeCudaCompatibleBegin)),value :: attr integer(c_int),value :: deviceId end function end interface !> @brief Set L1/Shared cache partition. !> !> @param [in] cacheConfig !> !> @returns hipSuccess, hipErrorNotInitialized !> Note: AMD devices and some Nvidia GPUS do not support reconfigurable cache. This hint is ignored !> on those architectures. !> interface hipDeviceSetCacheConfig #ifdef USE_CUDA_NAMES function hipDeviceSetCacheConfig_(cacheConfig) bind(c, name="cudaDeviceSetCacheConfig") #else function hipDeviceSetCacheConfig_(cacheConfig) bind(c, name="hipDeviceSetCacheConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceSetCacheConfig_ #else integer(kind(hipSuccess)) :: hipDeviceSetCacheConfig_ #endif integer(kind(hipFuncCachePreferNone)),value :: cacheConfig end function end interface !> @brief Set Cache configuration for a specific function !> !> @param [in] cacheConfig !> !> @returns hipSuccess, hipErrorNotInitialized !> Note: AMD devices and some Nvidia GPUS do not support reconfigurable cache. This hint is ignored !> on those architectures. !> interface hipDeviceGetCacheConfig #ifdef USE_CUDA_NAMES function hipDeviceGetCacheConfig_(cacheConfig) bind(c, name="cudaDeviceGetCacheConfig") #else function hipDeviceGetCacheConfig_(cacheConfig) bind(c, name="hipDeviceGetCacheConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetCacheConfig_ #else integer(kind(hipSuccess)) :: hipDeviceGetCacheConfig_ #endif type(c_ptr),value :: cacheConfig end function end interface !> @brief Get Resource limits of current device !> !> @param [out] pValue !> @param [in] limit !> !> @returns hipSuccess, hipErrorUnsupportedLimit, hipErrorInvalidValue !> Note: Currently, only hipLimitMallocHeapSize is available !> interface hipDeviceGetLimit #ifdef USE_CUDA_NAMES function hipDeviceGetLimit_(pValue,limit) bind(c, name="cudaDeviceGetLimit") #else function hipDeviceGetLimit_(pValue,limit) bind(c, name="hipDeviceGetLimit") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetLimit_ #else integer(kind(hipSuccess)) :: hipDeviceGetLimit_ #endif integer(c_size_t) :: pValue integer(kind(hipLimitPrintfFifoSize)),value :: limit end function end interface !> @brief Returns bank width of shared memory for current device !> !> @param [out] pConfig !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized !> !> Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is !> ignored on those architectures. !> interface hipDeviceGetSharedMemConfig #ifdef USE_CUDA_NAMES function hipDeviceGetSharedMemConfig_(pConfig) bind(c, name="cudaDeviceGetSharedMemConfig") #else function hipDeviceGetSharedMemConfig_(pConfig) bind(c, name="hipDeviceGetSharedMemConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetSharedMemConfig_ #else integer(kind(hipSuccess)) :: hipDeviceGetSharedMemConfig_ #endif type(c_ptr),value :: pConfig end function end interface !> @brief Gets the flags set for current device !> !> @param [out] flags !> !> @returns hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue interface hipGetDeviceFlags #ifdef USE_CUDA_NAMES function hipGetDeviceFlags_(flags) bind(c, name="cudaGetDeviceFlags") #else function hipGetDeviceFlags_(flags) bind(c, name="hipGetDeviceFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetDeviceFlags_ #else integer(kind(hipSuccess)) :: hipGetDeviceFlags_ #endif type(c_ptr),value :: flags end function end interface !> @brief The bank width of shared memory on current device is set !> !> @param [in] config !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized !> !> Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is !> ignored on those architectures. !> interface hipDeviceSetSharedMemConfig #ifdef USE_CUDA_NAMES function hipDeviceSetSharedMemConfig_(config) bind(c, name="cudaDeviceSetSharedMemConfig") #else function hipDeviceSetSharedMemConfig_(config) bind(c, name="hipDeviceSetSharedMemConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceSetSharedMemConfig_ #else integer(kind(hipSuccess)) :: hipDeviceSetSharedMemConfig_ #endif integer(kind(hipSharedMemBankSizeDefault)),value :: config end function end interface !> @brief The current device behavior is changed according the flags passed. !> !> @param [in] flags !> !> The schedule flags impact how HIP waits for the completion of a command running on a device. !> hipDeviceScheduleSpin : HIP runtime will actively spin in the thread which submitted the !> work until the command completes. This offers the lowest latency, but will consume a CPU core !> and may increase power. hipDeviceScheduleYield : The HIP runtime will yield the CPU to !> system so that other tasks can use it. This may increase latency to detect the completion but !> will consume less power and is friendlier to other tasks in the system. !> hipDeviceScheduleBlockingSync : On ROCm platform, this is a synonym for hipDeviceScheduleYield. !> hipDeviceScheduleAuto : Use a hueristic to select between Spin and Yield modes. If the !> number of HIP contexts is greater than the number of logical processors in the system, use Spin !> scheduling. Else use Yield scheduling. !> !> !> hipDeviceMapHost : Allow mapping host memory. On ROCM, this is always allowed and !> the flag is ignored. hipDeviceLmemResizeToMax : @warning ROCm silently ignores this flag. !> !> @returns hipSuccess, hipErrorInvalidDevice, hipErrorSetOnActiveProcess !> !> interface hipSetDeviceFlags #ifdef USE_CUDA_NAMES function hipSetDeviceFlags_(flags) bind(c, name="cudaSetDeviceFlags") #else function hipSetDeviceFlags_(flags) bind(c, name="hipSetDeviceFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipSetDeviceFlags_ #else integer(kind(hipSuccess)) :: hipSetDeviceFlags_ #endif integer(c_int),value :: flags end function end interface !> @brief Device which matches hipDeviceProp_t is returned !> !> @param [out] device ID !> @param [in] device properties pointer !> !> @returns hipSuccess, hipErrorInvalidValue interface hipChooseDevice #ifdef USE_CUDA_NAMES function hipChooseDevice_(device,prop) bind(c, name="cudaChooseDevice") #else function hipChooseDevice_(device,prop) bind(c, name="hipChooseDevice") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipChooseDevice_ #else integer(kind(hipSuccess)) :: hipChooseDevice_ #endif integer(c_int) :: device type(c_ptr) :: prop end function end interface !> @brief Returns the link type and hop count between two devices !> !> @param [in] device1 Ordinal for device1 !> @param [in] device2 Ordinal for device2 !> @param [out] linktype Returns the link type (See hsa_amd_link_info_type_t) between the two devices !> @param [out] hopcount Returns the hop count between the two devices !> !> Queries and returns the HSA link type and the hop count between the two specified devices. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorRuntimeOther interface hipExtGetLinkTypeAndHopCount #ifdef USE_CUDA_NAMES function hipExtGetLinkTypeAndHopCount_(device1,device2,linktype,hopcount) bind(c, name="cudaExtGetLinkTypeAndHopCount") #else function hipExtGetLinkTypeAndHopCount_(device1,device2,linktype,hopcount) bind(c, name="hipExtGetLinkTypeAndHopCount") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExtGetLinkTypeAndHopCount_ #else integer(kind(hipSuccess)) :: hipExtGetLinkTypeAndHopCount_ #endif integer(c_int),value :: device1 integer(c_int),value :: device2 type(c_ptr),value :: linktype type(c_ptr),value :: hopcount end function end interface !> @brief Gets an interprocess memory handle for an existing device memory !> allocation !> !> Takes a pointer to the base of an existing device memory allocation created !> with hipMalloc and exports it for use in another process. This is a !> lightweight operation and may be called multiple times on an allocation !> without adverse effects. !> !> If a region of memory is freed with hipFree and a subsequent call !> to hipMalloc returns memory with the same device address, !> hipIpcGetMemHandle will return a unique handle for the !> new memory. !> !> @param handle - Pointer to user allocated hipIpcMemHandle to return !> the handle in. !> @param devPtr - Base pointer to previously allocated device memory !> !> @returns !> hipSuccess, !> hipErrorInvalidHandle, !> hipErrorOutOfMemory, !> hipErrorMapFailed, !> interface hipIpcGetMemHandle #ifdef USE_CUDA_NAMES function hipIpcGetMemHandle_(handle,devPtr) bind(c, name="cudaIpcGetMemHandle") #else function hipIpcGetMemHandle_(handle,devPtr) bind(c, name="hipIpcGetMemHandle") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipIpcGetMemHandle_ #else integer(kind(hipSuccess)) :: hipIpcGetMemHandle_ #endif type(c_ptr) :: handle type(c_ptr),value :: devPtr end function end interface !> @brief Opens an interprocess memory handle exported from another process !> and returns a device pointer usable in the local process. !> !> Maps memory exported from another process with hipIpcGetMemHandle into !> the current device address space. For contexts on different devices !> hipIpcOpenMemHandle can attempt to enable peer access between the !> devices as if the user called hipDeviceEnablePeerAccess. This behavior is !> controlled by the hipIpcMemLazyEnablePeerAccess flag. !> hipDeviceCanAccessPeer can determine if a mapping is possible. !> !> Contexts that may open hipIpcMemHandles are restricted in the following way. !> hipIpcMemHandles from each device in a given process may only be opened !> by one context per device per other process. !> !> Memory returned from hipIpcOpenMemHandle must be freed with !> hipIpcCloseMemHandle. !> !> Calling hipFree on an exported memory region before calling !> hipIpcCloseMemHandle in the importing context will result in undefined !> behavior. !> !> @param devPtr - Returned device pointer !> @param handle - hipIpcMemHandle to open !> @param flags - Flags for this operation. Must be specified as hipIpcMemLazyEnablePeerAccess !> !> @returns !> hipSuccess, !> hipErrorMapFailed, !> hipErrorInvalidHandle, !> hipErrorTooManyPeers !> !> @note No guarantees are made about the address returned in @p *devPtr. !> In particular, multiple processes may not receive the same address for the same @p handle. !> interface hipIpcOpenMemHandle #ifdef USE_CUDA_NAMES function hipIpcOpenMemHandle_(devPtr,handle,flags) bind(c, name="cudaIpcOpenMemHandle") #else function hipIpcOpenMemHandle_(devPtr,handle,flags) bind(c, name="hipIpcOpenMemHandle") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipIpcOpenMemHandle_ #else integer(kind(hipSuccess)) :: hipIpcOpenMemHandle_ #endif type(c_ptr) :: devPtr type(c_ptr),value :: handle integer(c_int),value :: flags end function end interface !> @brief Close memory mapped with hipIpcOpenMemHandle !> !> Unmaps memory returnd by hipIpcOpenMemHandle. The original allocation !> in the exporting process as well as imported mappings in other processes !> will be unaffected. !> !> Any resources used to enable peer access will be freed if this is the !> last mapping using them. !> !> @param devPtr - Device pointer returned by hipIpcOpenMemHandle !> !> @returns !> hipSuccess, !> hipErrorMapFailed, !> hipErrorInvalidHandle, !> interface hipIpcCloseMemHandle #ifdef USE_CUDA_NAMES function hipIpcCloseMemHandle_(devPtr) bind(c, name="cudaIpcCloseMemHandle") #else function hipIpcCloseMemHandle_(devPtr) bind(c, name="hipIpcCloseMemHandle") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipIpcCloseMemHandle_ #else integer(kind(hipSuccess)) :: hipIpcCloseMemHandle_ #endif type(c_ptr),value :: devPtr end function end interface !> @brief Gets an opaque interprocess handle for an event. !> !> This opaque handle may be copied into other processes and opened with cudaIpcOpenEventHandle. !> Then cudaEventRecord, cudaEventSynchronize, cudaStreamWaitEvent and cudaEventQuery may be used in !> either process. Operations on the imported event after the exported event has been freed with hipEventDestroy !> will result in undefined behavior. !> !> @param[out] handle Pointer to cudaIpcEventHandle to return the opaque event handle !> @param[in] event Event allocated with cudaEventInterprocess and cudaEventDisableTiming flags !> !> @returns hipSuccess, hipErrorInvalidConfiguration, hipErrorInvalidValue !> interface hipIpcGetEventHandle #ifdef USE_CUDA_NAMES function hipIpcGetEventHandle_(handle,event) bind(c, name="cudaIpcGetEventHandle") #else function hipIpcGetEventHandle_(handle,event) bind(c, name="hipIpcGetEventHandle") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipIpcGetEventHandle_ #else integer(kind(hipSuccess)) :: hipIpcGetEventHandle_ #endif type(c_ptr) :: handle type(c_ptr),value :: event end function end interface !> @brief Opens an interprocess event handles. !> !> Opens an interprocess event handle exported from another process with cudaIpcGetEventHandle. The returned !> hipEvent_t behaves like a locally created event with the hipEventDisableTiming flag specified. This event !> need be freed with hipEventDestroy. Operations on the imported event after the exported event has been freed !> with hipEventDestroy will result in undefined behavior. If the function is called within the same process where !> handle is returned by hipIpcGetEventHandle, it will return hipErrorInvalidContext. !> !> @param[out] event Pointer to hipEvent_t to return the event !> @param[in] handle The opaque interprocess handle to open !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidContext !> interface hipIpcOpenEventHandle #ifdef USE_CUDA_NAMES function hipIpcOpenEventHandle_(event,handle) bind(c, name="cudaIpcOpenEventHandle") #else function hipIpcOpenEventHandle_(event,handle) bind(c, name="hipIpcOpenEventHandle") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipIpcOpenEventHandle_ #else integer(kind(hipSuccess)) :: hipIpcOpenEventHandle_ #endif type(c_ptr) :: event type(c_ptr),value :: handle end function end interface !> @brief Set attribute for a specific function !> !> @param [in] func; !> @param [in] attr; !> @param [in] value; !> !> @returns hipSuccess, hipErrorInvalidDeviceFunction, hipErrorInvalidValue !> !> Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is !> ignored on those architectures. !> interface hipFuncSetAttribute #ifdef USE_CUDA_NAMES function hipFuncSetAttribute_(func,attr,myValue) bind(c, name="cudaFuncSetAttribute") #else function hipFuncSetAttribute_(func,attr,myValue) bind(c, name="hipFuncSetAttribute") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFuncSetAttribute_ #else integer(kind(hipSuccess)) :: hipFuncSetAttribute_ #endif type(c_ptr),value :: func integer(kind(hipFuncAttributeMaxDynamicSharedMemorySize)),value :: attr integer(c_int),value :: myValue end function end interface !> @brief Set Cache configuration for a specific function !> !> @param [in] config; !> !> @returns hipSuccess, hipErrorNotInitialized !> Note: AMD devices and some Nvidia GPUS do not support reconfigurable cache. This hint is ignored !> on those architectures. !> interface hipFuncSetCacheConfig #ifdef USE_CUDA_NAMES function hipFuncSetCacheConfig_(func,config) bind(c, name="cudaFuncSetCacheConfig") #else function hipFuncSetCacheConfig_(func,config) bind(c, name="hipFuncSetCacheConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFuncSetCacheConfig_ #else integer(kind(hipSuccess)) :: hipFuncSetCacheConfig_ #endif type(c_ptr),value :: func integer(kind(hipFuncCachePreferNone)),value :: config end function end interface !> @brief Set shared memory configuation for a specific function !> !> @param [in] func !> @param [in] config !> !> @returns hipSuccess, hipErrorInvalidDeviceFunction, hipErrorInvalidValue !> !> Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is !> ignored on those architectures. !> interface hipFuncSetSharedMemConfig #ifdef USE_CUDA_NAMES function hipFuncSetSharedMemConfig_(func,config) bind(c, name="cudaFuncSetSharedMemConfig") #else function hipFuncSetSharedMemConfig_(func,config) bind(c, name="hipFuncSetSharedMemConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFuncSetSharedMemConfig_ #else integer(kind(hipSuccess)) :: hipFuncSetSharedMemConfig_ #endif type(c_ptr),value :: func integer(kind(hipSharedMemBankSizeDefault)),value :: config end function end interface !> @brief Return last error returned by any HIP runtime API call and resets the stored error code to !> hipSuccess !> !> @returns return code from last HIP called from the active host thread !> !> Returns the last error that has been returned by any of the runtime calls in the same host !> thread, and then resets the saved error to hipSuccess. !> !> @see hipGetErrorString, hipGetLastError, hipPeakAtLastError, hipError_t interface hipGetLastError #ifdef USE_CUDA_NAMES function hipGetLastError_() bind(c, name="cudaGetLastError") #else function hipGetLastError_() bind(c, name="hipGetLastError") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetLastError_ #else integer(kind(hipSuccess)) :: hipGetLastError_ #endif end function end interface !> @brief Return last error returned by any HIP runtime API call. !> !> @return hipSuccess !> !> Returns the last error that has been returned by any of the runtime calls in the same host !> thread. Unlike hipGetLastError, this function does not reset the saved error code. !> !> @see hipGetErrorString, hipGetLastError, hipPeakAtLastError, hipError_t interface hipPeekAtLastError #ifdef USE_CUDA_NAMES function hipPeekAtLastError_() bind(c, name="cudaPeekAtLastError") #else function hipPeekAtLastError_() bind(c, name="hipPeekAtLastError") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipPeekAtLastError_ #else integer(kind(hipSuccess)) :: hipPeekAtLastError_ #endif end function end interface !> @brief Create an asynchronous stream. !> !> @param[in, out] stream Valid pointer to hipStream_t. This function writes the memory with the !> newly created stream. !> @return hipSuccess, hipErrorInvalidValue !> !> Create a new asynchronous stream. @p stream returns an opaque handle that can be used to !> reference the newly created stream in subsequent hipStream* commands. The stream is allocated on !> the heap and will remain allocated even if the handle goes out-of-scope. To release the memory !> used by the stream, applicaiton must call hipStreamDestroy. !> !> @return hipSuccess, hipErrorInvalidValue !> !> @see hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy interface hipStreamCreate #ifdef USE_CUDA_NAMES function hipStreamCreate_(stream) bind(c, name="cudaStreamCreate") #else function hipStreamCreate_(stream) bind(c, name="hipStreamCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamCreate_ #else integer(kind(hipSuccess)) :: hipStreamCreate_ #endif type(c_ptr) :: stream end function end interface !> @brief Create an asynchronous stream. !> !> @param[in, out] stream Pointer to new stream !> @param[in ] flags to control stream creation. !> @return hipSuccess, hipErrorInvalidValue !> !> Create a new asynchronous stream. @p stream returns an opaque handle that can be used to !> reference the newly created stream in subsequent hipStream* commands. The stream is allocated on !> the heap and will remain allocated even if the handle goes out-of-scope. To release the memory !> used by the stream, applicaiton must call hipStreamDestroy. Flags controls behavior of the !> stream. See hipStreamDefault, hipStreamNonBlocking. !> !> !> @see hipStreamCreate, hipStreamCreateWithPriority, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy interface hipStreamCreateWithFlags #ifdef USE_CUDA_NAMES function hipStreamCreateWithFlags_(stream,flags) bind(c, name="cudaStreamCreateWithFlags") #else function hipStreamCreateWithFlags_(stream,flags) bind(c, name="hipStreamCreateWithFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamCreateWithFlags_ #else integer(kind(hipSuccess)) :: hipStreamCreateWithFlags_ #endif type(c_ptr) :: stream integer(c_int),value :: flags end function end interface !> @brief Create an asynchronous stream with the specified priority. !> !> @param[in, out] stream Pointer to new stream !> @param[in ] flags to control stream creation. !> @param[in ] priority of the stream. Lower numbers represent higher priorities. !> @return hipSuccess, hipErrorInvalidValue !> !> Create a new asynchronous stream with the specified priority. @p stream returns an opaque handle !> that can be used to reference the newly created stream in subsequent hipStream* commands. The !> stream is allocated on the heap and will remain allocated even if the handle goes out-of-scope. !> To release the memory used by the stream, applicaiton must call hipStreamDestroy. Flags controls !> behavior of the stream. See hipStreamDefault, hipStreamNonBlocking. !> !> !> @see hipStreamCreate, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy interface hipStreamCreateWithPriority #ifdef USE_CUDA_NAMES function hipStreamCreateWithPriority_(stream,flags,priority) bind(c, name="cudaStreamCreateWithPriority") #else function hipStreamCreateWithPriority_(stream,flags,priority) bind(c, name="hipStreamCreateWithPriority") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamCreateWithPriority_ #else integer(kind(hipSuccess)) :: hipStreamCreateWithPriority_ #endif type(c_ptr) :: stream integer(c_int),value :: flags integer(c_int),value :: priority end function end interface !> @brief Returns numerical values that correspond to the least and greatest stream priority. !> !> @param[in, out] leastPriority pointer in which value corresponding to least priority is returned. !> @param[in, out] greatestPriority pointer in which value corresponding to greatest priority is returned. !> !> Returns in *leastPriority and *greatestPriority the numerical values that correspond to the least !> and greatest stream priority respectively. Stream priorities follow a convention where lower numbers !> imply greater priorities. The range of meaningful stream priorities is given by !> [*greatestPriority, *leastPriority]. If the user attempts to create a stream with a priority value !> that is outside the the meaningful range as specified by this API, the priority is automatically !> clamped to within the valid range. interface hipDeviceGetStreamPriorityRange #ifdef USE_CUDA_NAMES function hipDeviceGetStreamPriorityRange_(leastPriority,greatestPriority) bind(c, name="cudaDeviceGetStreamPriorityRange") #else function hipDeviceGetStreamPriorityRange_(leastPriority,greatestPriority) bind(c, name="hipDeviceGetStreamPriorityRange") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceGetStreamPriorityRange_ #else integer(kind(hipSuccess)) :: hipDeviceGetStreamPriorityRange_ #endif type(c_ptr),value :: leastPriority type(c_ptr),value :: greatestPriority end function end interface !> @brief Destroys the specified stream. !> !> @param[in, out] stream Valid pointer to hipStream_t. This function writes the memory with the !> newly created stream. !> @return hipSuccess hipErrorInvalidHandle !> !> Destroys the specified stream. !> !> If commands are still executing on the specified stream, some may complete execution before the !> queue is deleted. !> !> The queue may be destroyed while some commands are still inflight, or may wait for all commands !> queued to the stream before destroying it. !> !> @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamQuery, hipStreamWaitEvent, !> hipStreamSynchronize interface hipStreamDestroy #ifdef USE_CUDA_NAMES function hipStreamDestroy_(stream) bind(c, name="cudaStreamDestroy") #else function hipStreamDestroy_(stream) bind(c, name="hipStreamDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamDestroy_ #else integer(kind(hipSuccess)) :: hipStreamDestroy_ #endif type(c_ptr),value :: stream end function end interface !> @brief Return hipSuccess if all of the operations in the specified @p stream have completed, or !> hipErrorNotReady if not. !> !> @param[in] stream stream to query !> !> @return hipSuccess, hipErrorNotReady, hipErrorInvalidHandle !> !> This is thread-safe and returns a snapshot of the current state of the queue. However, if other !> host threads are sending work to the stream, the status may change immediately after the function !> is called. It is typically used for debug. !> !> @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamWaitEvent, hipStreamSynchronize, !> hipStreamDestroy interface hipStreamQuery #ifdef USE_CUDA_NAMES function hipStreamQuery_(stream) bind(c, name="cudaStreamQuery") #else function hipStreamQuery_(stream) bind(c, name="hipStreamQuery") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamQuery_ #else integer(kind(hipSuccess)) :: hipStreamQuery_ #endif type(c_ptr),value :: stream end function end interface !> @brief Wait for all commands in stream to complete. !> !> @param[in] stream stream identifier. !> !> @return hipSuccess, hipErrorInvalidHandle !> !> This command is host-synchronous : the host will block until the specified stream is empty. !> !> This command follows standard null-stream semantics. Specifically, specifying the null stream !> will cause the command to wait for other streams on the same device to complete all pending !> operations. !> !> This command honors the hipDeviceLaunchBlocking flag, which controls whether the wait is active !> or blocking. !> !> @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamWaitEvent, hipStreamDestroy !> interface hipStreamSynchronize #ifdef USE_CUDA_NAMES function hipStreamSynchronize_(stream) bind(c, name="cudaStreamSynchronize") #else function hipStreamSynchronize_(stream) bind(c, name="hipStreamSynchronize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamSynchronize_ #else integer(kind(hipSuccess)) :: hipStreamSynchronize_ #endif type(c_ptr),value :: stream end function end interface !> @brief Make the specified compute stream wait for an event !> !> @param[in] stream stream to make wait. !> @param[in] event event to wait on !> @param[in] flags control operation [must be 0] !> !> @return hipSuccess, hipErrorInvalidHandle !> !> This function inserts a wait operation into the specified stream. !> All future work submitted to @p stream will wait until @p event reports completion before !> beginning execution. !> !> This function only waits for commands in the current stream to complete. Notably,, this function !> does not impliciy wait for commands in the default stream to complete, even if the specified !> stream is created with hipStreamNonBlocking = 0. !> !> @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamSynchronize, hipStreamDestroy interface hipStreamWaitEvent #ifdef USE_CUDA_NAMES function hipStreamWaitEvent_(stream,event,flags) bind(c, name="cudaStreamWaitEvent") #else function hipStreamWaitEvent_(stream,event,flags) bind(c, name="hipStreamWaitEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamWaitEvent_ #else integer(kind(hipSuccess)) :: hipStreamWaitEvent_ #endif type(c_ptr),value :: stream type(c_ptr),value :: event integer(c_int),value :: flags end function end interface !> @brief Return flags associated with this stream. !> !> @param[in] stream stream to be queried !> @param[in,out] flags Pointer to an unsigned integer in which the stream's flags are returned !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidHandle !> !> @returns hipSuccess hipErrorInvalidValue hipErrorInvalidHandle !> !> Return flags associated with this stream in *@p flags. !> !> @see hipStreamCreateWithFlags interface hipStreamGetFlags #ifdef USE_CUDA_NAMES function hipStreamGetFlags_(stream,flags) bind(c, name="cudaStreamGetFlags") #else function hipStreamGetFlags_(stream,flags) bind(c, name="hipStreamGetFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamGetFlags_ #else integer(kind(hipSuccess)) :: hipStreamGetFlags_ #endif type(c_ptr),value :: stream type(c_ptr),value :: flags end function end interface !> @brief Query the priority of a stream. !> !> @param[in] stream stream to be queried !> @param[in,out] priority Pointer to an unsigned integer in which the stream's priority is returned !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidHandle !> !> @returns hipSuccess hipErrorInvalidValue hipErrorInvalidHandle !> !> Query the priority of a stream. The priority is returned in in priority. !> !> @see hipStreamCreateWithFlags interface hipStreamGetPriority #ifdef USE_CUDA_NAMES function hipStreamGetPriority_(stream,priority) bind(c, name="cudaStreamGetPriority") #else function hipStreamGetPriority_(stream,priority) bind(c, name="hipStreamGetPriority") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamGetPriority_ #else integer(kind(hipSuccess)) :: hipStreamGetPriority_ #endif type(c_ptr),value :: stream type(c_ptr),value :: priority end function end interface !> @brief Create an asynchronous stream with the specified CU mask. !> !> @param[in, out] stream Pointer to new stream !> @param[in ] cuMaskSize Size of CU mask bit array passed in. !> @param[in ] cuMask Bit-vector representing the CU mask. Each active bit represents using one CU. !> The first 32 bits represent the first 32 CUs, and so on. If its size is greater than physical !> CU number (i.e., multiProcessorCount member of hipDeviceProp_t), the extra elements are ignored. !> It is user's responsibility to make sure the input is meaningful. !> @return hipSuccess, hipErrorInvalidHandle, hipErrorInvalidValue !> !> Create a new asynchronous stream with the specified CU mask. @p stream returns an opaque handle !> that can be used to reference the newly created stream in subsequent hipStream* commands. The !> stream is allocated on the heap and will remain allocated even if the handle goes out-of-scope. !> To release the memory used by the stream, application must call hipStreamDestroy. !> !> !> @see hipStreamCreate, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy interface hipExtStreamCreateWithCUMask #ifdef USE_CUDA_NAMES function hipExtStreamCreateWithCUMask_(stream,cuMaskSize,cuMask) bind(c, name="cudaExtStreamCreateWithCUMask") #else function hipExtStreamCreateWithCUMask_(stream,cuMaskSize,cuMask) bind(c, name="hipExtStreamCreateWithCUMask") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExtStreamCreateWithCUMask_ #else integer(kind(hipSuccess)) :: hipExtStreamCreateWithCUMask_ #endif type(c_ptr) :: stream integer(c_int),value :: cuMaskSize type(c_ptr),value :: cuMask end function end interface !> @brief Get CU mask associated with an asynchronous stream !> !> @param[in] stream stream to be queried !> @param[in] cuMaskSize number of the block of memories (uint32_t *) allocated by user !> @param[out] cuMask Pointer to a pre-allocated block of memories (uint32_t *) in which !> the stream's CU mask is returned. The CU mask is returned in a chunck of 32 bits where !> each active bit represents one active CU !> @return hipSuccess, hipErrorInvalidHandle, hipErrorInvalidValue !> !> @see hipStreamCreate, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy interface hipExtStreamGetCUMask #ifdef USE_CUDA_NAMES function hipExtStreamGetCUMask_(stream,cuMaskSize,cuMask) bind(c, name="cudaExtStreamGetCUMask") #else function hipExtStreamGetCUMask_(stream,cuMaskSize,cuMask) bind(c, name="hipExtStreamGetCUMask") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExtStreamGetCUMask_ #else integer(kind(hipSuccess)) :: hipExtStreamGetCUMask_ #endif type(c_ptr),value :: stream integer(c_int),value :: cuMaskSize type(c_ptr),value :: cuMask end function end interface !> @brief Adds a callback to be called on the host after all currently enqueued !> items in the stream have completed. For each !> hipStreamAddCallback call, a callback will be executed exactly once. !> The callback will block later work in the stream until it is finished. !> @param[in] stream - Stream to add callback to !> @param[in] callback - The function to call once preceding stream operations are complete !> @param[in] userData - User specified data to be passed to the callback function !> @param[in] flags - Reserved for future use, must be 0 !> @return hipSuccess, hipErrorInvalidHandle, hipErrorNotSupported !> !> @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamQuery, hipStreamSynchronize, !> hipStreamWaitEvent, hipStreamDestroy, hipStreamCreateWithPriority !> interface hipStreamAddCallback #ifdef USE_CUDA_NAMES function hipStreamAddCallback_(stream,callback,userData,flags) bind(c, name="cudaStreamAddCallback") #else function hipStreamAddCallback_(stream,callback,userData,flags) bind(c, name="hipStreamAddCallback") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamAddCallback_ #else integer(kind(hipSuccess)) :: hipStreamAddCallback_ #endif type(c_ptr),value :: stream type(c_funptr),value :: callback type(c_ptr),value :: userData integer(c_int),value :: flags end function end interface !> @brief Enqueues a write command to the stream.[BETA] !> !> @param [in] stream - Stream identifier !> @param [in] ptr - Pointer to a GPU accessible memory object !> @param [in] value - Value to be written !> @param [in] flags - reserved, ignored for now, will be used in future releases !> !> @returns hipSuccess, hipErrorInvalidValue !> !> Enqueues a write command to the stream, write operation is performed after all earlier commands !> on this stream have completed the execution. !> !> @see hipExtMallocWithFlags, hipFree, hipStreamWriteValue32, hipStreamWaitValue32, !> hipStreamWaitValue64 interface hipStreamWriteValue32 #ifdef USE_CUDA_NAMES function hipStreamWriteValue32_(stream,ptr,myValue,flags) bind(c, name="cudaStreamWriteValue32") #else function hipStreamWriteValue32_(stream,ptr,myValue,flags) bind(c, name="hipStreamWriteValue32") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamWriteValue32_ #else integer(kind(hipSuccess)) :: hipStreamWriteValue32_ #endif type(c_ptr),value :: stream type(c_ptr),value :: ptr integer(c_int),value :: myValue integer(c_int),value :: flags end function end interface !> @brief Enqueues a write command to the stream.[BETA] !> !> @param [in] stream - Stream identifier !> @param [in] ptr - Pointer to a GPU accessible memory object !> @param [in] value - Value to be written !> @param [in] flags - reserved, ignored for now, will be used in future releases !> !> @returns hipSuccess, hipErrorInvalidValue !> !> Enqueues a write command to the stream, write operation is performed after all earlier commands !> on this stream have completed the execution. !> !> @see hipExtMallocWithFlags, hipFree, hipStreamWriteValue32, hipStreamWaitValue32, !> hipStreamWaitValue64 interface hipStreamWriteValue64 #ifdef USE_CUDA_NAMES function hipStreamWriteValue64_(stream,ptr,myValue,flags) bind(c, name="cudaStreamWriteValue64") #else function hipStreamWriteValue64_(stream,ptr,myValue,flags) bind(c, name="hipStreamWriteValue64") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamWriteValue64_ #else integer(kind(hipSuccess)) :: hipStreamWriteValue64_ #endif type(c_ptr),value :: stream type(c_ptr),value :: ptr integer(c_long),value :: myValue integer(c_int),value :: flags end function end interface !> @brief Create an event with the specified flags !> !> @param[in,out] event Returns the newly created event. !> @param[in] flags Flags to control event behavior. Valid values are hipEventDefault, !> hipEventBlockingSync, hipEventDisableTiming, hipEventInterprocess !> hipEventDefault : Default flag. The event will use active synchronization and will support !> timing. Blocking synchronization provides lowest possible latency at the expense of dedicating a !> CPU to poll on the event. !> hipEventBlockingSync : The event will use blocking synchronization : if hipEventSynchronize is !> called on this event, the thread will block until the event completes. This can increase latency !> for the synchroniation but can result in lower power and more resources for other CPU threads. !> hipEventDisableTiming : Disable recording of timing information. Events created with this flag !> would not record profiling data and provide best performance if used for synchronization. !> @warning On AMD platform, hipEventInterprocess support is under development. Use of this flag !> will return an error. !> !> @returns hipSuccess, hipErrorNotInitialized, hipErrorInvalidValue, !> hipErrorLaunchFailure, hipErrorOutOfMemory !> !> @see hipEventCreate, hipEventSynchronize, hipEventDestroy, hipEventElapsedTime interface hipEventCreateWithFlags #ifdef USE_CUDA_NAMES function hipEventCreateWithFlags_(event,flags) bind(c, name="cudaEventCreateWithFlags") #else function hipEventCreateWithFlags_(event,flags) bind(c, name="hipEventCreateWithFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventCreateWithFlags_ #else integer(kind(hipSuccess)) :: hipEventCreateWithFlags_ #endif type(c_ptr) :: event integer(c_int),value :: flags end function end interface !> Create an event !> !> @param[in,out] event Returns the newly created event. !> !> @returns hipSuccess, hipErrorNotInitialized, hipErrorInvalidValue, !> hipErrorLaunchFailure, hipErrorOutOfMemory !> !> @see hipEventCreateWithFlags, hipEventRecord, hipEventQuery, hipEventSynchronize, !> hipEventDestroy, hipEventElapsedTime interface hipEventCreate #ifdef USE_CUDA_NAMES function hipEventCreate_(event) bind(c, name="cudaEventCreate") #else function hipEventCreate_(event) bind(c, name="hipEventCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventCreate_ #else integer(kind(hipSuccess)) :: hipEventCreate_ #endif type(c_ptr) :: event end function end interface !> @brief Record an event in the specified stream. !> !> @param[in] event event to record. !> @param[in] stream stream in which to record event. !> @returns hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized, !> hipErrorInvalidHandle, hipErrorLaunchFailure !> !> hipEventQuery() or hipEventSynchronize() must be used to determine when the event !> transitions from "recording" (after hipEventRecord() is called) to "recorded" !> (when timestamps are set, if requested). !> !> Events which are recorded in a non-NULL stream will transition to !> from recording to "recorded" state when they reach the head of !> the specified stream, after all previous !> commands in that stream have completed executing. !> !> If hipEventRecord() has been previously called on this event, then this call will overwrite any !> existing state in event. !> !> If this function is called on an event that is currently being recorded, results are undefined !> - either outstanding recording may save state into the event, and the order is not guaranteed. !> !> @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventSynchronize, !> hipEventDestroy, hipEventElapsedTime !> interface hipEventRecord #ifdef USE_CUDA_NAMES function hipEventRecord_(event,stream) bind(c, name="cudaEventRecord") #else function hipEventRecord_(event,stream) bind(c, name="hipEventRecord") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventRecord_ #else integer(kind(hipSuccess)) :: hipEventRecord_ #endif type(c_ptr),value :: event type(c_ptr),value :: stream end function end interface !> @brief Destroy the specified event. !> !> @param[in] event Event to destroy. !> @returns hipSuccess, hipErrorNotInitialized, hipErrorInvalidValue, !> hipErrorLaunchFailure !> !> Releases memory associated with the event. If the event is recording but has not completed !> recording when hipEventDestroy() is called, the function will return immediately and the !> completion_future resources will be released later, when the hipDevice is synchronized. !> !> @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventSynchronize, hipEventRecord, !> hipEventElapsedTime !> !> @returns hipSuccess interface hipEventDestroy #ifdef USE_CUDA_NAMES function hipEventDestroy_(event) bind(c, name="cudaEventDestroy") #else function hipEventDestroy_(event) bind(c, name="hipEventDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventDestroy_ #else integer(kind(hipSuccess)) :: hipEventDestroy_ #endif type(c_ptr),value :: event end function end interface !> @brief Wait for an event to complete. !> !> This function will block until the event is ready, waiting for all previous work in the stream !> specified when event was recorded with hipEventRecord(). !> !> If hipEventRecord() has not been called on @p event, this function returns immediately. !> !> TODO-hip- This function needs to support hipEventBlockingSync parameter. !> !> @param[in] event Event on which to wait. !> @returns hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized, !> hipErrorInvalidHandle, hipErrorLaunchFailure !> !> @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventDestroy, hipEventRecord, !> hipEventElapsedTime interface hipEventSynchronize #ifdef USE_CUDA_NAMES function hipEventSynchronize_(event) bind(c, name="cudaEventSynchronize") #else function hipEventSynchronize_(event) bind(c, name="hipEventSynchronize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventSynchronize_ #else integer(kind(hipSuccess)) :: hipEventSynchronize_ #endif type(c_ptr),value :: event end function end interface !> @brief Return the elapsed time between two events. !> !> @param[out] ms : Return time between start and stop in ms. !> @param[in] start : Start event. !> @param[in] stop : Stop event. !> @returns hipSuccess, hipErrorInvalidValue, hipErrorNotReady, hipErrorInvalidHandle, !> hipErrorNotInitialized, hipErrorLaunchFailure !> !> Computes the elapsed time between two events. Time is computed in ms, with !> a resolution of approximately 1 us. !> !> Events which are recorded in a NULL stream will block until all commands !> on all other streams complete execution, and then record the timestamp. !> !> Events which are recorded in a non-NULL stream will record their timestamp !> when they reach the head of the specified stream, after all previous !> commands in that stream have completed executing. Thus the time that !> the event recorded may be significantly after the host calls hipEventRecord(). !> !> If hipEventRecord() has not been called on either event, then hipErrorInvalidHandle is !> returned. If hipEventRecord() has been called on both events, but the timestamp has not yet been !> recorded on one or both events (that is, hipEventQuery() would return hipErrorNotReady on at !> least one of the events), then hipErrorNotReady is returned. !> !> Note, for HIP Events used in kernel dispatch using hipExtLaunchKernelGGL/hipExtLaunchKernel, !> events passed in hipExtLaunchKernelGGL/hipExtLaunchKernel are not explicitly recorded and should !> only be used to get elapsed time for that specific launch. In case events are used across !> multiple dispatches, for example, start and stop events from different hipExtLaunchKernelGGL/ !> hipExtLaunchKernel calls, they will be treated as invalid unrecorded events, HIP will throw !> error "hipErrorInvalidHandle" from hipEventElapsedTime. !> !> @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventDestroy, hipEventRecord, !> hipEventSynchronize interface hipEventElapsedTime #ifdef USE_CUDA_NAMES function hipEventElapsedTime_(ms,start,myStop) bind(c, name="cudaEventElapsedTime") #else function hipEventElapsedTime_(ms,start,myStop) bind(c, name="hipEventElapsedTime") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventElapsedTime_ #else integer(kind(hipSuccess)) :: hipEventElapsedTime_ #endif type(c_ptr),value :: ms type(c_ptr),value :: start type(c_ptr),value :: myStop end function end interface !> @brief Query event status !> !> @param[in] event Event to query. !> @returns hipSuccess, hipErrorNotReady, hipErrorInvalidHandle, hipErrorInvalidValue, !> hipErrorNotInitialized, hipErrorLaunchFailure !> !> Query the status of the specified event. This function will return hipErrorNotReady if all !> commands in the appropriate stream (specified to hipEventRecord()) have completed. If that work !> has not completed, or if hipEventRecord() was not called on the event, then hipSuccess is !> returned. !> !> @see hipEventCreate, hipEventCreateWithFlags, hipEventRecord, hipEventDestroy, !> hipEventSynchronize, hipEventElapsedTime interface hipEventQuery #ifdef USE_CUDA_NAMES function hipEventQuery_(event) bind(c, name="cudaEventQuery") #else function hipEventQuery_(event) bind(c, name="hipEventQuery") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipEventQuery_ #else integer(kind(hipSuccess)) :: hipEventQuery_ #endif type(c_ptr),value :: event end function end interface !> @brief Return attributes for the specified pointer !> !> @param [out] attributes attributes for the specified pointer !> @param [in] ptr pointer to get attributes for !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see hipPointerGetAttribute interface hipPointerGetAttributes #ifdef USE_CUDA_NAMES function hipPointerGetAttributes_(attributes,ptr) bind(c, name="cudaPointerGetAttributes") #else function hipPointerGetAttributes_(attributes,ptr) bind(c, name="hipPointerGetAttributes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipPointerGetAttributes_ #else integer(kind(hipSuccess)) :: hipPointerGetAttributes_ #endif type(c_ptr) :: attributes type(c_ptr),value :: ptr end function end interface !> @brief Returns information about the specified pointer.[BETA] !> !> @param [in, out] data returned pointer attribute value !> @param [in] atribute attribute to query for !> @param [in] ptr pointer to get attributes for !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see hipPointerGetAttributes interface hipPointerGetAttribute #ifdef USE_CUDA_NAMES function hipPointerGetAttribute_(myData,attribute,ptr) bind(c, name="cudaPointerGetAttribute") #else function hipPointerGetAttribute_(myData,attribute,ptr) bind(c, name="hipPointerGetAttribute") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipPointerGetAttribute_ #else integer(kind(hipSuccess)) :: hipPointerGetAttribute_ #endif type(c_ptr),value :: myData integer(kind(HIP_POINTER_ATTRIBUTE_CONTEXT)),value :: attribute type(c_ptr),value :: ptr end function end interface !> @brief Returns information about the specified pointer.[BETA] !> !> @param [in] numAttributes number of attributes to query for !> @param [in] attributes attributes to query for !> @param [in, out] data a two-dimensional containing pointers to memory locations !> where the result of each attribute query will be written to !> @param [in] ptr pointer to get attributes for !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see hipPointerGetAttribute interface hipDrvPointerGetAttributes #ifdef USE_CUDA_NAMES function hipDrvPointerGetAttributes_(numAttributes,attributes,myData,ptr) bind(c, name="cudaDrvPointerGetAttributes") #else function hipDrvPointerGetAttributes_(numAttributes,attributes,myData,ptr) bind(c, name="hipDrvPointerGetAttributes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDrvPointerGetAttributes_ #else integer(kind(hipSuccess)) :: hipDrvPointerGetAttributes_ #endif integer(c_int),value :: numAttributes type(c_ptr),value :: attributes type(c_ptr) :: myData type(c_ptr),value :: ptr end function end interface !> @brief Signals a set of external semaphore objects. !> !> @param[in] extSem_out External semaphores to be waited on !> @param[in] paramsArray Array of semaphore parameters !> @param[in] numExtSems Number of semaphores to wait on !> @param[in] stream Stream to enqueue the wait operations in !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see interface hipSignalExternalSemaphoresAsync #ifdef USE_CUDA_NAMES function hipSignalExternalSemaphoresAsync_(extSemArray,paramsArray,numExtSems,stream) bind(c, name="cudaSignalExternalSemaphoresAsync") #else function hipSignalExternalSemaphoresAsync_(extSemArray,paramsArray,numExtSems,stream) bind(c, name="hipSignalExternalSemaphoresAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipSignalExternalSemaphoresAsync_ #else integer(kind(hipSuccess)) :: hipSignalExternalSemaphoresAsync_ #endif type(c_ptr) :: extSemArray type(c_ptr),value :: paramsArray integer(c_int),value :: numExtSems type(c_ptr),value :: stream end function end interface !> @brief Waits on a set of external semaphore objects !> !> @param[in] extSem_out External semaphores to be waited on !> @param[in] paramsArray Array of semaphore parameters !> @param[in] numExtSems Number of semaphores to wait on !> @param[in] stream Stream to enqueue the wait operations in !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see interface hipWaitExternalSemaphoresAsync #ifdef USE_CUDA_NAMES function hipWaitExternalSemaphoresAsync_(extSemArray,paramsArray,numExtSems,stream) bind(c, name="cudaWaitExternalSemaphoresAsync") #else function hipWaitExternalSemaphoresAsync_(extSemArray,paramsArray,numExtSems,stream) bind(c, name="hipWaitExternalSemaphoresAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipWaitExternalSemaphoresAsync_ #else integer(kind(hipSuccess)) :: hipWaitExternalSemaphoresAsync_ #endif type(c_ptr) :: extSemArray type(c_ptr),value :: paramsArray integer(c_int),value :: numExtSems type(c_ptr),value :: stream end function end interface !> @brief Destroys an external semaphore object and releases any references to the underlying resource. Any outstanding signals or waits must have completed before the semaphore is destroyed. !> !> @param[in] extSem handle to an external memory object !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see interface hipDestroyExternalSemaphore #ifdef USE_CUDA_NAMES function hipDestroyExternalSemaphore_(extSem) bind(c, name="cudaDestroyExternalSemaphore") #else function hipDestroyExternalSemaphore_(extSem) bind(c, name="hipDestroyExternalSemaphore") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDestroyExternalSemaphore_ #else integer(kind(hipSuccess)) :: hipDestroyExternalSemaphore_ #endif type(c_ptr),value :: extSem end function end interface !> @brief Maps a buffer onto an imported memory object. !> !> @param[out] devPtr Returned device pointer to buffer !> @param[in] extMem Handle to external memory object !> @param[in] bufferDesc Buffer descriptor !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see interface hipExternalMemoryGetMappedBuffer #ifdef USE_CUDA_NAMES function hipExternalMemoryGetMappedBuffer_(devPtr,extMem,bufferDesc) bind(c, name="cudaExternalMemoryGetMappedBuffer") #else function hipExternalMemoryGetMappedBuffer_(devPtr,extMem,bufferDesc) bind(c, name="hipExternalMemoryGetMappedBuffer") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExternalMemoryGetMappedBuffer_ #else integer(kind(hipSuccess)) :: hipExternalMemoryGetMappedBuffer_ #endif type(c_ptr) :: devPtr type(c_ptr),value :: extMem type(c_ptr),value :: bufferDesc end function end interface !> @brief Destroys an external memory object. !> !> @param[in] extMem External memory object to be destroyed !> !> @return hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> !> @see interface hipDestroyExternalMemory #ifdef USE_CUDA_NAMES function hipDestroyExternalMemory_(extMem) bind(c, name="cudaDestroyExternalMemory") #else function hipDestroyExternalMemory_(extMem) bind(c, name="hipDestroyExternalMemory") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDestroyExternalMemory_ #else integer(kind(hipSuccess)) :: hipDestroyExternalMemory_ #endif type(c_ptr),value :: extMem end function end interface !> @brief Allocate memory on the default accelerator !> !> @param[out] ptr Pointer to the allocated memory !> @param[in] size Requested memory size !> @param[in] flags Type of memory allocation !> !> If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned. !> !> @return hipSuccess, hipErrorOutOfMemory, hipErrorInvalidValue (bad context, null *ptr) !> !> @see hipMallocPitch, hipFree, hipMallocArray, hipFreeArray, hipMalloc3D, hipMalloc3DArray, !> hipHostFree, hipHostMalloc interface hipExtMallocWithFlags #ifdef USE_CUDA_NAMES function hipExtMallocWithFlags_(ptr,sizeBytes,flags) bind(c, name="cudaExtMallocWithFlags") #else function hipExtMallocWithFlags_(ptr,sizeBytes,flags) bind(c, name="hipExtMallocWithFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExtMallocWithFlags_ #else integer(kind(hipSuccess)) :: hipExtMallocWithFlags_ #endif type(c_ptr) :: ptr integer(c_size_t),value :: sizeBytes integer(c_int),value :: flags end function end interface interface hipMallocHost #ifdef USE_CUDA_NAMES function hipMallocHost_(ptr,mySize) bind(c, name="cudaMallocHost") #else function hipMallocHost_(ptr,mySize) bind(c, name="hipMallocHost") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocHost_ #else integer(kind(hipSuccess)) :: hipMallocHost_ #endif type(c_ptr) :: ptr integer(c_size_t),value :: mySize end function end interface interface hipMemAllocHost #ifdef USE_CUDA_NAMES function hipMemAllocHost_(ptr,mySize) bind(c, name="cudaMemAllocHost") #else function hipMemAllocHost_(ptr,mySize) bind(c, name="hipMemAllocHost") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemAllocHost_ #else integer(kind(hipSuccess)) :: hipMemAllocHost_ #endif type(c_ptr) :: ptr integer(c_size_t),value :: mySize end function end interface !> @brief Prefetches memory to the specified destination device using HIP. !> !> @param [in] dev_ptr pointer to be prefetched !> @param [in] count size in bytes for prefetching !> @param [in] device destination device to prefetch to !> @param [in] stream stream to enqueue prefetch operation !> !> @returns hipSuccess, hipErrorInvalidValue interface hipMemPrefetchAsync #ifdef USE_CUDA_NAMES function hipMemPrefetchAsync_(dev_ptr,count,device,stream) bind(c, name="cudaMemPrefetchAsync") #else function hipMemPrefetchAsync_(dev_ptr,count,device,stream) bind(c, name="hipMemPrefetchAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemPrefetchAsync_ #else integer(kind(hipSuccess)) :: hipMemPrefetchAsync_ #endif type(c_ptr),value :: dev_ptr integer(c_size_t),value :: count integer(c_int),value :: device type(c_ptr),value :: stream end function end interface !> @brief Advise about the usage of a given memory range to HIP. !> !> @param [in] dev_ptr pointer to memory to set the advice for !> @param [in] count size in bytes of the memory range !> @param [in] advice advice to be applied for the specified memory range !> @param [in] device device to apply the advice for !> !> @returns hipSuccess, hipErrorInvalidValue interface hipMemAdvise #ifdef USE_CUDA_NAMES function hipMemAdvise_(dev_ptr,count,advice,device) bind(c, name="cudaMemAdvise") #else function hipMemAdvise_(dev_ptr,count,advice,device) bind(c, name="hipMemAdvise") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemAdvise_ #else integer(kind(hipSuccess)) :: hipMemAdvise_ #endif type(c_ptr),value :: dev_ptr integer(c_size_t),value :: count integer(kind(hipMemAdviseSetReadMostly)),value :: advice integer(c_int),value :: device end function end interface !> @brief Query an attribute of a given memory range in HIP. !> !> @param [in,out] data a pointer to a memory location where the result of each !> attribute query will be written to !> @param [in] data_size the size of data !> @param [in] attribute the attribute to query !> @param [in] dev_ptr start of the range to query !> @param [in] count size of the range to query !> !> @returns hipSuccess, hipErrorInvalidValue interface hipMemRangeGetAttribute #ifdef USE_CUDA_NAMES function hipMemRangeGetAttribute_(myData,data_size,attribute,dev_ptr,count) bind(c, name="cudaMemRangeGetAttribute") #else function hipMemRangeGetAttribute_(myData,data_size,attribute,dev_ptr,count) bind(c, name="hipMemRangeGetAttribute") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemRangeGetAttribute_ #else integer(kind(hipSuccess)) :: hipMemRangeGetAttribute_ #endif type(c_ptr),value :: myData integer(c_size_t),value :: data_size integer(kind(hipMemRangeAttributeReadMostly)),value :: attribute type(c_ptr),value :: dev_ptr integer(c_size_t),value :: count end function end interface !> @brief Query attributes of a given memory range in HIP. !> !> @param [in,out] data a two-dimensional array containing pointers to memory locations !> where the result of each attribute query will be written to !> @param [in] data_sizes an array, containing the sizes of each result !> @param [in] attributes the attribute to query !> @param [in] num_attributes an array of attributes to query (numAttributes and the number !> of attributes in this array should match) !> @param [in] dev_ptr start of the range to query !> @param [in] count size of the range to query !> !> @returns hipSuccess, hipErrorInvalidValue interface hipMemRangeGetAttributes #ifdef USE_CUDA_NAMES function hipMemRangeGetAttributes_(myData,data_sizes,attributes,num_attributes,dev_ptr,count) bind(c, name="cudaMemRangeGetAttributes") #else function hipMemRangeGetAttributes_(myData,data_sizes,attributes,num_attributes,dev_ptr,count) bind(c, name="hipMemRangeGetAttributes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemRangeGetAttributes_ #else integer(kind(hipSuccess)) :: hipMemRangeGetAttributes_ #endif type(c_ptr) :: myData type(c_ptr),value :: data_sizes type(c_ptr),value :: attributes integer(c_size_t),value :: num_attributes type(c_ptr),value :: dev_ptr integer(c_size_t),value :: count end function end interface !> @brief Attach memory to a stream asynchronously in HIP. !> !> @param [in] stream - stream in which to enqueue the attach operation !> @param [in] dev_ptr - pointer to memory (must be a pointer to managed memory or !> to a valid host-accessible region of system-allocated memory) !> @param [in] length - length of memory (defaults to zero) !> @param [in] flags - must be one of hipMemAttachGlobal, hipMemAttachHost or !> hipMemAttachSingle (defaults to hipMemAttachSingle) !> !> @returns hipSuccess, hipErrorInvalidValue interface hipStreamAttachMemAsync #ifdef USE_CUDA_NAMES function hipStreamAttachMemAsync_(stream,dev_ptr,length,flags) bind(c, name="cudaStreamAttachMemAsync") #else function hipStreamAttachMemAsync_(stream,dev_ptr,length,flags) bind(c, name="hipStreamAttachMemAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamAttachMemAsync_ #else integer(kind(hipSuccess)) :: hipStreamAttachMemAsync_ #endif type(c_ptr),value :: stream type(c_ptr),value :: dev_ptr integer(c_size_t),value :: length integer(c_int),value :: flags end function end interface interface hipHostAlloc #ifdef USE_CUDA_NAMES function hipHostAlloc_(ptr,mySize,flags) bind(c, name="cudaHostAlloc") #else function hipHostAlloc_(ptr,mySize,flags) bind(c, name="hipHostAlloc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostAlloc_ #else integer(kind(hipSuccess)) :: hipHostAlloc_ #endif type(c_ptr) :: ptr integer(c_size_t),value :: mySize integer(c_int),value :: flags end function end interface !> Allocates at least width (in bytes) * height bytes of linear memory !> Padding may occur to ensure alighnment requirements are met for the given row !> The change in width size due to padding will be returned in *pitch. !> Currently the alignment is set to 128 bytes !> !> @param[out] ptr Pointer to the allocated device memory !> @param[out] pitch Pitch for allocation (in bytes) !> @param[in] width Requested pitched allocation width (in bytes) !> @param[in] height Requested pitched allocation height !> !> If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned. !> !> @return Error code !> !> @see hipMalloc, hipFree, hipMallocArray, hipFreeArray, hipHostFree, hipMalloc3D, !> hipMalloc3DArray, hipHostMalloc interface hipMallocPitch #ifdef USE_CUDA_NAMES function hipMallocPitch_(ptr,pitch,width,height) bind(c, name="cudaMallocPitch") #else function hipMallocPitch_(ptr,pitch,width,height) bind(c, name="hipMallocPitch") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocPitch_ #else integer(kind(hipSuccess)) :: hipMallocPitch_ #endif type(c_ptr) :: ptr integer(c_size_t) :: pitch integer(c_size_t),value :: width integer(c_size_t),value :: height end function end interface !> Allocates at least width (in bytes) * height bytes of linear memory !> Padding may occur to ensure alighnment requirements are met for the given row !> The change in width size due to padding will be returned in *pitch. !> Currently the alignment is set to 128 bytes !> !> @param[out] dptr Pointer to the allocated device memory !> @param[out] pitch Pitch for allocation (in bytes) !> @param[in] width Requested pitched allocation width (in bytes) !> @param[in] height Requested pitched allocation height !> !> If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned. !> The intended usage of pitch is as a separate parameter of the allocation, used to compute addresses within the 2D array. !> Given the row and column of an array element of type T, the address is computed as: !> T* pElement = (T*)((char*)BaseAddress + Row * Pitch) + Column; !> !> @return Error code !> !> @see hipMalloc, hipFree, hipMallocArray, hipFreeArray, hipHostFree, hipMalloc3D, !> hipMalloc3DArray, hipHostMalloc interface hipMemAllocPitch #ifdef USE_CUDA_NAMES function hipMemAllocPitch_(dptr,pitch,widthInBytes,height,elementSizeBytes) bind(c, name="cudaMemAllocPitch") #else function hipMemAllocPitch_(dptr,pitch,widthInBytes,height,elementSizeBytes) bind(c, name="hipMemAllocPitch") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemAllocPitch_ #else integer(kind(hipSuccess)) :: hipMemAllocPitch_ #endif type(c_ptr) :: dptr integer(c_size_t) :: pitch integer(c_size_t),value :: widthInBytes integer(c_size_t),value :: height integer(c_int),value :: elementSizeBytes end function end interface interface hipFreeHost #ifdef USE_CUDA_NAMES function hipFreeHost_(ptr) bind(c, name="cudaFreeHost") #else function hipFreeHost_(ptr) bind(c, name="hipFreeHost") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFreeHost_ #else integer(kind(hipSuccess)) :: hipFreeHost_ #endif type(c_ptr),value :: ptr end function end interface interface hipMemcpyWithStream #ifdef USE_CUDA_NAMES function hipMemcpyWithStream_(dst,src,sizeBytes,myKind,stream) bind(c, name="cudaMemcpyWithStream") #else function hipMemcpyWithStream_(dst,src,sizeBytes,myKind,stream) bind(c, name="hipMemcpyWithStream") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyWithStream_ #else integer(kind(hipSuccess)) :: hipMemcpyWithStream_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function end interface !> @brief Copy data from Host to Device !> !> @param[out] dst Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> !> @return hipSuccess, hipErrorDeInitialized, hipErrorNotInitialized, hipErrorInvalidContext, !> hipErrorInvalidValue !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer interface hipMemcpyHtoD #ifdef USE_CUDA_NAMES function hipMemcpyHtoD_(dst,src,sizeBytes) bind(c, name="cudaMemcpyHtoD") #else function hipMemcpyHtoD_(dst,src,sizeBytes) bind(c, name="hipMemcpyHtoD") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyHtoD_ #else integer(kind(hipSuccess)) :: hipMemcpyHtoD_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes end function end interface !> @brief Copy data from Device to Host !> !> @param[out] dst Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> !> @return hipSuccess, hipErrorDeInitialized, hipErrorNotInitialized, hipErrorInvalidContext, !> hipErrorInvalidValue !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer interface hipMemcpyDtoH #ifdef USE_CUDA_NAMES function hipMemcpyDtoH_(dst,src,sizeBytes) bind(c, name="cudaMemcpyDtoH") #else function hipMemcpyDtoH_(dst,src,sizeBytes) bind(c, name="hipMemcpyDtoH") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyDtoH_ #else integer(kind(hipSuccess)) :: hipMemcpyDtoH_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes end function end interface !> @brief Copy data from Device to Device !> !> @param[out] dst Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> !> @return hipSuccess, hipErrorDeInitialized, hipErrorNotInitialized, hipErrorInvalidContext, !> hipErrorInvalidValue !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer interface hipMemcpyDtoD #ifdef USE_CUDA_NAMES function hipMemcpyDtoD_(dst,src,sizeBytes) bind(c, name="cudaMemcpyDtoD") #else function hipMemcpyDtoD_(dst,src,sizeBytes) bind(c, name="hipMemcpyDtoD") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyDtoD_ #else integer(kind(hipSuccess)) :: hipMemcpyDtoD_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes end function end interface !> @brief Copy data from Host to Device asynchronously !> !> @param[out] dst Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> !> @return hipSuccess, hipErrorDeInitialized, hipErrorNotInitialized, hipErrorInvalidContext, !> hipErrorInvalidValue !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer interface hipMemcpyHtoDAsync #ifdef USE_CUDA_NAMES function hipMemcpyHtoDAsync_(dst,src,sizeBytes,stream) bind(c, name="cudaMemcpyHtoDAsync") #else function hipMemcpyHtoDAsync_(dst,src,sizeBytes,stream) bind(c, name="hipMemcpyHtoDAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyHtoDAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyHtoDAsync_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes type(c_ptr),value :: stream end function end interface !> @brief Copy data from Device to Host asynchronously !> !> @param[out] dst Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> !> @return hipSuccess, hipErrorDeInitialized, hipErrorNotInitialized, hipErrorInvalidContext, !> hipErrorInvalidValue !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer interface hipMemcpyDtoHAsync #ifdef USE_CUDA_NAMES function hipMemcpyDtoHAsync_(dst,src,sizeBytes,stream) bind(c, name="cudaMemcpyDtoHAsync") #else function hipMemcpyDtoHAsync_(dst,src,sizeBytes,stream) bind(c, name="hipMemcpyDtoHAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyDtoHAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyDtoHAsync_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes type(c_ptr),value :: stream end function end interface !> @brief Copy data from Device to Device asynchronously !> !> @param[out] dst Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> !> @return hipSuccess, hipErrorDeInitialized, hipErrorNotInitialized, hipErrorInvalidContext, !> hipErrorInvalidValue !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer interface hipMemcpyDtoDAsync #ifdef USE_CUDA_NAMES function hipMemcpyDtoDAsync_(dst,src,sizeBytes,stream) bind(c, name="cudaMemcpyDtoDAsync") #else function hipMemcpyDtoDAsync_(dst,src,sizeBytes,stream) bind(c, name="hipMemcpyDtoDAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyDtoDAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyDtoDAsync_ #endif type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes type(c_ptr),value :: stream end function end interface !> @brief Returns a global pointer from a module. !> Returns in *dptr and *bytes the pointer and size of the global of name name located in module hmod. !> If no variable of that name exists, it returns hipErrorNotFound. Both parameters dptr and bytes are optional. !> If one of them is NULL, it is ignored and hipSuccess is returned. !> !> @param[out] dptr Returned global device pointer !> @param[out] bytes Returned global size in bytes !> @param[in] hmod Module to retrieve global from !> @param[in] name Name of global to retrieve !> !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotFound, hipErrorInvalidContext !> interface hipModuleGetGlobal #ifdef USE_CUDA_NAMES function hipModuleGetGlobal_(dptr,bytes,hmod,name) bind(c, name="cudaModuleGetGlobal") #else function hipModuleGetGlobal_(dptr,bytes,hmod,name) bind(c, name="hipModuleGetGlobal") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleGetGlobal_ #else integer(kind(hipSuccess)) :: hipModuleGetGlobal_ #endif type(c_ptr) :: dptr integer(c_size_t) :: bytes type(c_ptr),value :: hmod type(c_ptr),value :: name end function end interface interface hipGetSymbolAddress #ifdef USE_CUDA_NAMES function hipGetSymbolAddress_(devPtr,symbol) bind(c, name="cudaGetSymbolAddress") #else function hipGetSymbolAddress_(devPtr,symbol) bind(c, name="hipGetSymbolAddress") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetSymbolAddress_ #else integer(kind(hipSuccess)) :: hipGetSymbolAddress_ #endif type(c_ptr) :: devPtr type(c_ptr),value :: symbol end function end interface interface hipGetSymbolSize #ifdef USE_CUDA_NAMES function hipGetSymbolSize_(mySize,symbol) bind(c, name="cudaGetSymbolSize") #else function hipGetSymbolSize_(mySize,symbol) bind(c, name="hipGetSymbolSize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetSymbolSize_ #else integer(kind(hipSuccess)) :: hipGetSymbolSize_ #endif integer(c_size_t) :: mySize type(c_ptr),value :: symbol end function end interface interface hipMemcpyToSymbol #ifdef USE_CUDA_NAMES function hipMemcpyToSymbol_(symbol,src,sizeBytes,offset,myKind) bind(c, name="cudaMemcpyToSymbol") #else function hipMemcpyToSymbol_(symbol,src,sizeBytes,offset,myKind) bind(c, name="hipMemcpyToSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyToSymbol_ #else integer(kind(hipSuccess)) :: hipMemcpyToSymbol_ #endif type(c_ptr),value :: symbol type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface interface hipMemcpyToSymbolAsync #ifdef USE_CUDA_NAMES function hipMemcpyToSymbolAsync_(symbol,src,sizeBytes,offset,myKind,stream) bind(c, name="cudaMemcpyToSymbolAsync") #else function hipMemcpyToSymbolAsync_(symbol,src,sizeBytes,offset,myKind,stream) bind(c, name="hipMemcpyToSymbolAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyToSymbolAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyToSymbolAsync_ #endif type(c_ptr),value :: symbol type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function end interface interface hipMemcpyFromSymbol #ifdef USE_CUDA_NAMES function hipMemcpyFromSymbol_(dst,symbol,sizeBytes,offset,myKind) bind(c, name="cudaMemcpyFromSymbol") #else function hipMemcpyFromSymbol_(dst,symbol,sizeBytes,offset,myKind) bind(c, name="hipMemcpyFromSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyFromSymbol_ #else integer(kind(hipSuccess)) :: hipMemcpyFromSymbol_ #endif type(c_ptr),value :: dst type(c_ptr),value :: symbol integer(c_size_t),value :: sizeBytes integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface interface hipMemcpyFromSymbolAsync #ifdef USE_CUDA_NAMES function hipMemcpyFromSymbolAsync_(dst,symbol,sizeBytes,offset,myKind,stream) bind(c, name="cudaMemcpyFromSymbolAsync") #else function hipMemcpyFromSymbolAsync_(dst,symbol,sizeBytes,offset,myKind,stream) bind(c, name="hipMemcpyFromSymbolAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyFromSymbolAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyFromSymbolAsync_ #endif type(c_ptr),value :: dst type(c_ptr),value :: symbol integer(c_size_t),value :: sizeBytes integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function end interface !> @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the ant !> byte value value. !> !> @param[out] dst Data being filled !> @param[in] ant value to be set !> @param[in] sizeBytes Data size in bytes !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized interface hipMemset #ifdef USE_CUDA_NAMES function hipMemset_(dst,myValue,sizeBytes) bind(c, name="cudaMemset") #else function hipMemset_(dst,myValue,sizeBytes) bind(c, name="hipMemset") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemset_ #else integer(kind(hipSuccess)) :: hipMemset_ #endif type(c_ptr),value :: dst integer(c_int),value :: myValue integer(c_size_t),value :: sizeBytes end function end interface !> @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the ant !> byte value value. !> !> @param[out] dst Data ptr to be filled !> @param[in] ant value to be set !> @param[in] number of values to be set !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized interface hipMemsetD8 #ifdef USE_CUDA_NAMES function hipMemsetD8_(dest,myValue,count) bind(c, name="cudaMemsetD8") #else function hipMemsetD8_(dest,myValue,count) bind(c, name="hipMemsetD8") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetD8_ #else integer(kind(hipSuccess)) :: hipMemsetD8_ #endif type(c_ptr),value :: dest character(c_char),value :: myValue integer(c_size_t),value :: count end function end interface !> @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the ant !> byte value value. !> !> hipMemsetD8Async() is asynchronous with respect to the host, so the call may return before the !> memset is complete. The operation can optionally be associated to a stream by passing a non-zero !> stream argument. If stream is non-zero, the operation may overlap with operations in other !> streams. !> !> @param[out] dst Data ptr to be filled !> @param[in] ant value to be set !> @param[in] number of values to be set !> @param[in] stream - Stream identifier !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized interface hipMemsetD8Async #ifdef USE_CUDA_NAMES function hipMemsetD8Async_(dest,myValue,count,stream) bind(c, name="cudaMemsetD8Async") #else function hipMemsetD8Async_(dest,myValue,count,stream) bind(c, name="hipMemsetD8Async") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetD8Async_ #else integer(kind(hipSuccess)) :: hipMemsetD8Async_ #endif type(c_ptr),value :: dest character(c_char),value :: myValue integer(c_size_t),value :: count type(c_ptr),value :: stream end function end interface !> @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the ant !> short value value. !> !> @param[out] dst Data ptr to be filled !> @param[in] ant value to be set !> @param[in] number of values to be set !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized interface hipMemsetD16 #ifdef USE_CUDA_NAMES function hipMemsetD16_(dest,myValue,count) bind(c, name="cudaMemsetD16") #else function hipMemsetD16_(dest,myValue,count) bind(c, name="hipMemsetD16") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetD16_ #else integer(kind(hipSuccess)) :: hipMemsetD16_ #endif type(c_ptr),value :: dest integer(c_short),value :: myValue integer(c_size_t),value :: count end function end interface !> @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the ant !> short value value. !> !> hipMemsetD16Async() is asynchronous with respect to the host, so the call may return before the !> memset is complete. The operation can optionally be associated to a stream by passing a non-zero !> stream argument. If stream is non-zero, the operation may overlap with operations in other !> streams. !> !> @param[out] dst Data ptr to be filled !> @param[in] ant value to be set !> @param[in] number of values to be set !> @param[in] stream - Stream identifier !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized interface hipMemsetD16Async #ifdef USE_CUDA_NAMES function hipMemsetD16Async_(dest,myValue,count,stream) bind(c, name="cudaMemsetD16Async") #else function hipMemsetD16Async_(dest,myValue,count,stream) bind(c, name="hipMemsetD16Async") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetD16Async_ #else integer(kind(hipSuccess)) :: hipMemsetD16Async_ #endif type(c_ptr),value :: dest integer(c_short),value :: myValue integer(c_size_t),value :: count type(c_ptr),value :: stream end function end interface !> @brief Fills the memory area pointed to by dest with the ant integer !> value for specified number of times. !> !> @param[out] dst Data being filled !> @param[in] ant value to be set !> @param[in] number of values to be set !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized interface hipMemsetD32 #ifdef USE_CUDA_NAMES function hipMemsetD32_(dest,myValue,count) bind(c, name="cudaMemsetD32") #else function hipMemsetD32_(dest,myValue,count) bind(c, name="hipMemsetD32") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetD32_ #else integer(kind(hipSuccess)) :: hipMemsetD32_ #endif type(c_ptr),value :: dest integer(c_int),value :: myValue integer(c_size_t),value :: count end function end interface !> @brief Fills the first sizeBytes bytes of the memory area pointed to by dev with the ant !> byte value value. !> !> hipMemsetAsync() is asynchronous with respect to the host, so the call may return before the !> memset is complete. The operation can optionally be associated to a stream by passing a non-zero !> stream argument. If stream is non-zero, the operation may overlap with operations in other !> streams. !> !> @param[out] dst Pointer to device memory !> @param[in] value - Value to set for each byte of specified memory !> @param[in] sizeBytes - Size in bytes to set !> @param[in] stream - Stream identifier !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree interface hipMemsetAsync #ifdef USE_CUDA_NAMES function hipMemsetAsync_(dst,myValue,sizeBytes,stream) bind(c, name="cudaMemsetAsync") #else function hipMemsetAsync_(dst,myValue,sizeBytes,stream) bind(c, name="hipMemsetAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetAsync_ #else integer(kind(hipSuccess)) :: hipMemsetAsync_ #endif type(c_ptr),value :: dst integer(c_int),value :: myValue integer(c_size_t),value :: sizeBytes type(c_ptr),value :: stream end function end interface !> @brief Fills the memory area pointed to by dev with the ant integer !> value for specified number of times. !> !> hipMemsetD32Async() is asynchronous with respect to the host, so the call may return before the !> memset is complete. The operation can optionally be associated to a stream by passing a non-zero !> stream argument. If stream is non-zero, the operation may overlap with operations in other !> streams. !> !> @param[out] dst Pointer to device memory !> @param[in] value - Value to set for each byte of specified memory !> @param[in] count - number of values to be set !> @param[in] stream - Stream identifier !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree interface hipMemsetD32Async #ifdef USE_CUDA_NAMES function hipMemsetD32Async_(dst,myValue,count,stream) bind(c, name="cudaMemsetD32Async") #else function hipMemsetD32Async_(dst,myValue,count,stream) bind(c, name="hipMemsetD32Async") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemsetD32Async_ #else integer(kind(hipSuccess)) :: hipMemsetD32Async_ #endif type(c_ptr),value :: dst integer(c_int),value :: myValue integer(c_size_t),value :: count type(c_ptr),value :: stream end function end interface !> @brief Fills the memory area pointed to by dst with the ant value. !> !> @param[out] dst Pointer to device memory !> @param[in] pitch - data size in bytes !> @param[in] value - ant value to be set !> @param[in] width !> @param[in] height !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree interface hipMemset2D #ifdef USE_CUDA_NAMES function hipMemset2D_(dst,pitch,myValue,width,height) bind(c, name="cudaMemset2D") #else function hipMemset2D_(dst,pitch,myValue,width,height) bind(c, name="hipMemset2D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemset2D_ #else integer(kind(hipSuccess)) :: hipMemset2D_ #endif type(c_ptr),value :: dst integer(c_size_t),value :: pitch integer(c_int),value :: myValue integer(c_size_t),value :: width integer(c_size_t),value :: height end function end interface !> @brief Fills asynchronously the memory area pointed to by dst with the ant value. !> !> @param[in] dst Pointer to device memory !> @param[in] pitch - data size in bytes !> @param[in] value - ant value to be set !> @param[in] width !> @param[in] height !> @param[in] stream !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree interface hipMemset2DAsync #ifdef USE_CUDA_NAMES function hipMemset2DAsync_(dst,pitch,myValue,width,height,stream) bind(c, name="cudaMemset2DAsync") #else function hipMemset2DAsync_(dst,pitch,myValue,width,height,stream) bind(c, name="hipMemset2DAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemset2DAsync_ #else integer(kind(hipSuccess)) :: hipMemset2DAsync_ #endif type(c_ptr),value :: dst integer(c_size_t),value :: pitch integer(c_int),value :: myValue integer(c_size_t),value :: width integer(c_size_t),value :: height type(c_ptr),value :: stream end function end interface !> @brief Fills synchronously the memory area pointed to by pitchedDevPtr with the ant value. !> !> @param[in] pitchedDevPtr !> @param[in] value - ant value to be set !> @param[in] extent !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree interface hipMemset3D #ifdef USE_CUDA_NAMES function hipMemset3D_(pitchedDevPtr,myValue,extent) bind(c, name="cudaMemset3D") #else function hipMemset3D_(pitchedDevPtr,myValue,extent) bind(c, name="hipMemset3D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemset3D_ #else integer(kind(hipSuccess)) :: hipMemset3D_ #endif type(c_ptr),value :: pitchedDevPtr integer(c_int),value :: myValue type(c_ptr),value :: extent end function end interface !> @brief Fills asynchronously the memory area pointed to by pitchedDevPtr with the ant value. !> !> @param[in] pitchedDevPtr !> @param[in] value - ant value to be set !> @param[in] extent !> @param[in] stream !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree interface hipMemset3DAsync #ifdef USE_CUDA_NAMES function hipMemset3DAsync_(pitchedDevPtr,myValue,extent,stream) bind(c, name="cudaMemset3DAsync") #else function hipMemset3DAsync_(pitchedDevPtr,myValue,extent,stream) bind(c, name="hipMemset3DAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemset3DAsync_ #else integer(kind(hipSuccess)) :: hipMemset3DAsync_ #endif type(c_ptr),value :: pitchedDevPtr integer(c_int),value :: myValue type(c_ptr),value :: extent type(c_ptr),value :: stream end function end interface !> @brief Query memory info. !> Return snapshot of free memory, and total allocatable memory on the device. !> !> Returns in *free a snapshot of the current free memory. !> @returns hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue !> @warning On HCC, the free memory only accounts for memory allocated by this process and may be !> optimistic. interface hipMemGetInfo #ifdef USE_CUDA_NAMES function hipMemGetInfo_(free,total) bind(c, name="cudaMemGetInfo") #else function hipMemGetInfo_(free,total) bind(c, name="hipMemGetInfo") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemGetInfo_ #else integer(kind(hipSuccess)) :: hipMemGetInfo_ #endif integer(c_size_t) :: free integer(c_size_t) :: total end function end interface interface hipMemPtrGetInfo #ifdef USE_CUDA_NAMES function hipMemPtrGetInfo_(ptr,mySize) bind(c, name="cudaMemPtrGetInfo") #else function hipMemPtrGetInfo_(ptr,mySize) bind(c, name="hipMemPtrGetInfo") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemPtrGetInfo_ #else integer(kind(hipSuccess)) :: hipMemPtrGetInfo_ #endif type(c_ptr),value :: ptr integer(c_size_t) :: mySize end function end interface !> @brief Allocate an array on the device. !> !> @param[out] array Pointer to allocated array in device memory !> @param[in] desc Requested channel format !> @param[in] width Requested array allocation width !> @param[in] height Requested array allocation height !> @param[in] flags Requested properties of allocated array !> @return hipSuccess, hipErrorOutOfMemory !> !> @see hipMalloc, hipMallocPitch, hipFree, hipFreeArray, hipHostMalloc, hipHostFree interface hipMallocArray #ifdef USE_CUDA_NAMES function hipMallocArray_(array,desc,width,height,flags) bind(c, name="cudaMallocArray") #else function hipMallocArray_(array,desc,width,height,flags) bind(c, name="hipMallocArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocArray_ #else integer(kind(hipSuccess)) :: hipMallocArray_ #endif type(c_ptr) :: array type(c_ptr) :: desc integer(c_size_t),value :: width integer(c_size_t),value :: height integer(c_int),value :: flags end function end interface interface hipArrayCreate #ifdef USE_CUDA_NAMES function hipArrayCreate_(pHandle,pAllocateArray) bind(c, name="cudaArrayCreate") #else function hipArrayCreate_(pHandle,pAllocateArray) bind(c, name="hipArrayCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipArrayCreate_ #else integer(kind(hipSuccess)) :: hipArrayCreate_ #endif type(c_ptr) :: pHandle type(c_ptr) :: pAllocateArray end function end interface interface hipArrayDestroy #ifdef USE_CUDA_NAMES function hipArrayDestroy_(array) bind(c, name="cudaArrayDestroy") #else function hipArrayDestroy_(array) bind(c, name="hipArrayDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipArrayDestroy_ #else integer(kind(hipSuccess)) :: hipArrayDestroy_ #endif type(c_ptr) :: array end function end interface interface hipArray3DCreate #ifdef USE_CUDA_NAMES function hipArray3DCreate_(array,pAllocateArray) bind(c, name="cudaArray3DCreate") #else function hipArray3DCreate_(array,pAllocateArray) bind(c, name="hipArray3DCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipArray3DCreate_ #else integer(kind(hipSuccess)) :: hipArray3DCreate_ #endif type(c_ptr) :: array type(c_ptr) :: pAllocateArray end function end interface interface hipMalloc3D #ifdef USE_CUDA_NAMES function hipMalloc3D_(pitchedDevPtr,extent) bind(c, name="cudaMalloc3D") #else function hipMalloc3D_(pitchedDevPtr,extent) bind(c, name="hipMalloc3D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc3D_ #else integer(kind(hipSuccess)) :: hipMalloc3D_ #endif type(c_ptr) :: pitchedDevPtr type(c_ptr),value :: extent end function end interface !> @brief Frees an array on the device. !> !> @param[in] array Pointer to array to free !> @return hipSuccess, hipErrorInvalidValue, hipErrorNotInitialized !> !> @see hipMalloc, hipMallocPitch, hipFree, hipMallocArray, hipHostMalloc, hipHostFree interface hipFreeArray #ifdef USE_CUDA_NAMES function hipFreeArray_(array) bind(c, name="cudaFreeArray") #else function hipFreeArray_(array) bind(c, name="hipFreeArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFreeArray_ #else integer(kind(hipSuccess)) :: hipFreeArray_ #endif type(c_ptr) :: array end function end interface !> @brief Frees a mipmapped array on the device !> !> @param[in] mipmappedArray - Pointer to mipmapped array to free !> !> @return hipSuccess, hipErrorInvalidValue interface hipFreeMipmappedArray #ifdef USE_CUDA_NAMES function hipFreeMipmappedArray_(mipmappedArray) bind(c, name="cudaFreeMipmappedArray") #else function hipFreeMipmappedArray_(mipmappedArray) bind(c, name="hipFreeMipmappedArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFreeMipmappedArray_ #else integer(kind(hipSuccess)) :: hipFreeMipmappedArray_ #endif type(c_ptr),value :: mipmappedArray end function end interface !> @brief Allocate an array on the device. !> !> @param[out] array Pointer to allocated array in device memory !> @param[in] desc Requested channel format !> @param[in] extent Requested array allocation width, height and depth !> @param[in] flags Requested properties of allocated array !> @return hipSuccess, hipErrorOutOfMemory !> !> @see hipMalloc, hipMallocPitch, hipFree, hipFreeArray, hipHostMalloc, hipHostFree interface hipMalloc3DArray #ifdef USE_CUDA_NAMES function hipMalloc3DArray_(array,desc,extent,flags) bind(c, name="cudaMalloc3DArray") #else function hipMalloc3DArray_(array,desc,extent,flags) bind(c, name="hipMalloc3DArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMalloc3DArray_ #else integer(kind(hipSuccess)) :: hipMalloc3DArray_ #endif type(c_ptr) :: array type(c_ptr) :: desc type(c_ptr),value :: extent integer(c_int),value :: flags end function end interface !> @brief Allocate a mipmapped array on the device !> !> @param[out] mipmappedArray - Pointer to allocated mipmapped array in device memory !> @param[in] desc - Requested channel format !> @param[in] extent - Requested allocation size (width field in elements) !> @param[in] numLevels - Number of mipmap levels to allocate !> @param[in] flags - Flags for extensions !> !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryAllocation interface hipMallocMipmappedArray #ifdef USE_CUDA_NAMES function hipMallocMipmappedArray_(mipmappedArray,desc,extent,numLevels,flags) bind(c, name="cudaMallocMipmappedArray") #else function hipMallocMipmappedArray_(mipmappedArray,desc,extent,numLevels,flags) bind(c, name="hipMallocMipmappedArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMallocMipmappedArray_ #else integer(kind(hipSuccess)) :: hipMallocMipmappedArray_ #endif type(c_ptr) :: mipmappedArray type(c_ptr) :: desc type(c_ptr),value :: extent integer(c_int),value :: numLevels integer(c_int),value :: flags end function end interface !> @brief Gets a mipmap level of a HIP mipmapped array !> !> @param[out] levelArray - Returned mipmap level HIP array !> @param[in] mipmappedArray - HIP mipmapped array !> @param[in] level - Mipmap level !> !> @return hipSuccess, hipErrorInvalidValue interface hipGetMipmappedArrayLevel #ifdef USE_CUDA_NAMES function hipGetMipmappedArrayLevel_(levelArray,mipmappedArray,level) bind(c, name="cudaGetMipmappedArrayLevel") #else function hipGetMipmappedArrayLevel_(levelArray,mipmappedArray,level) bind(c, name="hipGetMipmappedArrayLevel") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetMipmappedArrayLevel_ #else integer(kind(hipSuccess)) :: hipGetMipmappedArrayLevel_ #endif type(c_ptr) :: levelArray type(c_ptr),value :: mipmappedArray integer(c_int),value :: level end function end interface !> @brief Copies memory for 2D arrays. !> @param[in] pCopy Parameters for the memory copy !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2D, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, !> hipMemcpyToSymbol, hipMemcpyAsync interface hipMemcpyParam2D #ifdef USE_CUDA_NAMES function hipMemcpyParam2D_(pCopy) bind(c, name="cudaMemcpyParam2D") #else function hipMemcpyParam2D_(pCopy) bind(c, name="hipMemcpyParam2D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyParam2D_ #else integer(kind(hipSuccess)) :: hipMemcpyParam2D_ #endif type(c_ptr) :: pCopy end function end interface !> @brief Copies memory for 2D arrays. !> @param[in] pCopy Parameters for the memory copy !> @param[in] stream Stream to use !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2D, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, !> hipMemcpyToSymbol, hipMemcpyAsync interface hipMemcpyParam2DAsync #ifdef USE_CUDA_NAMES function hipMemcpyParam2DAsync_(pCopy,stream) bind(c, name="cudaMemcpyParam2DAsync") #else function hipMemcpyParam2DAsync_(pCopy,stream) bind(c, name="hipMemcpyParam2DAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyParam2DAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyParam2DAsync_ #endif type(c_ptr) :: pCopy type(c_ptr),value :: stream end function end interface !> @brief Copies data between host and device. !> !> @param[in] dst Destination memory address !> @param[in] wOffset Destination starting X offset !> @param[in] hOffset Destination starting Y offset !> @param[in] src Source memory address !> @param[in] spitch Pitch of source memory !> @param[in] width Width of matrix transfer (columns in bytes) !> @param[in] height Height of matrix transfer (rows) !> @param[in] kind Type of transfer !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpyToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpy2DToArray #ifdef USE_CUDA_NAMES function hipMemcpy2DToArray_(dst,wOffset,hOffset,src,spitch,width,height,myKind) bind(c, name="cudaMemcpy2DToArray") #else function hipMemcpy2DToArray_(dst,wOffset,hOffset,src,spitch,width,height,myKind) bind(c, name="hipMemcpy2DToArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DToArray_ #else integer(kind(hipSuccess)) :: hipMemcpy2DToArray_ #endif type(c_ptr) :: dst integer(c_size_t),value :: wOffset integer(c_size_t),value :: hOffset type(c_ptr),value :: src integer(c_size_t),value :: spitch integer(c_size_t),value :: width integer(c_size_t),value :: height integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Copies data between host and device. !> !> @param[in] dst Destination memory address !> @param[in] wOffset Destination starting X offset !> @param[in] hOffset Destination starting Y offset !> @param[in] src Source memory address !> @param[in] spitch Pitch of source memory !> @param[in] width Width of matrix transfer (columns in bytes) !> @param[in] height Height of matrix transfer (rows) !> @param[in] kind Type of transfer !> @param[in] stream Accelerator view which the copy is being enqueued !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpyToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpy2DToArrayAsync #ifdef USE_CUDA_NAMES function hipMemcpy2DToArrayAsync_(dst,wOffset,hOffset,src,spitch,width,height,myKind,stream) bind(c, name="cudaMemcpy2DToArrayAsync") #else function hipMemcpy2DToArrayAsync_(dst,wOffset,hOffset,src,spitch,width,height,myKind,stream) bind(c, name="hipMemcpy2DToArrayAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DToArrayAsync_ #else integer(kind(hipSuccess)) :: hipMemcpy2DToArrayAsync_ #endif type(c_ptr) :: dst integer(c_size_t),value :: wOffset integer(c_size_t),value :: hOffset type(c_ptr),value :: src integer(c_size_t),value :: spitch integer(c_size_t),value :: width integer(c_size_t),value :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function end interface interface hipMemcpyToArray #ifdef USE_CUDA_NAMES function hipMemcpyToArray_(dst,wOffset,hOffset,src,count,myKind) bind(c, name="cudaMemcpyToArray") #else function hipMemcpyToArray_(dst,wOffset,hOffset,src,count,myKind) bind(c, name="hipMemcpyToArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyToArray_ #else integer(kind(hipSuccess)) :: hipMemcpyToArray_ #endif type(c_ptr) :: dst integer(c_size_t),value :: wOffset integer(c_size_t),value :: hOffset type(c_ptr),value :: src integer(c_size_t),value :: count integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface interface hipMemcpyFromArray #ifdef USE_CUDA_NAMES function hipMemcpyFromArray_(dst,srcArray,wOffset,hOffset,count,myKind) bind(c, name="cudaMemcpyFromArray") #else function hipMemcpyFromArray_(dst,srcArray,wOffset,hOffset,count,myKind) bind(c, name="hipMemcpyFromArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyFromArray_ #else integer(kind(hipSuccess)) :: hipMemcpyFromArray_ #endif type(c_ptr),value :: dst type(c_ptr),value :: srcArray integer(c_size_t),value :: wOffset integer(c_size_t),value :: hOffset integer(c_size_t),value :: count integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Copies data between host and device. !> !> @param[in] dst Destination memory address !> @param[in] dpitch Pitch of destination memory !> @param[in] src Source memory address !> @param[in] wOffset Source starting X offset !> @param[in] hOffset Source starting Y offset !> @param[in] width Width of matrix transfer (columns in bytes) !> @param[in] height Height of matrix transfer (rows) !> @param[in] kind Type of transfer !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpy2DFromArray #ifdef USE_CUDA_NAMES function hipMemcpy2DFromArray_(dst,dpitch,src,wOffset,hOffset,width,height,myKind) bind(c, name="cudaMemcpy2DFromArray") #else function hipMemcpy2DFromArray_(dst,dpitch,src,wOffset,hOffset,width,height,myKind) bind(c, name="hipMemcpy2DFromArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DFromArray_ #else integer(kind(hipSuccess)) :: hipMemcpy2DFromArray_ #endif type(c_ptr),value :: dst integer(c_size_t),value :: dpitch type(c_ptr),value :: src integer(c_size_t),value :: wOffset integer(c_size_t),value :: hOffset integer(c_size_t),value :: width integer(c_size_t),value :: height integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Copies data between host and device asynchronously. !> !> @param[in] dst Destination memory address !> @param[in] dpitch Pitch of destination memory !> @param[in] src Source memory address !> @param[in] wOffset Source starting X offset !> @param[in] hOffset Source starting Y offset !> @param[in] width Width of matrix transfer (columns in bytes) !> @param[in] height Height of matrix transfer (rows) !> @param[in] kind Type of transfer !> @param[in] stream Accelerator view which the copy is being enqueued !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpy2DFromArrayAsync #ifdef USE_CUDA_NAMES function hipMemcpy2DFromArrayAsync_(dst,dpitch,src,wOffset,hOffset,width,height,myKind,stream) bind(c, name="cudaMemcpy2DFromArrayAsync") #else function hipMemcpy2DFromArrayAsync_(dst,dpitch,src,wOffset,hOffset,width,height,myKind,stream) bind(c, name="hipMemcpy2DFromArrayAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DFromArrayAsync_ #else integer(kind(hipSuccess)) :: hipMemcpy2DFromArrayAsync_ #endif type(c_ptr),value :: dst integer(c_size_t),value :: dpitch type(c_ptr),value :: src integer(c_size_t),value :: wOffset integer(c_size_t),value :: hOffset integer(c_size_t),value :: width integer(c_size_t),value :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function end interface !> @brief Copies data between host and device. !> !> @param[in] dst Destination memory address !> @param[in] srcArray Source array !> @param[in] srcoffset Offset in bytes of source array !> @param[in] count Size of memory copy in bytes !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpyAtoH #ifdef USE_CUDA_NAMES function hipMemcpyAtoH_(dst,srcArray,srcOffset,count) bind(c, name="cudaMemcpyAtoH") #else function hipMemcpyAtoH_(dst,srcArray,srcOffset,count) bind(c, name="hipMemcpyAtoH") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAtoH_ #else integer(kind(hipSuccess)) :: hipMemcpyAtoH_ #endif type(c_ptr),value :: dst type(c_ptr) :: srcArray integer(c_size_t),value :: srcOffset integer(c_size_t),value :: count end function end interface !> @brief Copies data between host and device. !> !> @param[in] dstArray Destination memory address !> @param[in] dstOffset Offset in bytes of destination array !> @param[in] srcHost Source host pointer !> @param[in] count Size of memory copy in bytes !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpyHtoA #ifdef USE_CUDA_NAMES function hipMemcpyHtoA_(dstArray,dstOffset,srcHost,count) bind(c, name="cudaMemcpyHtoA") #else function hipMemcpyHtoA_(dstArray,dstOffset,srcHost,count) bind(c, name="hipMemcpyHtoA") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyHtoA_ #else integer(kind(hipSuccess)) :: hipMemcpyHtoA_ #endif type(c_ptr) :: dstArray integer(c_size_t),value :: dstOffset type(c_ptr),value :: srcHost integer(c_size_t),value :: count end function end interface !> @brief Copies data between host and device. !> !> @param[in] p 3D memory copy parameters !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpy3D #ifdef USE_CUDA_NAMES function hipMemcpy3D_(p) bind(c, name="cudaMemcpy3D") #else function hipMemcpy3D_(p) bind(c, name="hipMemcpy3D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy3D_ #else integer(kind(hipSuccess)) :: hipMemcpy3D_ #endif type(c_ptr) :: p end function end interface !> @brief Copies data between host and device asynchronously. !> !> @param[in] p 3D memory copy parameters !> @param[in] stream Stream to use !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipMemcpy3DAsync #ifdef USE_CUDA_NAMES function hipMemcpy3DAsync_(p,stream) bind(c, name="cudaMemcpy3DAsync") #else function hipMemcpy3DAsync_(p,stream) bind(c, name="hipMemcpy3DAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy3DAsync_ #else integer(kind(hipSuccess)) :: hipMemcpy3DAsync_ #endif type(c_ptr) :: p type(c_ptr),value :: stream end function end interface !> @brief Copies data between host and device. !> !> @param[in] pCopy 3D memory copy parameters !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipDrvMemcpy3D #ifdef USE_CUDA_NAMES function hipDrvMemcpy3D_(pCopy) bind(c, name="cudaDrvMemcpy3D") #else function hipDrvMemcpy3D_(pCopy) bind(c, name="hipDrvMemcpy3D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDrvMemcpy3D_ #else integer(kind(hipSuccess)) :: hipDrvMemcpy3D_ #endif type(c_ptr) :: pCopy end function end interface !> @brief Copies data between host and device asynchronously. !> !> @param[in] pCopy 3D memory copy parameters !> @param[in] stream Stream to use !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync interface hipDrvMemcpy3DAsync #ifdef USE_CUDA_NAMES function hipDrvMemcpy3DAsync_(pCopy,stream) bind(c, name="cudaDrvMemcpy3DAsync") #else function hipDrvMemcpy3DAsync_(pCopy,stream) bind(c, name="hipDrvMemcpy3DAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDrvMemcpy3DAsync_ #else integer(kind(hipSuccess)) :: hipDrvMemcpy3DAsync_ #endif type(c_ptr) :: pCopy type(c_ptr),value :: stream end function end interface !> @brief Determine if a device can access a peer's memory. !> !> @param [out] canAccessPeer Returns the peer access capability (0 or 1) !> @param [in] device - device from where memory may be accessed. !> @param [in] peerDevice - device where memory is physically located !> !> Returns "1" in @p canAccessPeer if the specified @p device is capable !> of directly accessing memory physically located on peerDevice , or "0" if not. !> !> Returns "0" in @p canAccessPeer if deviceId == peerDeviceId, and both are valid devices : a !> device is not a peer of itself. !> !> @returns hipSuccess, !> @returns hipErrorInvalidDevice if deviceId or peerDeviceId are not valid devices interface hipDeviceCanAccessPeer #ifdef USE_CUDA_NAMES function hipDeviceCanAccessPeer_(canAccessPeer,deviceId,peerDeviceId) bind(c, name="cudaDeviceCanAccessPeer") #else function hipDeviceCanAccessPeer_(canAccessPeer,deviceId,peerDeviceId) bind(c, name="hipDeviceCanAccessPeer") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceCanAccessPeer_ #else integer(kind(hipSuccess)) :: hipDeviceCanAccessPeer_ #endif type(c_ptr),value :: canAccessPeer integer(c_int),value :: deviceId integer(c_int),value :: peerDeviceId end function end interface !> @brief Enable direct access from current device's virtual address space to memory allocations !> physically located on a peer device. !> !> Memory which already allocated on peer device will be mapped into the address space of the !> current device. In addition, all future memory allocations on peerDeviceId will be mapped into !> the address space of the current device when the memory is allocated. The peer memory remains !> accessible from the current device until a call to hipDeviceDisablePeerAccess or hipDeviceReset. !> !> !> @param [in] peerDeviceId !> @param [in] flags !> !> Returns hipSuccess, hipErrorInvalidDevice, hipErrorInvalidValue, !> @returns hipErrorPeerAccessAlreadyEnabled if peer access is already enabled for this device. interface hipDeviceEnablePeerAccess #ifdef USE_CUDA_NAMES function hipDeviceEnablePeerAccess_(peerDeviceId,flags) bind(c, name="cudaDeviceEnablePeerAccess") #else function hipDeviceEnablePeerAccess_(peerDeviceId,flags) bind(c, name="hipDeviceEnablePeerAccess") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceEnablePeerAccess_ #else integer(kind(hipSuccess)) :: hipDeviceEnablePeerAccess_ #endif integer(c_int),value :: peerDeviceId integer(c_int),value :: flags end function end interface !> @brief Disable direct access from current device's virtual address space to memory allocations !> physically located on a peer device. !> !> Returns hipErrorPeerAccessNotEnabled if direct access to memory on peerDevice has not yet been !> enabled from the current device. !> !> @param [in] peerDeviceId !> !> @returns hipSuccess, hipErrorPeerAccessNotEnabled interface hipDeviceDisablePeerAccess #ifdef USE_CUDA_NAMES function hipDeviceDisablePeerAccess_(peerDeviceId) bind(c, name="cudaDeviceDisablePeerAccess") #else function hipDeviceDisablePeerAccess_(peerDeviceId) bind(c, name="hipDeviceDisablePeerAccess") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDeviceDisablePeerAccess_ #else integer(kind(hipSuccess)) :: hipDeviceDisablePeerAccess_ #endif integer(c_int),value :: peerDeviceId end function end interface !> @brief Get information on memory allocations. !> !> @param [out] pbase - BAse pointer address !> @param [out] psize - Size of allocation !> @param [in] dptr- Device Pointer !> !> @returns hipSuccess, hipErrorInvalidDevicePointer !> !> @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, !> hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice interface hipMemGetAddressRange #ifdef USE_CUDA_NAMES function hipMemGetAddressRange_(pbase,psize,dptr) bind(c, name="cudaMemGetAddressRange") #else function hipMemGetAddressRange_(pbase,psize,dptr) bind(c, name="hipMemGetAddressRange") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemGetAddressRange_ #else integer(kind(hipSuccess)) :: hipMemGetAddressRange_ #endif type(c_ptr) :: pbase integer(c_size_t) :: psize type(c_ptr),value :: dptr end function end interface !> @brief Copies memory from one device to memory on another device. !> !> @param [out] dst - Destination device pointer. !> @param [in] dstDeviceId - Destination device !> @param [in] src - Source device pointer !> @param [in] srcDeviceId - Source device !> @param [in] sizeBytes - Size of memory copy in bytes !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDevice interface hipMemcpyPeer #ifdef USE_CUDA_NAMES function hipMemcpyPeer_(dst,dstDeviceId,src,srcDeviceId,sizeBytes) bind(c, name="cudaMemcpyPeer") #else function hipMemcpyPeer_(dst,dstDeviceId,src,srcDeviceId,sizeBytes) bind(c, name="hipMemcpyPeer") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyPeer_ #else integer(kind(hipSuccess)) :: hipMemcpyPeer_ #endif type(c_ptr),value :: dst integer(c_int),value :: dstDeviceId type(c_ptr),value :: src integer(c_int),value :: srcDeviceId integer(c_size_t),value :: sizeBytes end function end interface !> @brief Copies memory from one device to memory on another device. !> !> @param [out] dst - Destination device pointer. !> @param [in] dstDevice - Destination device !> @param [in] src - Source device pointer !> @param [in] srcDevice - Source device !> @param [in] sizeBytes - Size of memory copy in bytes !> @param [in] stream - Stream identifier !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDevice interface hipMemcpyPeerAsync #ifdef USE_CUDA_NAMES function hipMemcpyPeerAsync_(dst,dstDeviceId,src,srcDevice,sizeBytes,stream) bind(c, name="cudaMemcpyPeerAsync") #else function hipMemcpyPeerAsync_(dst,dstDeviceId,src,srcDevice,sizeBytes,stream) bind(c, name="hipMemcpyPeerAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyPeerAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyPeerAsync_ #endif type(c_ptr),value :: dst integer(c_int),value :: dstDeviceId type(c_ptr),value :: src integer(c_int),value :: srcDevice integer(c_size_t),value :: sizeBytes type(c_ptr),value :: stream end function end interface interface hipCtxCreate #ifdef USE_CUDA_NAMES function hipCtxCreate_(ctx,flags,device) bind(c, name="cudaCtxCreate") #else function hipCtxCreate_(ctx,flags,device) bind(c, name="hipCtxCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxCreate_ #else integer(kind(hipSuccess)) :: hipCtxCreate_ #endif type(c_ptr) :: ctx integer(c_int),value :: flags integer(c_int),value :: device end function end interface interface hipCtxDestroy #ifdef USE_CUDA_NAMES function hipCtxDestroy_(ctx) bind(c, name="cudaCtxDestroy") #else function hipCtxDestroy_(ctx) bind(c, name="hipCtxDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxDestroy_ #else integer(kind(hipSuccess)) :: hipCtxDestroy_ #endif type(c_ptr),value :: ctx end function end interface interface hipCtxPopCurrent #ifdef USE_CUDA_NAMES function hipCtxPopCurrent_(ctx) bind(c, name="cudaCtxPopCurrent") #else function hipCtxPopCurrent_(ctx) bind(c, name="hipCtxPopCurrent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxPopCurrent_ #else integer(kind(hipSuccess)) :: hipCtxPopCurrent_ #endif type(c_ptr) :: ctx end function end interface interface hipCtxPushCurrent #ifdef USE_CUDA_NAMES function hipCtxPushCurrent_(ctx) bind(c, name="cudaCtxPushCurrent") #else function hipCtxPushCurrent_(ctx) bind(c, name="hipCtxPushCurrent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxPushCurrent_ #else integer(kind(hipSuccess)) :: hipCtxPushCurrent_ #endif type(c_ptr),value :: ctx end function end interface interface hipCtxSetCurrent #ifdef USE_CUDA_NAMES function hipCtxSetCurrent_(ctx) bind(c, name="cudaCtxSetCurrent") #else function hipCtxSetCurrent_(ctx) bind(c, name="hipCtxSetCurrent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxSetCurrent_ #else integer(kind(hipSuccess)) :: hipCtxSetCurrent_ #endif type(c_ptr),value :: ctx end function end interface interface hipCtxGetCurrent #ifdef USE_CUDA_NAMES function hipCtxGetCurrent_(ctx) bind(c, name="cudaCtxGetCurrent") #else function hipCtxGetCurrent_(ctx) bind(c, name="hipCtxGetCurrent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxGetCurrent_ #else integer(kind(hipSuccess)) :: hipCtxGetCurrent_ #endif type(c_ptr) :: ctx end function end interface interface hipCtxGetDevice #ifdef USE_CUDA_NAMES function hipCtxGetDevice_(device) bind(c, name="cudaCtxGetDevice") #else function hipCtxGetDevice_(device) bind(c, name="hipCtxGetDevice") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxGetDevice_ #else integer(kind(hipSuccess)) :: hipCtxGetDevice_ #endif integer(c_int) :: device end function end interface interface hipCtxGetApiVersion #ifdef USE_CUDA_NAMES function hipCtxGetApiVersion_(ctx,apiVersion) bind(c, name="cudaCtxGetApiVersion") #else function hipCtxGetApiVersion_(ctx,apiVersion) bind(c, name="hipCtxGetApiVersion") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxGetApiVersion_ #else integer(kind(hipSuccess)) :: hipCtxGetApiVersion_ #endif type(c_ptr),value :: ctx type(c_ptr),value :: apiVersion end function end interface interface hipCtxGetCacheConfig #ifdef USE_CUDA_NAMES function hipCtxGetCacheConfig_(cacheConfig) bind(c, name="cudaCtxGetCacheConfig") #else function hipCtxGetCacheConfig_(cacheConfig) bind(c, name="hipCtxGetCacheConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxGetCacheConfig_ #else integer(kind(hipSuccess)) :: hipCtxGetCacheConfig_ #endif type(c_ptr),value :: cacheConfig end function end interface interface hipCtxSetCacheConfig #ifdef USE_CUDA_NAMES function hipCtxSetCacheConfig_(cacheConfig) bind(c, name="cudaCtxSetCacheConfig") #else function hipCtxSetCacheConfig_(cacheConfig) bind(c, name="hipCtxSetCacheConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxSetCacheConfig_ #else integer(kind(hipSuccess)) :: hipCtxSetCacheConfig_ #endif integer(kind(hipFuncCachePreferNone)),value :: cacheConfig end function end interface interface hipCtxSetSharedMemConfig #ifdef USE_CUDA_NAMES function hipCtxSetSharedMemConfig_(config) bind(c, name="cudaCtxSetSharedMemConfig") #else function hipCtxSetSharedMemConfig_(config) bind(c, name="hipCtxSetSharedMemConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxSetSharedMemConfig_ #else integer(kind(hipSuccess)) :: hipCtxSetSharedMemConfig_ #endif integer(kind(hipSharedMemBankSizeDefault)),value :: config end function end interface interface hipCtxGetSharedMemConfig #ifdef USE_CUDA_NAMES function hipCtxGetSharedMemConfig_(pConfig) bind(c, name="cudaCtxGetSharedMemConfig") #else function hipCtxGetSharedMemConfig_(pConfig) bind(c, name="hipCtxGetSharedMemConfig") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxGetSharedMemConfig_ #else integer(kind(hipSuccess)) :: hipCtxGetSharedMemConfig_ #endif type(c_ptr),value :: pConfig end function end interface interface hipCtxSynchronize #ifdef USE_CUDA_NAMES function hipCtxSynchronize_() bind(c, name="cudaCtxSynchronize") #else function hipCtxSynchronize_() bind(c, name="hipCtxSynchronize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxSynchronize_ #else integer(kind(hipSuccess)) :: hipCtxSynchronize_ #endif end function end interface interface hipCtxGetFlags #ifdef USE_CUDA_NAMES function hipCtxGetFlags_(flags) bind(c, name="cudaCtxGetFlags") #else function hipCtxGetFlags_(flags) bind(c, name="hipCtxGetFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxGetFlags_ #else integer(kind(hipSuccess)) :: hipCtxGetFlags_ #endif type(c_ptr),value :: flags end function end interface interface hipCtxEnablePeerAccess #ifdef USE_CUDA_NAMES function hipCtxEnablePeerAccess_(peerCtx,flags) bind(c, name="cudaCtxEnablePeerAccess") #else function hipCtxEnablePeerAccess_(peerCtx,flags) bind(c, name="hipCtxEnablePeerAccess") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxEnablePeerAccess_ #else integer(kind(hipSuccess)) :: hipCtxEnablePeerAccess_ #endif type(c_ptr),value :: peerCtx integer(c_int),value :: flags end function end interface interface hipCtxDisablePeerAccess #ifdef USE_CUDA_NAMES function hipCtxDisablePeerAccess_(peerCtx) bind(c, name="cudaCtxDisablePeerAccess") #else function hipCtxDisablePeerAccess_(peerCtx) bind(c, name="hipCtxDisablePeerAccess") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCtxDisablePeerAccess_ #else integer(kind(hipSuccess)) :: hipCtxDisablePeerAccess_ #endif type(c_ptr),value :: peerCtx end function end interface !> @brief Get the state of the primary context. !> !> @param [in] Device to get primary context flags for !> @param [out] Pointer to store flags !> @param [out] Pointer to store context state; 0 = inactive, 1 = active !> !> @returns hipSuccess !> !> @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, !> hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice interface hipDevicePrimaryCtxGetState #ifdef USE_CUDA_NAMES function hipDevicePrimaryCtxGetState_(dev,flags,active) bind(c, name="cudaDevicePrimaryCtxGetState") #else function hipDevicePrimaryCtxGetState_(dev,flags,active) bind(c, name="hipDevicePrimaryCtxGetState") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDevicePrimaryCtxGetState_ #else integer(kind(hipSuccess)) :: hipDevicePrimaryCtxGetState_ #endif integer(c_int),value :: dev type(c_ptr),value :: flags type(c_ptr),value :: active end function end interface !> @brief Release the primary context on the GPU. !> !> @param [in] Device which primary context is released !> !> @returns hipSuccess !> !> @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, !> hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice !> @warning This function return hipSuccess though doesn't release the primaryCtx by design on !> HIP/HCC path. interface hipDevicePrimaryCtxRelease #ifdef USE_CUDA_NAMES function hipDevicePrimaryCtxRelease_(dev) bind(c, name="cudaDevicePrimaryCtxRelease") #else function hipDevicePrimaryCtxRelease_(dev) bind(c, name="hipDevicePrimaryCtxRelease") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDevicePrimaryCtxRelease_ #else integer(kind(hipSuccess)) :: hipDevicePrimaryCtxRelease_ #endif integer(c_int),value :: dev end function end interface !> @brief Retain the primary context on the GPU. !> !> @param [out] Returned context handle of the new context !> @param [in] Device which primary context is released !> !> @returns hipSuccess !> !> @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, !> hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice interface hipDevicePrimaryCtxRetain #ifdef USE_CUDA_NAMES function hipDevicePrimaryCtxRetain_(pctx,dev) bind(c, name="cudaDevicePrimaryCtxRetain") #else function hipDevicePrimaryCtxRetain_(pctx,dev) bind(c, name="hipDevicePrimaryCtxRetain") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDevicePrimaryCtxRetain_ #else integer(kind(hipSuccess)) :: hipDevicePrimaryCtxRetain_ #endif type(c_ptr) :: pctx integer(c_int),value :: dev end function end interface !> @brief Resets the primary context on the GPU. !> !> @param [in] Device which primary context is reset !> !> @returns hipSuccess !> !> @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, !> hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice interface hipDevicePrimaryCtxReset #ifdef USE_CUDA_NAMES function hipDevicePrimaryCtxReset_(dev) bind(c, name="cudaDevicePrimaryCtxReset") #else function hipDevicePrimaryCtxReset_(dev) bind(c, name="hipDevicePrimaryCtxReset") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDevicePrimaryCtxReset_ #else integer(kind(hipSuccess)) :: hipDevicePrimaryCtxReset_ #endif integer(c_int),value :: dev end function end interface !> @brief Set flags for the primary context. !> !> @param [in] Device for which the primary context flags are set !> @param [in] New flags for the device !> !> @returns hipSuccess, hipErrorContextAlreadyInUse !> !> @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, !> hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice interface hipDevicePrimaryCtxSetFlags #ifdef USE_CUDA_NAMES function hipDevicePrimaryCtxSetFlags_(dev,flags) bind(c, name="cudaDevicePrimaryCtxSetFlags") #else function hipDevicePrimaryCtxSetFlags_(dev,flags) bind(c, name="hipDevicePrimaryCtxSetFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDevicePrimaryCtxSetFlags_ #else integer(kind(hipSuccess)) :: hipDevicePrimaryCtxSetFlags_ #endif integer(c_int),value :: dev integer(c_int),value :: flags end function end interface !> @brief Loads code object from file into a hipModule_t !> !> @param [in] fname !> @param [out] module !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidContext, hipErrorFileNotFound, !> hipErrorOutOfMemory, hipErrorSharedObjectInitFailed, hipErrorNotInitialized !> !> interface hipModuleLoad #ifdef USE_CUDA_NAMES function hipModuleLoad_(myModule,fname) bind(c, name="cudaModuleLoad") #else function hipModuleLoad_(myModule,fname) bind(c, name="hipModuleLoad") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleLoad_ #else integer(kind(hipSuccess)) :: hipModuleLoad_ #endif type(c_ptr) :: myModule type(c_ptr),value :: fname end function end interface !> @brief Frees the module !> !> @param [in] module !> !> @returns hipSuccess, hipInvalidValue !> module is freed and the code objects associated with it are destroyed !> interface hipModuleUnload #ifdef USE_CUDA_NAMES function hipModuleUnload_(myModule) bind(c, name="cudaModuleUnload") #else function hipModuleUnload_(myModule) bind(c, name="hipModuleUnload") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleUnload_ #else integer(kind(hipSuccess)) :: hipModuleUnload_ #endif type(c_ptr),value :: myModule end function end interface !> @brief Function with kname will be extracted if present in module !> !> @param [in] module !> @param [in] kname !> @param [out] function !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidContext, hipErrorNotInitialized, !> hipErrorNotFound, interface hipModuleGetFunction #ifdef USE_CUDA_NAMES function hipModuleGetFunction_(myFunction,myModule,kname) bind(c, name="cudaModuleGetFunction") #else function hipModuleGetFunction_(myFunction,myModule,kname) bind(c, name="hipModuleGetFunction") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleGetFunction_ #else integer(kind(hipSuccess)) :: hipModuleGetFunction_ #endif type(c_ptr) :: myFunction type(c_ptr),value :: myModule type(c_ptr),value :: kname end function end interface !> @brief Find out attributes for a given function. !> !> @param [out] attr !> @param [in] func !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDeviceFunction interface hipFuncGetAttributes #ifdef USE_CUDA_NAMES function hipFuncGetAttributes_(attr,func) bind(c, name="cudaFuncGetAttributes") #else function hipFuncGetAttributes_(attr,func) bind(c, name="hipFuncGetAttributes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFuncGetAttributes_ #else integer(kind(hipSuccess)) :: hipFuncGetAttributes_ #endif type(c_ptr) :: attr type(c_ptr),value :: func end function end interface !> @brief Find out a specific attribute for a given function. !> !> @param [out] value !> @param [in] attrib !> @param [in] hfunc !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDeviceFunction interface hipFuncGetAttribute #ifdef USE_CUDA_NAMES function hipFuncGetAttribute_(myValue,attrib,hfunc) bind(c, name="cudaFuncGetAttribute") #else function hipFuncGetAttribute_(myValue,attrib,hfunc) bind(c, name="hipFuncGetAttribute") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipFuncGetAttribute_ #else integer(kind(hipSuccess)) :: hipFuncGetAttribute_ #endif type(c_ptr),value :: myValue integer(kind(HIP_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK)),value :: attrib type(c_ptr),value :: hfunc end function end interface !> @brief returns the handle of the texture reference with the name from the module. !> !> @param [in] hmod !> @param [in] name !> @param [out] texRef !> !> @returns hipSuccess, hipErrorNotInitialized, hipErrorNotFound, hipErrorInvalidValue interface hipModuleGetTexRef #ifdef USE_CUDA_NAMES function hipModuleGetTexRef_(texRef,hmod,name) bind(c, name="cudaModuleGetTexRef") #else function hipModuleGetTexRef_(texRef,hmod,name) bind(c, name="hipModuleGetTexRef") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleGetTexRef_ #else integer(kind(hipSuccess)) :: hipModuleGetTexRef_ #endif type(c_ptr) :: texRef type(c_ptr),value :: hmod type(c_ptr),value :: name end function end interface !> @brief builds module from code object which resides in host memory. Image is pointer to that !> location. !> !> @param [in] image !> @param [out] module !> !> @returns hipSuccess, hipErrorNotInitialized, hipErrorOutOfMemory, hipErrorNotInitialized interface hipModuleLoadData #ifdef USE_CUDA_NAMES function hipModuleLoadData_(myModule,image) bind(c, name="cudaModuleLoadData") #else function hipModuleLoadData_(myModule,image) bind(c, name="hipModuleLoadData") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleLoadData_ #else integer(kind(hipSuccess)) :: hipModuleLoadData_ #endif type(c_ptr) :: myModule type(c_ptr),value :: image end function end interface !> @brief builds module from code object which resides in host memory. Image is pointer to that !> location. Options are not used. hipModuleLoadData is called. !> !> @param [in] image !> @param [out] module !> @param [in] number of options !> @param [in] options for JIT !> @param [in] option values for JIT !> !> @returns hipSuccess, hipErrorNotInitialized, hipErrorOutOfMemory, hipErrorNotInitialized interface hipModuleLoadDataEx #ifdef USE_CUDA_NAMES function hipModuleLoadDataEx_(myModule,image,numOptions,options,optionValues) bind(c, name="cudaModuleLoadDataEx") #else function hipModuleLoadDataEx_(myModule,image,numOptions,options,optionValues) bind(c, name="hipModuleLoadDataEx") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleLoadDataEx_ #else integer(kind(hipSuccess)) :: hipModuleLoadDataEx_ #endif type(c_ptr) :: myModule type(c_ptr),value :: image integer(c_int),value :: numOptions type(c_ptr),value :: options type(c_ptr) :: optionValues end function end interface !> @brief launches kernel f with launch parameters and shared memory on stream with arguments passed !> to kernelparams or extra !> !> @param [in] f Kernel to launch. !> @param [in] gridDimX X grid dimension specified as multiple of blockDimX. !> @param [in] gridDimY Y grid dimension specified as multiple of blockDimY. !> @param [in] gridDimZ Z grid dimension specified as multiple of blockDimZ. !> @param [in] blockDimX X block dimensions specified in work-items !> @param [in] blockDimY Y grid dimension specified in work-items !> @param [in] blockDimZ Z grid dimension specified in work-items !> @param [in] sharedMemBytes Amount of dynamic shared memory to allocate for this kernel. The !> HIP-Clang compiler provides support for extern shared declarations. !> @param [in] stream Stream where the kernel should be dispatched. May be 0, in which case th !> default stream is used with associated synchronization rules. !> @param [in] kernelParams !> @param [in] extra Pointer to kernel arguments. These are passed directly to the kernel and !> must be in the memory layout and alignment expected by the kernel. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue !> !> @warning kernellParams argument is not yet implemented in HIP. Please use extra instead. Please !> refer to hip_porting_driver_api.md for sample usage. interface hipModuleLaunchKernel #ifdef USE_CUDA_NAMES function hipModuleLaunchKernel_(f,gridDimX,gridDimY,gridDimZ,blockDimX,blockDimY,blockDimZ,sharedMemBytes,stream,kernelParams,extra) bind(c, name="cudaModuleLaunchKernel") #else function hipModuleLaunchKernel_(f,gridDimX,gridDimY,gridDimZ,blockDimX,blockDimY,blockDimZ,sharedMemBytes,stream,kernelParams,extra) bind(c, name="hipModuleLaunchKernel") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleLaunchKernel_ #else integer(kind(hipSuccess)) :: hipModuleLaunchKernel_ #endif type(c_ptr),value :: f integer(c_int),value :: gridDimX integer(c_int),value :: gridDimY integer(c_int),value :: gridDimZ integer(c_int),value :: blockDimX integer(c_int),value :: blockDimY integer(c_int),value :: blockDimZ integer(c_int),value :: sharedMemBytes type(c_ptr),value :: stream type(c_ptr) :: kernelParams type(c_ptr) :: extra end function end interface !> @brief launches kernel f with launch parameters and shared memory on stream with arguments passed !> to kernelparams or extra, where thread blocks can cooperate and synchronize as they execute !> !> @param [in] f Kernel to launch. !> @param [in] gridDim Grid dimensions specified as multiple of blockDim. !> @param [in] blockDim Block dimensions specified in work-items !> @param [in] kernelParams A list of kernel arguments !> @param [in] sharedMemBytes Amount of dynamic shared memory to allocate for this kernel. The !> HIP-Clang compiler provides support for extern shared declarations. !> @param [in] stream Stream where the kernel should be dispatched. May be 0, in which case th !> default stream is used with associated synchronization rules. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue, hipErrorCooperativeLaunchTooLarge interface hipLaunchCooperativeKernel #ifdef USE_CUDA_NAMES function hipLaunchCooperativeKernel_(f,gridDim,blockDimX,kernelParams,sharedMemBytes,stream) bind(c, name="cudaLaunchCooperativeKernel") #else function hipLaunchCooperativeKernel_(f,gridDim,blockDimX,kernelParams,sharedMemBytes,stream) bind(c, name="hipLaunchCooperativeKernel") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipLaunchCooperativeKernel_ #else integer(kind(hipSuccess)) :: hipLaunchCooperativeKernel_ #endif type(c_ptr),value :: f type(dim3),value :: gridDim type(dim3),value :: blockDimX type(c_ptr) :: kernelParams integer(c_int),value :: sharedMemBytes type(c_ptr),value :: stream end function end interface !> @brief Launches kernels on multiple devices where thread blocks can cooperate and !> synchronize as they execute. !> !> @param [in] launchParamsList List of launch parameters, one per device. !> @param [in] numDevices Size of the launchParamsList array. !> @param [in] flags Flags to control launch behavior. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue, hipErrorCooperativeLaunchTooLarge interface hipLaunchCooperativeKernelMultiDevice #ifdef USE_CUDA_NAMES function hipLaunchCooperativeKernelMultiDevice_(launchParamsList,numDevices,flags) bind(c, name="cudaLaunchCooperativeKernelMultiDevice") #else function hipLaunchCooperativeKernelMultiDevice_(launchParamsList,numDevices,flags) bind(c, name="hipLaunchCooperativeKernelMultiDevice") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipLaunchCooperativeKernelMultiDevice_ #else integer(kind(hipSuccess)) :: hipLaunchCooperativeKernelMultiDevice_ #endif type(c_ptr),value :: launchParamsList integer(c_int),value :: numDevices integer(c_int),value :: flags end function end interface !> @brief Launches kernels on multiple devices and guarantees all specified kernels are dispatched !> on respective streams before enqueuing any other work on the specified streams from any other threads !> !> !> @param [in] hipLaunchParams List of launch parameters, one per device. !> @param [in] numDevices Size of the launchParamsList array. !> @param [in] flags Flags to control launch behavior. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue interface hipExtLaunchMultiKernelMultiDevice #ifdef USE_CUDA_NAMES function hipExtLaunchMultiKernelMultiDevice_(launchParamsList,numDevices,flags) bind(c, name="cudaExtLaunchMultiKernelMultiDevice") #else function hipExtLaunchMultiKernelMultiDevice_(launchParamsList,numDevices,flags) bind(c, name="hipExtLaunchMultiKernelMultiDevice") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExtLaunchMultiKernelMultiDevice_ #else integer(kind(hipSuccess)) :: hipExtLaunchMultiKernelMultiDevice_ #endif type(c_ptr),value :: launchParamsList integer(c_int),value :: numDevices integer(c_int),value :: flags end function end interface interface hipModuleOccupancyMaxPotentialBlockSize #ifdef USE_CUDA_NAMES function hipModuleOccupancyMaxPotentialBlockSize_(gridSize,blockSize,f,dynSharedMemPerBlk,blockSizeLimit) bind(c, name="cudaModuleOccupancyMaxPotentialBlockSize") #else function hipModuleOccupancyMaxPotentialBlockSize_(gridSize,blockSize,f,dynSharedMemPerBlk,blockSizeLimit) bind(c, name="hipModuleOccupancyMaxPotentialBlockSize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleOccupancyMaxPotentialBlockSize_ #else integer(kind(hipSuccess)) :: hipModuleOccupancyMaxPotentialBlockSize_ #endif type(c_ptr),value :: gridSize type(c_ptr),value :: blockSize type(c_ptr),value :: f integer(c_size_t),value :: dynSharedMemPerBlk integer(c_int),value :: blockSizeLimit end function end interface interface hipModuleOccupancyMaxPotentialBlockSizeWithFlags #ifdef USE_CUDA_NAMES function hipModuleOccupancyMaxPotentialBlockSizeWithFlags_(gridSize,blockSize,f,dynSharedMemPerBlk,blockSizeLimit,flags) bind(c, name="cudaModuleOccupancyMaxPotentialBlockSizeWithFlags") #else function hipModuleOccupancyMaxPotentialBlockSizeWithFlags_(gridSize,blockSize,f,dynSharedMemPerBlk,blockSizeLimit,flags) bind(c, name="hipModuleOccupancyMaxPotentialBlockSizeWithFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleOccupancyMaxPotentialBlockSizeWithFlags_ #else integer(kind(hipSuccess)) :: hipModuleOccupancyMaxPotentialBlockSizeWithFlags_ #endif type(c_ptr),value :: gridSize type(c_ptr),value :: blockSize type(c_ptr),value :: f integer(c_size_t),value :: dynSharedMemPerBlk integer(c_int),value :: blockSizeLimit integer(c_int),value :: flags end function end interface !> @brief Returns occupancy for a device function. !> !> @param [out] numBlocks Returned occupancy !> @param [in] func Kernel function (hipFunction) for which occupancy is calulated !> @param [in] blockSize Block size the kernel is intended to be launched with !> @param [in] dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block interface hipModuleOccupancyMaxActiveBlocksPerMultiprocessor #ifdef USE_CUDA_NAMES function hipModuleOccupancyMaxActiveBlocksPerMultiprocessor_(numBlocks,f,blockSize,dynSharedMemPerBlk) bind(c, name="cudaModuleOccupancyMaxActiveBlocksPerMultiprocessor") #else function hipModuleOccupancyMaxActiveBlocksPerMultiprocessor_(numBlocks,f,blockSize,dynSharedMemPerBlk) bind(c, name="hipModuleOccupancyMaxActiveBlocksPerMultiprocessor") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipModuleOccupancyMaxActiveBlocksPerMultiprocessor_ #else integer(kind(hipSuccess)) :: hipModuleOccupancyMaxActiveBlocksPerMultiprocessor_ #endif type(c_ptr),value :: numBlocks type(c_ptr),value :: f integer(c_int),value :: blockSize integer(c_size_t),value :: dynSharedMemPerBlk end function end interface !> @brief Returns occupancy for a device function. !> !> @param [out] numBlocks Returned occupancy !> @param [in] func Kernel function for which occupancy is calulated !> @param [in] blockSize Block size the kernel is intended to be launched with !> @param [in] dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block interface hipOccupancyMaxActiveBlocksPerMultiprocessor #ifdef USE_CUDA_NAMES function hipOccupancyMaxActiveBlocksPerMultiprocessor_(numBlocks,f,blockSize,dynSharedMemPerBlk) bind(c, name="cudaOccupancyMaxActiveBlocksPerMultiprocessor") #else function hipOccupancyMaxActiveBlocksPerMultiprocessor_(numBlocks,f,blockSize,dynSharedMemPerBlk) bind(c, name="hipOccupancyMaxActiveBlocksPerMultiprocessor") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipOccupancyMaxActiveBlocksPerMultiprocessor_ #else integer(kind(hipSuccess)) :: hipOccupancyMaxActiveBlocksPerMultiprocessor_ #endif type(c_ptr),value :: numBlocks type(c_ptr),value :: f integer(c_int),value :: blockSize integer(c_size_t),value :: dynSharedMemPerBlk end function end interface !> @brief Returns occupancy for a device function. !> !> @param [out] numBlocks Returned occupancy !> @param [in] f Kernel function for which occupancy is calulated !> @param [in] blockSize Block size the kernel is intended to be launched with !> @param [in] dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block !> @param [in] flags Extra flags for occupancy calculation (currently ignored) interface hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags #ifdef USE_CUDA_NAMES function hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_(numBlocks,f,blockSize,dynSharedMemPerBlk,flags) bind(c, name="cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags") #else function hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_(numBlocks,f,blockSize,dynSharedMemPerBlk,flags) bind(c, name="hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_ #else integer(kind(hipSuccess)) :: hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_ #endif type(c_ptr),value :: numBlocks type(c_ptr),value :: f integer(c_int),value :: blockSize integer(c_size_t),value :: dynSharedMemPerBlk integer(c_int),value :: flags end function end interface !> @brief determine the grid and block sizes to achieves maximum occupancy for a kernel !> !> @param [out] gridSize minimum grid size for maximum potential occupancy !> @param [out] blockSize block size for maximum potential occupancy !> @param [in] f kernel function for which occupancy is calulated !> @param [in] dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block !> @param [in] blockSizeLimit the maximum block size for the kernel, use 0 for no limit !> !> @returns hipSuccess, hipInvalidDevice, hipErrorInvalidValue interface hipOccupancyMaxPotentialBlockSize #ifdef USE_CUDA_NAMES function hipOccupancyMaxPotentialBlockSize_(gridSize,blockSize,f,dynSharedMemPerBlk,blockSizeLimit) bind(c, name="cudaOccupancyMaxPotentialBlockSize") #else function hipOccupancyMaxPotentialBlockSize_(gridSize,blockSize,f,dynSharedMemPerBlk,blockSizeLimit) bind(c, name="hipOccupancyMaxPotentialBlockSize") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipOccupancyMaxPotentialBlockSize_ #else integer(kind(hipSuccess)) :: hipOccupancyMaxPotentialBlockSize_ #endif type(c_ptr),value :: gridSize type(c_ptr),value :: blockSize type(c_ptr),value :: f integer(c_size_t),value :: dynSharedMemPerBlk integer(c_int),value :: blockSizeLimit end function end interface interface hipProfilerStart #ifdef USE_CUDA_NAMES function hipProfilerStart_() bind(c, name="cudaProfilerStart") #else function hipProfilerStart_() bind(c, name="hipProfilerStart") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipProfilerStart_ #else integer(kind(hipSuccess)) :: hipProfilerStart_ #endif end function end interface interface hipProfilerStop #ifdef USE_CUDA_NAMES function hipProfilerStop_() bind(c, name="cudaProfilerStop") #else function hipProfilerStop_() bind(c, name="hipProfilerStop") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipProfilerStop_ #else integer(kind(hipSuccess)) :: hipProfilerStop_ #endif end function end interface !> @brief Configure a kernel launch. !> !> @param [in] gridDim grid dimension specified as multiple of blockDim. !> @param [in] blockDim block dimensions specified in work-items !> @param [in] sharedMem Amount of dynamic shared memory to allocate for this kernel. The !> HIP-Clang compiler provides support for extern shared declarations. !> @param [in] stream Stream where the kernel should be dispatched. May be 0, in which case the !> default stream is used with associated synchronization rules. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue !> interface hipConfigureCall #ifdef USE_CUDA_NAMES function hipConfigureCall_(gridDim,blockDim,sharedMem,stream) bind(c, name="cudaConfigureCall") #else function hipConfigureCall_(gridDim,blockDim,sharedMem,stream) bind(c, name="hipConfigureCall") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipConfigureCall_ #else integer(kind(hipSuccess)) :: hipConfigureCall_ #endif type(dim3),value :: gridDim type(dim3),value :: blockDim integer(c_size_t),value :: sharedMem type(c_ptr),value :: stream end function end interface !> @brief Set a kernel argument. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue !> !> @param [in] arg Pointer the argument in host memory. !> @param [in] size Size of the argument. !> @param [in] offset Offset of the argument on the argument stack. !> interface hipSetupArgument #ifdef USE_CUDA_NAMES function hipSetupArgument_(arg,mySize,offset) bind(c, name="cudaSetupArgument") #else function hipSetupArgument_(arg,mySize,offset) bind(c, name="hipSetupArgument") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipSetupArgument_ #else integer(kind(hipSuccess)) :: hipSetupArgument_ #endif type(c_ptr),value :: arg integer(c_size_t),value :: mySize integer(c_size_t),value :: offset end function end interface !> @brief Launch a kernel. !> !> @param [in] func Kernel to launch. !> !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue !> interface hipLaunchByPtr #ifdef USE_CUDA_NAMES function hipLaunchByPtr_(func) bind(c, name="cudaLaunchByPtr") #else function hipLaunchByPtr_(func) bind(c, name="hipLaunchByPtr") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipLaunchByPtr_ #else integer(kind(hipSuccess)) :: hipLaunchByPtr_ #endif type(c_ptr),value :: func end function end interface !> @brief C compliant kernel launch API !> !> @param [in] function_address - kernel stub function pointer. !> @param [in] numBlocks - number of blocks !> @param [in] dimBlocks - dimension of a block !> @param [in] args - kernel arguments !> @param [in] sharedMemBytes - Amount of dynamic shared memory to allocate for this kernel. The !> HIP-Clang compiler provides support for extern shared declarations. !> @param [in] stream - Stream where the kernel should be dispatched. May be 0, in which case th !> default stream is used with associated synchronization rules. !> !> @returns hipSuccess, hipErrorInvalidValue, hipInvalidDevice !> interface hipLaunchKernel #ifdef USE_CUDA_NAMES function hipLaunchKernel_(function_address,numBlocks,dimBlocks,args,sharedMemBytes,stream) bind(c, name="cudaLaunchKernel") #else function hipLaunchKernel_(function_address,numBlocks,dimBlocks,args,sharedMemBytes,stream) bind(c, name="hipLaunchKernel") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipLaunchKernel_ #else integer(kind(hipSuccess)) :: hipLaunchKernel_ #endif type(c_ptr),value :: function_address type(dim3),value :: numBlocks type(dim3),value :: dimBlocks type(c_ptr) :: args integer(c_size_t),value :: sharedMemBytes type(c_ptr),value :: stream end function end interface !> Copies memory for 2D arrays. !> !> @param pCopy - Parameters for the memory copy !> !> @returns hipSuccess, hipErrorInvalidValue interface hipDrvMemcpy2DUnaligned #ifdef USE_CUDA_NAMES function hipDrvMemcpy2DUnaligned_(pCopy) bind(c, name="cudaDrvMemcpy2DUnaligned") #else function hipDrvMemcpy2DUnaligned_(pCopy) bind(c, name="hipDrvMemcpy2DUnaligned") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDrvMemcpy2DUnaligned_ #else integer(kind(hipSuccess)) :: hipDrvMemcpy2DUnaligned_ #endif type(c_ptr) :: pCopy end function end interface !> @brief Launches kernel from the pointer address, with arguments and shared memory on stream. !> !> @param [in] function_address pointer to the Kernel to launch. !> @param [in] numBlocks number of blocks. !> @param [in] dimBlocks dimension of a block. !> @param [in] args pointer to kernel arguments. !> @param [in] sharedMemBytes Amount of dynamic shared memory to allocate for this kernel. !> HIP-Clang compiler provides support for extern shared declarations. !> @param [in] stream Stream where the kernel should be dispatched. !> @param [in] startEvent If non-null, specified event will be updated to track the start time of !> the kernel launch. The event must be created before calling this API. !> @param [in] stopEvent If non-null, specified event will be updated to track the stop time of !> the kernel launch. The event must be created before calling this API. !> May be 0, in which case the default stream is used with associated synchronization rules. !> @param [in] flags. The value of hipExtAnyOrderLaunch, signifies if kernel can be !> launched in any order. !> @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue. !> interface hipExtLaunchKernel #ifdef USE_CUDA_NAMES function hipExtLaunchKernel_(function_address,numBlocks,dimBlocks,args,sharedMemBytes,stream,startEvent,stopEvent,flags) bind(c, name="cudaExtLaunchKernel") #else function hipExtLaunchKernel_(function_address,numBlocks,dimBlocks,args,sharedMemBytes,stream,startEvent,stopEvent,flags) bind(c, name="hipExtLaunchKernel") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipExtLaunchKernel_ #else integer(kind(hipSuccess)) :: hipExtLaunchKernel_ #endif type(c_ptr),value :: function_address type(dim3),value :: numBlocks type(dim3),value :: dimBlocks type(c_ptr) :: args integer(c_size_t),value :: sharedMemBytes type(c_ptr),value :: stream type(c_ptr),value :: startEvent type(c_ptr),value :: stopEvent integer(c_int),value :: flags end function end interface interface hipBindTexture #ifdef USE_CUDA_NAMES function hipBindTexture_(offset,tex,devPtr,desc,mySize) bind(c, name="cudaBindTexture") #else function hipBindTexture_(offset,tex,devPtr,desc,mySize) bind(c, name="hipBindTexture") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipBindTexture_ #else integer(kind(hipSuccess)) :: hipBindTexture_ #endif integer(c_size_t) :: offset type(c_ptr) :: tex type(c_ptr),value :: devPtr type(c_ptr) :: desc integer(c_size_t),value :: mySize end function end interface interface hipBindTexture2D #ifdef USE_CUDA_NAMES function hipBindTexture2D_(offset,tex,devPtr,desc,width,height,pitch) bind(c, name="cudaBindTexture2D") #else function hipBindTexture2D_(offset,tex,devPtr,desc,width,height,pitch) bind(c, name="hipBindTexture2D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipBindTexture2D_ #else integer(kind(hipSuccess)) :: hipBindTexture2D_ #endif integer(c_size_t) :: offset type(c_ptr) :: tex type(c_ptr),value :: devPtr type(c_ptr) :: desc integer(c_size_t),value :: width integer(c_size_t),value :: height integer(c_size_t),value :: pitch end function end interface interface hipBindTextureToArray #ifdef USE_CUDA_NAMES function hipBindTextureToArray_(tex,array,desc) bind(c, name="cudaBindTextureToArray") #else function hipBindTextureToArray_(tex,array,desc) bind(c, name="hipBindTextureToArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipBindTextureToArray_ #else integer(kind(hipSuccess)) :: hipBindTextureToArray_ #endif type(c_ptr) :: tex type(c_ptr),value :: array type(c_ptr) :: desc end function end interface interface hipGetTextureAlignmentOffset #ifdef USE_CUDA_NAMES function hipGetTextureAlignmentOffset_(offset,texref) bind(c, name="cudaGetTextureAlignmentOffset") #else function hipGetTextureAlignmentOffset_(offset,texref) bind(c, name="hipGetTextureAlignmentOffset") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetTextureAlignmentOffset_ #else integer(kind(hipSuccess)) :: hipGetTextureAlignmentOffset_ #endif integer(c_size_t) :: offset type(c_ptr) :: texref end function end interface interface hipUnbindTexture #ifdef USE_CUDA_NAMES function hipUnbindTexture_(tex) bind(c, name="cudaUnbindTexture") #else function hipUnbindTexture_(tex) bind(c, name="hipUnbindTexture") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipUnbindTexture_ #else integer(kind(hipSuccess)) :: hipUnbindTexture_ #endif type(c_ptr) :: tex end function end interface interface hipTexRefGetAddress #ifdef USE_CUDA_NAMES function hipTexRefGetAddress_(dev_ptr,texRef) bind(c, name="cudaTexRefGetAddress") #else function hipTexRefGetAddress_(dev_ptr,texRef) bind(c, name="hipTexRefGetAddress") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetAddress_ #else integer(kind(hipSuccess)) :: hipTexRefGetAddress_ #endif type(c_ptr) :: dev_ptr type(c_ptr) :: texRef end function end interface interface hipTexRefGetAddressMode #ifdef USE_CUDA_NAMES function hipTexRefGetAddressMode_(pam,texRef,dim) bind(c, name="cudaTexRefGetAddressMode") #else function hipTexRefGetAddressMode_(pam,texRef,dim) bind(c, name="hipTexRefGetAddressMode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetAddressMode_ #else integer(kind(hipSuccess)) :: hipTexRefGetAddressMode_ #endif type(c_ptr),value :: pam type(c_ptr) :: texRef integer(c_int),value :: dim end function end interface interface hipTexRefGetFilterMode #ifdef USE_CUDA_NAMES function hipTexRefGetFilterMode_(pfm,texRef) bind(c, name="cudaTexRefGetFilterMode") #else function hipTexRefGetFilterMode_(pfm,texRef) bind(c, name="hipTexRefGetFilterMode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetFilterMode_ #else integer(kind(hipSuccess)) :: hipTexRefGetFilterMode_ #endif type(c_ptr),value :: pfm type(c_ptr) :: texRef end function end interface interface hipTexRefGetFlags #ifdef USE_CUDA_NAMES function hipTexRefGetFlags_(pFlags,texRef) bind(c, name="cudaTexRefGetFlags") #else function hipTexRefGetFlags_(pFlags,texRef) bind(c, name="hipTexRefGetFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetFlags_ #else integer(kind(hipSuccess)) :: hipTexRefGetFlags_ #endif type(c_ptr),value :: pFlags type(c_ptr) :: texRef end function end interface interface hipTexRefGetFormat #ifdef USE_CUDA_NAMES function hipTexRefGetFormat_(pFormat,pNumChannels,texRef) bind(c, name="cudaTexRefGetFormat") #else function hipTexRefGetFormat_(pFormat,pNumChannels,texRef) bind(c, name="hipTexRefGetFormat") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetFormat_ #else integer(kind(hipSuccess)) :: hipTexRefGetFormat_ #endif type(c_ptr),value :: pFormat type(c_ptr),value :: pNumChannels type(c_ptr) :: texRef end function end interface interface hipTexRefGetMaxAnisotropy #ifdef USE_CUDA_NAMES function hipTexRefGetMaxAnisotropy_(pmaxAnsio,texRef) bind(c, name="cudaTexRefGetMaxAnisotropy") #else function hipTexRefGetMaxAnisotropy_(pmaxAnsio,texRef) bind(c, name="hipTexRefGetMaxAnisotropy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetMaxAnisotropy_ #else integer(kind(hipSuccess)) :: hipTexRefGetMaxAnisotropy_ #endif type(c_ptr),value :: pmaxAnsio type(c_ptr) :: texRef end function end interface interface hipTexRefGetMipmapFilterMode #ifdef USE_CUDA_NAMES function hipTexRefGetMipmapFilterMode_(pfm,texRef) bind(c, name="cudaTexRefGetMipmapFilterMode") #else function hipTexRefGetMipmapFilterMode_(pfm,texRef) bind(c, name="hipTexRefGetMipmapFilterMode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetMipmapFilterMode_ #else integer(kind(hipSuccess)) :: hipTexRefGetMipmapFilterMode_ #endif type(c_ptr),value :: pfm type(c_ptr) :: texRef end function end interface interface hipTexRefGetMipmapLevelBias #ifdef USE_CUDA_NAMES function hipTexRefGetMipmapLevelBias_(pbias,texRef) bind(c, name="cudaTexRefGetMipmapLevelBias") #else function hipTexRefGetMipmapLevelBias_(pbias,texRef) bind(c, name="hipTexRefGetMipmapLevelBias") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetMipmapLevelBias_ #else integer(kind(hipSuccess)) :: hipTexRefGetMipmapLevelBias_ #endif type(c_ptr),value :: pbias type(c_ptr) :: texRef end function end interface interface hipTexRefGetMipmapLevelClamp #ifdef USE_CUDA_NAMES function hipTexRefGetMipmapLevelClamp_(pminMipmapLevelClamp,pmaxMipmapLevelClamp,texRef) bind(c, name="cudaTexRefGetMipmapLevelClamp") #else function hipTexRefGetMipmapLevelClamp_(pminMipmapLevelClamp,pmaxMipmapLevelClamp,texRef) bind(c, name="hipTexRefGetMipmapLevelClamp") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetMipmapLevelClamp_ #else integer(kind(hipSuccess)) :: hipTexRefGetMipmapLevelClamp_ #endif type(c_ptr),value :: pminMipmapLevelClamp type(c_ptr),value :: pmaxMipmapLevelClamp type(c_ptr) :: texRef end function end interface interface hipTexRefGetMipMappedArray #ifdef USE_CUDA_NAMES function hipTexRefGetMipMappedArray_(pArray,texRef) bind(c, name="cudaTexRefGetMipMappedArray") #else function hipTexRefGetMipMappedArray_(pArray,texRef) bind(c, name="hipTexRefGetMipMappedArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefGetMipMappedArray_ #else integer(kind(hipSuccess)) :: hipTexRefGetMipMappedArray_ #endif type(c_ptr) :: pArray type(c_ptr) :: texRef end function end interface interface hipTexRefSetAddress #ifdef USE_CUDA_NAMES function hipTexRefSetAddress_(ByteOffset,texRef,dptr,bytes) bind(c, name="cudaTexRefSetAddress") #else function hipTexRefSetAddress_(ByteOffset,texRef,dptr,bytes) bind(c, name="hipTexRefSetAddress") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetAddress_ #else integer(kind(hipSuccess)) :: hipTexRefSetAddress_ #endif integer(c_size_t) :: ByteOffset type(c_ptr) :: texRef type(c_ptr),value :: dptr integer(c_size_t),value :: bytes end function end interface interface hipTexRefSetAddress2D #ifdef USE_CUDA_NAMES function hipTexRefSetAddress2D_(texRef,desc,dptr,Pitch) bind(c, name="cudaTexRefSetAddress2D") #else function hipTexRefSetAddress2D_(texRef,desc,dptr,Pitch) bind(c, name="hipTexRefSetAddress2D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetAddress2D_ #else integer(kind(hipSuccess)) :: hipTexRefSetAddress2D_ #endif type(c_ptr) :: texRef type(c_ptr) :: desc type(c_ptr),value :: dptr integer(c_size_t),value :: Pitch end function end interface interface hipTexRefSetMaxAnisotropy #ifdef USE_CUDA_NAMES function hipTexRefSetMaxAnisotropy_(texRef,maxAniso) bind(c, name="cudaTexRefSetMaxAnisotropy") #else function hipTexRefSetMaxAnisotropy_(texRef,maxAniso) bind(c, name="hipTexRefSetMaxAnisotropy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetMaxAnisotropy_ #else integer(kind(hipSuccess)) :: hipTexRefSetMaxAnisotropy_ #endif type(c_ptr) :: texRef integer(c_int),value :: maxAniso end function end interface interface hipBindTextureToMipmappedArray #ifdef USE_CUDA_NAMES function hipBindTextureToMipmappedArray_(tex,mipmappedArray,desc) bind(c, name="cudaBindTextureToMipmappedArray") #else function hipBindTextureToMipmappedArray_(tex,mipmappedArray,desc) bind(c, name="hipBindTextureToMipmappedArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipBindTextureToMipmappedArray_ #else integer(kind(hipSuccess)) :: hipBindTextureToMipmappedArray_ #endif type(c_ptr) :: tex type(c_ptr),value :: mipmappedArray type(c_ptr) :: desc end function end interface interface hipCreateTextureObject #ifdef USE_CUDA_NAMES function hipCreateTextureObject_(pTexObject,pResDesc,pTexDesc,pResViewDesc) bind(c, name="cudaCreateTextureObject") #else function hipCreateTextureObject_(pTexObject,pResDesc,pTexDesc,pResViewDesc) bind(c, name="hipCreateTextureObject") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipCreateTextureObject_ #else integer(kind(hipSuccess)) :: hipCreateTextureObject_ #endif type(c_ptr) :: pTexObject type(c_ptr) :: pResDesc type(c_ptr) :: pTexDesc type(c_ptr),value :: pResViewDesc end function end interface interface hipDestroyTextureObject #ifdef USE_CUDA_NAMES function hipDestroyTextureObject_(textureObject) bind(c, name="cudaDestroyTextureObject") #else function hipDestroyTextureObject_(textureObject) bind(c, name="hipDestroyTextureObject") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipDestroyTextureObject_ #else integer(kind(hipSuccess)) :: hipDestroyTextureObject_ #endif type(c_ptr),value :: textureObject end function end interface interface hipGetChannelDesc #ifdef USE_CUDA_NAMES function hipGetChannelDesc_(desc,array) bind(c, name="cudaGetChannelDesc") #else function hipGetChannelDesc_(desc,array) bind(c, name="hipGetChannelDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetChannelDesc_ #else integer(kind(hipSuccess)) :: hipGetChannelDesc_ #endif type(c_ptr) :: desc type(c_ptr),value :: array end function end interface interface hipGetTextureObjectResourceDesc #ifdef USE_CUDA_NAMES function hipGetTextureObjectResourceDesc_(pResDesc,textureObject) bind(c, name="cudaGetTextureObjectResourceDesc") #else function hipGetTextureObjectResourceDesc_(pResDesc,textureObject) bind(c, name="hipGetTextureObjectResourceDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetTextureObjectResourceDesc_ #else integer(kind(hipSuccess)) :: hipGetTextureObjectResourceDesc_ #endif type(c_ptr) :: pResDesc type(c_ptr),value :: textureObject end function end interface interface hipGetTextureObjectResourceViewDesc #ifdef USE_CUDA_NAMES function hipGetTextureObjectResourceViewDesc_(pResViewDesc,textureObject) bind(c, name="cudaGetTextureObjectResourceViewDesc") #else function hipGetTextureObjectResourceViewDesc_(pResViewDesc,textureObject) bind(c, name="hipGetTextureObjectResourceViewDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetTextureObjectResourceViewDesc_ #else integer(kind(hipSuccess)) :: hipGetTextureObjectResourceViewDesc_ #endif type(c_ptr),value :: pResViewDesc type(c_ptr),value :: textureObject end function end interface interface hipGetTextureObjectTextureDesc #ifdef USE_CUDA_NAMES function hipGetTextureObjectTextureDesc_(pTexDesc,textureObject) bind(c, name="cudaGetTextureObjectTextureDesc") #else function hipGetTextureObjectTextureDesc_(pTexDesc,textureObject) bind(c, name="hipGetTextureObjectTextureDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGetTextureObjectTextureDesc_ #else integer(kind(hipSuccess)) :: hipGetTextureObjectTextureDesc_ #endif type(c_ptr) :: pTexDesc type(c_ptr),value :: textureObject end function end interface interface hipTexRefSetAddressMode #ifdef USE_CUDA_NAMES function hipTexRefSetAddressMode_(texRef,dim,am) bind(c, name="cudaTexRefSetAddressMode") #else function hipTexRefSetAddressMode_(texRef,dim,am) bind(c, name="hipTexRefSetAddressMode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetAddressMode_ #else integer(kind(hipSuccess)) :: hipTexRefSetAddressMode_ #endif type(c_ptr) :: texRef integer(c_int),value :: dim integer(kind(hipAddressModeWrap)),value :: am end function end interface interface hipTexRefSetArray #ifdef USE_CUDA_NAMES function hipTexRefSetArray_(tex,array,flags) bind(c, name="cudaTexRefSetArray") #else function hipTexRefSetArray_(tex,array,flags) bind(c, name="hipTexRefSetArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetArray_ #else integer(kind(hipSuccess)) :: hipTexRefSetArray_ #endif type(c_ptr) :: tex type(c_ptr),value :: array integer(c_int),value :: flags end function end interface interface hipTexRefSetFilterMode #ifdef USE_CUDA_NAMES function hipTexRefSetFilterMode_(texRef,fm) bind(c, name="cudaTexRefSetFilterMode") #else function hipTexRefSetFilterMode_(texRef,fm) bind(c, name="hipTexRefSetFilterMode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetFilterMode_ #else integer(kind(hipSuccess)) :: hipTexRefSetFilterMode_ #endif type(c_ptr) :: texRef integer(kind(hipFilterModePoint)),value :: fm end function end interface interface hipTexRefSetFlags #ifdef USE_CUDA_NAMES function hipTexRefSetFlags_(texRef,Flags) bind(c, name="cudaTexRefSetFlags") #else function hipTexRefSetFlags_(texRef,Flags) bind(c, name="hipTexRefSetFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetFlags_ #else integer(kind(hipSuccess)) :: hipTexRefSetFlags_ #endif type(c_ptr) :: texRef integer(c_int),value :: Flags end function end interface interface hipTexRefSetFormat #ifdef USE_CUDA_NAMES function hipTexRefSetFormat_(texRef,fmt,NumPackedComponents) bind(c, name="cudaTexRefSetFormat") #else function hipTexRefSetFormat_(texRef,fmt,NumPackedComponents) bind(c, name="hipTexRefSetFormat") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetFormat_ #else integer(kind(hipSuccess)) :: hipTexRefSetFormat_ #endif type(c_ptr) :: texRef integer(kind(HIP_AD_FORMAT_UNSIGNED_INT8)),value :: fmt integer(c_int),value :: NumPackedComponents end function end interface interface hipTexObjectCreate #ifdef USE_CUDA_NAMES function hipTexObjectCreate_(pTexObject,pResDesc,pTexDesc,pResViewDesc) bind(c, name="cudaTexObjectCreate") #else function hipTexObjectCreate_(pTexObject,pResDesc,pTexDesc,pResViewDesc) bind(c, name="hipTexObjectCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexObjectCreate_ #else integer(kind(hipSuccess)) :: hipTexObjectCreate_ #endif type(c_ptr) :: pTexObject type(c_ptr),value :: pResDesc type(c_ptr),value :: pTexDesc type(c_ptr),value :: pResViewDesc end function end interface interface hipTexObjectDestroy #ifdef USE_CUDA_NAMES function hipTexObjectDestroy_(texObject) bind(c, name="cudaTexObjectDestroy") #else function hipTexObjectDestroy_(texObject) bind(c, name="hipTexObjectDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexObjectDestroy_ #else integer(kind(hipSuccess)) :: hipTexObjectDestroy_ #endif type(c_ptr),value :: texObject end function end interface interface hipTexObjectGetResourceDesc #ifdef USE_CUDA_NAMES function hipTexObjectGetResourceDesc_(pResDesc,texObject) bind(c, name="cudaTexObjectGetResourceDesc") #else function hipTexObjectGetResourceDesc_(pResDesc,texObject) bind(c, name="hipTexObjectGetResourceDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexObjectGetResourceDesc_ #else integer(kind(hipSuccess)) :: hipTexObjectGetResourceDesc_ #endif type(c_ptr),value :: pResDesc type(c_ptr),value :: texObject end function end interface interface hipTexObjectGetResourceViewDesc #ifdef USE_CUDA_NAMES function hipTexObjectGetResourceViewDesc_(pResViewDesc,texObject) bind(c, name="cudaTexObjectGetResourceViewDesc") #else function hipTexObjectGetResourceViewDesc_(pResViewDesc,texObject) bind(c, name="hipTexObjectGetResourceViewDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexObjectGetResourceViewDesc_ #else integer(kind(hipSuccess)) :: hipTexObjectGetResourceViewDesc_ #endif type(c_ptr),value :: pResViewDesc type(c_ptr),value :: texObject end function end interface interface hipTexObjectGetTextureDesc #ifdef USE_CUDA_NAMES function hipTexObjectGetTextureDesc_(pTexDesc,texObject) bind(c, name="cudaTexObjectGetTextureDesc") #else function hipTexObjectGetTextureDesc_(pTexDesc,texObject) bind(c, name="hipTexObjectGetTextureDesc") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexObjectGetTextureDesc_ #else integer(kind(hipSuccess)) :: hipTexObjectGetTextureDesc_ #endif type(c_ptr),value :: pTexDesc type(c_ptr),value :: texObject end function end interface interface hipTexRefSetBorderColor #ifdef USE_CUDA_NAMES function hipTexRefSetBorderColor_(texRef,pBorderColor) bind(c, name="cudaTexRefSetBorderColor") #else function hipTexRefSetBorderColor_(texRef,pBorderColor) bind(c, name="hipTexRefSetBorderColor") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetBorderColor_ #else integer(kind(hipSuccess)) :: hipTexRefSetBorderColor_ #endif type(c_ptr) :: texRef type(c_ptr),value :: pBorderColor end function end interface interface hipTexRefSetMipmapFilterMode #ifdef USE_CUDA_NAMES function hipTexRefSetMipmapFilterMode_(texRef,fm) bind(c, name="cudaTexRefSetMipmapFilterMode") #else function hipTexRefSetMipmapFilterMode_(texRef,fm) bind(c, name="hipTexRefSetMipmapFilterMode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetMipmapFilterMode_ #else integer(kind(hipSuccess)) :: hipTexRefSetMipmapFilterMode_ #endif type(c_ptr) :: texRef integer(kind(hipFilterModePoint)),value :: fm end function end interface interface hipTexRefSetMipmapLevelBias #ifdef USE_CUDA_NAMES function hipTexRefSetMipmapLevelBias_(texRef,bias) bind(c, name="cudaTexRefSetMipmapLevelBias") #else function hipTexRefSetMipmapLevelBias_(texRef,bias) bind(c, name="hipTexRefSetMipmapLevelBias") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetMipmapLevelBias_ #else integer(kind(hipSuccess)) :: hipTexRefSetMipmapLevelBias_ #endif type(c_ptr) :: texRef real(c_float),value :: bias end function end interface interface hipTexRefSetMipmapLevelClamp #ifdef USE_CUDA_NAMES function hipTexRefSetMipmapLevelClamp_(texRef,minMipMapLevelClamp,maxMipMapLevelClamp) bind(c, name="cudaTexRefSetMipmapLevelClamp") #else function hipTexRefSetMipmapLevelClamp_(texRef,minMipMapLevelClamp,maxMipMapLevelClamp) bind(c, name="hipTexRefSetMipmapLevelClamp") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetMipmapLevelClamp_ #else integer(kind(hipSuccess)) :: hipTexRefSetMipmapLevelClamp_ #endif type(c_ptr) :: texRef real(c_float),value :: minMipMapLevelClamp real(c_float),value :: maxMipMapLevelClamp end function end interface interface hipTexRefSetMipmappedArray #ifdef USE_CUDA_NAMES function hipTexRefSetMipmappedArray_(texRef,mipmappedArray,Flags) bind(c, name="cudaTexRefSetMipmappedArray") #else function hipTexRefSetMipmappedArray_(texRef,mipmappedArray,Flags) bind(c, name="hipTexRefSetMipmappedArray") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipTexRefSetMipmappedArray_ #else integer(kind(hipSuccess)) :: hipTexRefSetMipmappedArray_ #endif type(c_ptr) :: texRef type(c_ptr) :: mipmappedArray integer(c_int),value :: Flags end function end interface interface hipMipmappedArrayCreate #ifdef USE_CUDA_NAMES function hipMipmappedArrayCreate_(pHandle,pMipmappedArrayDesc,numMipmapLevels) bind(c, name="cudaMipmappedArrayCreate") #else function hipMipmappedArrayCreate_(pHandle,pMipmappedArrayDesc,numMipmapLevels) bind(c, name="hipMipmappedArrayCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMipmappedArrayCreate_ #else integer(kind(hipSuccess)) :: hipMipmappedArrayCreate_ #endif type(c_ptr) :: pHandle type(c_ptr) :: pMipmappedArrayDesc integer(c_int),value :: numMipmapLevels end function end interface interface hipMipmappedArrayDestroy #ifdef USE_CUDA_NAMES function hipMipmappedArrayDestroy_(hMipmappedArray) bind(c, name="cudaMipmappedArrayDestroy") #else function hipMipmappedArrayDestroy_(hMipmappedArray) bind(c, name="hipMipmappedArrayDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMipmappedArrayDestroy_ #else integer(kind(hipSuccess)) :: hipMipmappedArrayDestroy_ #endif type(c_ptr),value :: hMipmappedArray end function end interface interface hipMipmappedArrayGetLevel #ifdef USE_CUDA_NAMES function hipMipmappedArrayGetLevel_(pLevelArray,hMipMappedArray,level) bind(c, name="cudaMipmappedArrayGetLevel") #else function hipMipmappedArrayGetLevel_(pLevelArray,hMipMappedArray,level) bind(c, name="hipMipmappedArrayGetLevel") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMipmappedArrayGetLevel_ #else integer(kind(hipSuccess)) :: hipMipmappedArrayGetLevel_ #endif type(c_ptr) :: pLevelArray type(c_ptr),value :: hMipMappedArray integer(c_int),value :: level end function end interface !> !> @defgroup Callback Callback Activity APIs !> @{ !> This section describes the callback/Activity of HIP runtime API. interface hipRegisterApiCallback #ifdef USE_CUDA_NAMES function hipRegisterApiCallback_(id,fun,arg) bind(c, name="cudaRegisterApiCallback") #else function hipRegisterApiCallback_(id,fun,arg) bind(c, name="hipRegisterApiCallback") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipRegisterApiCallback_ #else integer(kind(hipSuccess)) :: hipRegisterApiCallback_ #endif integer(c_int),value :: id type(c_ptr),value :: fun type(c_ptr),value :: arg end function end interface interface hipRemoveApiCallback #ifdef USE_CUDA_NAMES function hipRemoveApiCallback_(id) bind(c, name="cudaRemoveApiCallback") #else function hipRemoveApiCallback_(id) bind(c, name="hipRemoveApiCallback") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipRemoveApiCallback_ #else integer(kind(hipSuccess)) :: hipRemoveApiCallback_ #endif integer(c_int),value :: id end function end interface interface hipRegisterActivityCallback #ifdef USE_CUDA_NAMES function hipRegisterActivityCallback_(id,fun,arg) bind(c, name="cudaRegisterActivityCallback") #else function hipRegisterActivityCallback_(id,fun,arg) bind(c, name="hipRegisterActivityCallback") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipRegisterActivityCallback_ #else integer(kind(hipSuccess)) :: hipRegisterActivityCallback_ #endif integer(c_int),value :: id type(c_ptr),value :: fun type(c_ptr),value :: arg end function end interface interface hipRemoveActivityCallback #ifdef USE_CUDA_NAMES function hipRemoveActivityCallback_(id) bind(c, name="cudaRemoveActivityCallback") #else function hipRemoveActivityCallback_(id) bind(c, name="hipRemoveActivityCallback") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipRemoveActivityCallback_ #else integer(kind(hipSuccess)) :: hipRemoveActivityCallback_ #endif integer(c_int),value :: id end function !> @} end interface !> @brief Begins graph capture on a stream. !> !> @param [in] stream - Stream to initiate capture. !> @param [in] mode - Controls the interaction of this capture sequence with other API calls that !> are not safe. !> !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipStreamBeginCapture #ifdef USE_CUDA_NAMES function hipStreamBeginCapture_(stream,mode) bind(c, name="cudaStreamBeginCapture") #else function hipStreamBeginCapture_(stream,mode) bind(c, name="hipStreamBeginCapture") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamBeginCapture_ #else integer(kind(hipSuccess)) :: hipStreamBeginCapture_ #endif type(c_ptr),value :: stream integer(kind(hipStreamCaptureModeGlobal)),value :: mode end function end interface !> @brief Ends capture on a stream, returning the captured graph. !> !> @param [in] stream - Stream to end capture. !> @param [out] pGraph - returns the graph captured. !> !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipStreamEndCapture #ifdef USE_CUDA_NAMES function hipStreamEndCapture_(stream,pGraph) bind(c, name="cudaStreamEndCapture") #else function hipStreamEndCapture_(stream,pGraph) bind(c, name="hipStreamEndCapture") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamEndCapture_ #else integer(kind(hipSuccess)) :: hipStreamEndCapture_ #endif type(c_ptr),value :: stream type(c_ptr) :: pGraph end function end interface !> @brief Get capture status of a stream. !> !> @param [in] stream - Stream under capture. !> @param [out] pCaptureStatus - returns current status of the capture. !> @param [out] pId - unique ID of the capture. !> !> @returns hipSuccess, hipErrorStreamCaptureImplicit !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipStreamGetCaptureInfo #ifdef USE_CUDA_NAMES function hipStreamGetCaptureInfo_(stream,pCaptureStatus,pId) bind(c, name="cudaStreamGetCaptureInfo") #else function hipStreamGetCaptureInfo_(stream,pCaptureStatus,pId) bind(c, name="hipStreamGetCaptureInfo") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamGetCaptureInfo_ #else integer(kind(hipSuccess)) :: hipStreamGetCaptureInfo_ #endif type(c_ptr),value :: stream type(c_ptr),value :: pCaptureStatus type(c_ptr),value :: pId end function end interface !> @brief Get stream's capture state !> !> @param [in] stream - Stream under capture. !> @param [out] captureStatus_out - returns current status of the capture. !> @param [out] id_out - unique ID of the capture. !> @param [in] graph_out - returns the graph being captured into. !> @param [out] dependencies_out - returns pointer to an array of nodes. !> @param [out] numDependencies_out - returns size of the array returned in dependencies_out. !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorStreamCaptureImplicit !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipStreamGetCaptureInfo_v2 #ifdef USE_CUDA_NAMES function hipStreamGetCaptureInfo_v2_(stream,captureStatus_out,id_out,graph_out,dependencies_out,numDependencies_out) bind(c, name="cudaStreamGetCaptureInfo_v2") #else function hipStreamGetCaptureInfo_v2_(stream,captureStatus_out,id_out,graph_out,dependencies_out,numDependencies_out) bind(c, name="hipStreamGetCaptureInfo_v2") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamGetCaptureInfo_v2_ #else integer(kind(hipSuccess)) :: hipStreamGetCaptureInfo_v2_ #endif type(c_ptr),value :: stream type(c_ptr),value :: captureStatus_out type(c_ptr),value :: id_out type(c_ptr) :: graph_out type(c_ptr) :: dependencies_out type(c_ptr),value :: numDependencies_out end function end interface !> @brief Get stream's capture state !> !> @param [in] stream - Stream under capture. !> @param [out] pCaptureStatus - returns current status of the capture. !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorStreamCaptureImplicit !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipStreamIsCapturing #ifdef USE_CUDA_NAMES function hipStreamIsCapturing_(stream,pCaptureStatus) bind(c, name="cudaStreamIsCapturing") #else function hipStreamIsCapturing_(stream,pCaptureStatus) bind(c, name="hipStreamIsCapturing") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamIsCapturing_ #else integer(kind(hipSuccess)) :: hipStreamIsCapturing_ #endif type(c_ptr),value :: stream type(c_ptr),value :: pCaptureStatus end function end interface !> @brief Update the set of dependencies in a capturing stream !> !> @param [in] stream - Stream under capture. !> @param [in] dependencies - pointer to an array of nodes to Add/Replace. !> @param [in] numDependencies - size of the array in dependencies. !> @returns hipSuccess, hipErrorInvalidValue, hipErrorIllegalState !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipStreamUpdateCaptureDependencies #ifdef USE_CUDA_NAMES function hipStreamUpdateCaptureDependencies_(stream,dependencies,numDependencies,flags) bind(c, name="cudaStreamUpdateCaptureDependencies") #else function hipStreamUpdateCaptureDependencies_(stream,dependencies,numDependencies,flags) bind(c, name="hipStreamUpdateCaptureDependencies") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipStreamUpdateCaptureDependencies_ #else integer(kind(hipSuccess)) :: hipStreamUpdateCaptureDependencies_ #endif type(c_ptr),value :: stream type(c_ptr) :: dependencies integer(c_size_t),value :: numDependencies integer(c_int),value :: flags end function end interface !> @brief Creates a graph !> !> @param [out] pGraph - pointer to graph to create. !> @param [in] flags - flags for graph creation, must be 0. !> !> @returns hipSuccess, hipErrorInvalidValue, hipErrorMemoryAllocation !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphCreate #ifdef USE_CUDA_NAMES function hipGraphCreate_(pGraph,flags) bind(c, name="cudaGraphCreate") #else function hipGraphCreate_(pGraph,flags) bind(c, name="hipGraphCreate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphCreate_ #else integer(kind(hipSuccess)) :: hipGraphCreate_ #endif type(c_ptr) :: pGraph integer(c_int),value :: flags end function end interface !> @brief Destroys a graph !> !> @param [in] graph - instance of graph to destroy. !> !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphDestroy #ifdef USE_CUDA_NAMES function hipGraphDestroy_(graph) bind(c, name="cudaGraphDestroy") #else function hipGraphDestroy_(graph) bind(c, name="hipGraphDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphDestroy_ #else integer(kind(hipSuccess)) :: hipGraphDestroy_ #endif type(c_ptr),value :: graph end function end interface !> @brief Adds dependency edges to a graph. !> !> @param [in] graph - instance of the graph to add dependencies. !> @param [in] from - pointer to the graph nodes with dependenties to add from. !> @param [in] to - pointer to the graph nodes to add dependenties to. !> @param [in] numDependencies - the number of dependencies to add. !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphAddDependencies #ifdef USE_CUDA_NAMES function hipGraphAddDependencies_(graph,from,to,numDependencies) bind(c, name="cudaGraphAddDependencies") #else function hipGraphAddDependencies_(graph,from,to,numDependencies) bind(c, name="hipGraphAddDependencies") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddDependencies_ #else integer(kind(hipSuccess)) :: hipGraphAddDependencies_ #endif type(c_ptr),value :: graph type(c_ptr) :: from type(c_ptr) :: to integer(c_size_t),value :: numDependencies end function end interface !> @brief Removes dependency edges from a graph. !> !> @param [in] graph - instance of the graph to remove dependencies. !> @param [in] from - Array of nodes that provide the dependencies. !> @param [in] to - Array of dependent nodes. !> @param [in] numDependencies - the number of dependencies to remove. !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphRemoveDependencies #ifdef USE_CUDA_NAMES function hipGraphRemoveDependencies_(graph,from,to,numDependencies) bind(c, name="cudaGraphRemoveDependencies") #else function hipGraphRemoveDependencies_(graph,from,to,numDependencies) bind(c, name="hipGraphRemoveDependencies") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphRemoveDependencies_ #else integer(kind(hipSuccess)) :: hipGraphRemoveDependencies_ #endif type(c_ptr),value :: graph type(c_ptr) :: from type(c_ptr) :: to integer(c_size_t),value :: numDependencies end function end interface !> @brief Returns a graph's dependency edges. !> !> @param [in] graph - instance of the graph to get the edges from. !> @param [out] from - pointer to the graph nodes to return edge endpoints. !> @param [out] to - pointer to the graph nodes to return edge endpoints. !> @param [out] numEdges - returns number of edges. !> @returns hipSuccess, hipErrorInvalidValue !> !> from and to may both be NULL, in which case this function only returns the number of edges in !> numEdges. Otherwise, numEdges entries will be filled in. If numEdges is higher than the actual !> number of edges, the remaining entries in from and to will be set to NULL, and the number of !> edges actually returned will be written to numEdges !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphGetEdges #ifdef USE_CUDA_NAMES function hipGraphGetEdges_(graph,from,to,numEdges) bind(c, name="cudaGraphGetEdges") #else function hipGraphGetEdges_(graph,from,to,numEdges) bind(c, name="hipGraphGetEdges") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphGetEdges_ #else integer(kind(hipSuccess)) :: hipGraphGetEdges_ #endif type(c_ptr),value :: graph type(c_ptr) :: from type(c_ptr) :: to type(c_ptr),value :: numEdges end function end interface !> @brief Returns graph nodes. !> !> @param [in] graph - instance of graph to get the nodes. !> @param [out] nodes - pointer to return the graph nodes. !> @param [out] numNodes - returns number of graph nodes. !> @returns hipSuccess, hipErrorInvalidValue !> !> nodes may be NULL, in which case this function will return the number of nodes in numNodes. !> Otherwise, numNodes entries will be filled in. If numNodes is higher than the actual number of !> nodes, the remaining entries in nodes will be set to NULL, and the number of nodes actually !> obtained will be returned in numNodes. !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphGetNodes #ifdef USE_CUDA_NAMES function hipGraphGetNodes_(graph,nodes,numNodes) bind(c, name="cudaGraphGetNodes") #else function hipGraphGetNodes_(graph,nodes,numNodes) bind(c, name="hipGraphGetNodes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphGetNodes_ #else integer(kind(hipSuccess)) :: hipGraphGetNodes_ #endif type(c_ptr),value :: graph type(c_ptr) :: nodes type(c_ptr),value :: numNodes end function end interface !> @brief Returns graph's root nodes. !> !> @param [in] graph - instance of the graph to get the nodes. !> @param [out] pRootNodes - pointer to return the graph's root nodes. !> @param [out] pNumRootNodes - returns the number of graph's root nodes. !> @returns hipSuccess, hipErrorInvalidValue !> !> pRootNodes may be NULL, in which case this function will return the number of root nodes in !> pNumRootNodes. Otherwise, pNumRootNodes entries will be filled in. If pNumRootNodes is higher !> than the actual number of root nodes, the remaining entries in pRootNodes will be set to NULL, !> and the number of nodes actually obtained will be returned in pNumRootNodes. !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphGetRootNodes #ifdef USE_CUDA_NAMES function hipGraphGetRootNodes_(graph,pRootNodes,pNumRootNodes) bind(c, name="cudaGraphGetRootNodes") #else function hipGraphGetRootNodes_(graph,pRootNodes,pNumRootNodes) bind(c, name="hipGraphGetRootNodes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphGetRootNodes_ #else integer(kind(hipSuccess)) :: hipGraphGetRootNodes_ #endif type(c_ptr),value :: graph type(c_ptr) :: pRootNodes type(c_ptr),value :: pNumRootNodes end function end interface !> @brief Returns a node's dependencies. !> !> @param [in] node - graph node to get the dependencies from. !> @param [out] pDependencies - pointer to to return the dependencies. !> @param [out] pNumDependencies - returns the number of graph node dependencies. !> @returns hipSuccess, hipErrorInvalidValue !> !> pDependencies may be NULL, in which case this function will return the number of dependencies in !> pNumDependencies. Otherwise, pNumDependencies entries will be filled in. If pNumDependencies is !> higher than the actual number of dependencies, the remaining entries in pDependencies will be set !> to NULL, and the number of nodes actually obtained will be returned in pNumDependencies. !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphNodeGetDependencies #ifdef USE_CUDA_NAMES function hipGraphNodeGetDependencies_(node,pDependencies,pNumDependencies) bind(c, name="cudaGraphNodeGetDependencies") #else function hipGraphNodeGetDependencies_(node,pDependencies,pNumDependencies) bind(c, name="hipGraphNodeGetDependencies") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphNodeGetDependencies_ #else integer(kind(hipSuccess)) :: hipGraphNodeGetDependencies_ #endif type(c_ptr),value :: node type(c_ptr) :: pDependencies type(c_ptr),value :: pNumDependencies end function end interface !> @brief Returns a node's dependent nodes. !> !> @param [in] node - graph node to get the Dependent nodes from. !> @param [out] pDependentNodes - pointer to return the graph dependent nodes. !> @param [out] pNumDependentNodes - returns the number of graph node dependent nodes. !> @returns hipSuccess, hipErrorInvalidValue !> !> DependentNodes may be NULL, in which case this function will return the number of dependent nodes !> in pNumDependentNodes. Otherwise, pNumDependentNodes entries will be filled in. If !> pNumDependentNodes is higher than the actual number of dependent nodes, the remaining entries in !> pDependentNodes will be set to NULL, and the number of nodes actually obtained will be returned !> in pNumDependentNodes. !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphNodeGetDependentNodes #ifdef USE_CUDA_NAMES function hipGraphNodeGetDependentNodes_(node,pDependentNodes,pNumDependentNodes) bind(c, name="cudaGraphNodeGetDependentNodes") #else function hipGraphNodeGetDependentNodes_(node,pDependentNodes,pNumDependentNodes) bind(c, name="hipGraphNodeGetDependentNodes") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphNodeGetDependentNodes_ #else integer(kind(hipSuccess)) :: hipGraphNodeGetDependentNodes_ #endif type(c_ptr),value :: node type(c_ptr) :: pDependentNodes type(c_ptr),value :: pNumDependentNodes end function end interface !> @brief Returns a node's type. !> !> @param [in] node - instance of the graph to add dependencies. !> @param [out] pType - pointer to the return the type !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphNodeGetType #ifdef USE_CUDA_NAMES function hipGraphNodeGetType_(node,pType) bind(c, name="cudaGraphNodeGetType") #else function hipGraphNodeGetType_(node,pType) bind(c, name="hipGraphNodeGetType") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphNodeGetType_ #else integer(kind(hipSuccess)) :: hipGraphNodeGetType_ #endif type(c_ptr),value :: node type(c_ptr),value :: pType end function end interface !> @brief Remove a node from the graph. !> !> @param [in] node - graph node to remove !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphDestroyNode #ifdef USE_CUDA_NAMES function hipGraphDestroyNode_(node) bind(c, name="cudaGraphDestroyNode") #else function hipGraphDestroyNode_(node) bind(c, name="hipGraphDestroyNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphDestroyNode_ #else integer(kind(hipSuccess)) :: hipGraphDestroyNode_ #endif type(c_ptr),value :: node end function end interface !> @brief Clones a graph. !> !> @param [out] pGraphClone - Returns newly created cloned graph. !> @param [in] originalGraph - original graph to clone from. !> @returns hipSuccess, hipErrorInvalidValue, hipErrorMemoryAllocation !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphClone #ifdef USE_CUDA_NAMES function hipGraphClone_(pGraphClone,originalGraph) bind(c, name="cudaGraphClone") #else function hipGraphClone_(pGraphClone,originalGraph) bind(c, name="hipGraphClone") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphClone_ #else integer(kind(hipSuccess)) :: hipGraphClone_ #endif type(c_ptr) :: pGraphClone type(c_ptr),value :: originalGraph end function end interface !> @brief Finds a cloned version of a node. !> !> @param [out] pNode - Returns the cloned node. !> @param [in] originalNode - original node handle. !> @param [in] clonedGraph - Cloned graph to query. !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphNodeFindInClone #ifdef USE_CUDA_NAMES function hipGraphNodeFindInClone_(pNode,originalNode,clonedGraph) bind(c, name="cudaGraphNodeFindInClone") #else function hipGraphNodeFindInClone_(pNode,originalNode,clonedGraph) bind(c, name="hipGraphNodeFindInClone") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphNodeFindInClone_ #else integer(kind(hipSuccess)) :: hipGraphNodeFindInClone_ #endif type(c_ptr) :: pNode type(c_ptr),value :: originalNode type(c_ptr),value :: clonedGraph end function end interface !> @brief Creates an executable graph from a graph !> !> @param [out] pGraphExec - pointer to instantiated executable graph that is created. !> @param [in] graph - instance of graph to instantiate. !> @param [out] pErrorNode - pointer to error node in case error occured in graph instantiation, !> it could modify the correponding node. !> @param [out] pLogBuffer - pointer to log buffer. !> @param [out] bufferSize - the size of log buffer. !> !> @returns hipSuccess, hipErrorOutOfMemory !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphInstantiate #ifdef USE_CUDA_NAMES function hipGraphInstantiate_(pGraphExec,graph,pErrorNode,pLogBuffer,bufferSize) bind(c, name="cudaGraphInstantiate") #else function hipGraphInstantiate_(pGraphExec,graph,pErrorNode,pLogBuffer,bufferSize) bind(c, name="hipGraphInstantiate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphInstantiate_ #else integer(kind(hipSuccess)) :: hipGraphInstantiate_ #endif type(c_ptr) :: pGraphExec type(c_ptr),value :: graph type(c_ptr) :: pErrorNode type(c_ptr),value :: pLogBuffer integer(c_size_t),value :: bufferSize end function end interface !> @brief Creates an executable graph from a graph. !> !> @param [out] pGraphExec - pointer to instantiated executable graph that is created. !> @param [in] graph - instance of graph to instantiate. !> @param [in] flags - Flags to control instantiation. !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. !> interface hipGraphInstantiateWithFlags #ifdef USE_CUDA_NAMES function hipGraphInstantiateWithFlags_(pGraphExec,graph,flags) bind(c, name="cudaGraphInstantiateWithFlags") #else function hipGraphInstantiateWithFlags_(pGraphExec,graph,flags) bind(c, name="hipGraphInstantiateWithFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphInstantiateWithFlags_ #else integer(kind(hipSuccess)) :: hipGraphInstantiateWithFlags_ #endif type(c_ptr) :: pGraphExec type(c_ptr),value :: graph integer(c_long_long),value :: flags end function end interface !> @brief launches an executable graph in a stream !> !> @param [in] graphExec - instance of executable graph to launch. !> @param [in] stream - instance of stream in which to launch executable graph. !> @returns hipSuccess, hipErrorInvalidValue !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphLaunch #ifdef USE_CUDA_NAMES function hipGraphLaunch_(graphExec,stream) bind(c, name="cudaGraphLaunch") #else function hipGraphLaunch_(graphExec,stream) bind(c, name="hipGraphLaunch") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphLaunch_ #else integer(kind(hipSuccess)) :: hipGraphLaunch_ #endif type(c_ptr),value :: graphExec type(c_ptr),value :: stream end function end interface !> @brief Destroys an executable graph !> !> @param [in] pGraphExec - instance of executable graph to destry. !> !> @returns hipSuccess. !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecDestroy #ifdef USE_CUDA_NAMES function hipGraphExecDestroy_(graphExec) bind(c, name="cudaGraphExecDestroy") #else function hipGraphExecDestroy_(graphExec) bind(c, name="hipGraphExecDestroy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecDestroy_ #else integer(kind(hipSuccess)) :: hipGraphExecDestroy_ #endif type(c_ptr),value :: graphExec end function end interface !> @brief Check whether an executable graph can be updated with a graph and perform the update if * !> possible. !> !> @param [in] hGraphExec - instance of executable graph to update. !> @param [in] hGraph - graph that contains the updated parameters. !> @param [in] hErrorNode_out - node which caused the permissibility check to forbid the update. !> @param [in] updateResult_out - Whether the graph update was permitted. !> @returns hipSuccess, hipErrorGraphExecUpdateFailure !> !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecUpdate #ifdef USE_CUDA_NAMES function hipGraphExecUpdate_(hGraphExec,hGraph,hErrorNode_out,updateResult_out) bind(c, name="cudaGraphExecUpdate") #else function hipGraphExecUpdate_(hGraphExec,hGraph,hErrorNode_out,updateResult_out) bind(c, name="hipGraphExecUpdate") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecUpdate_ #else integer(kind(hipSuccess)) :: hipGraphExecUpdate_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: hGraph type(c_ptr) :: hErrorNode_out type(c_ptr),value :: updateResult_out end function end interface !> @brief Creates a kernel execution node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to graph node to create. !> @param [in] graph - instance of graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the kernel execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] pNodeParams - pointer to the parameters to the kernel execution node on the GPU. !> @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDeviceFunction !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddKernelNode #ifdef USE_CUDA_NAMES function hipGraphAddKernelNode_(pGraphNode,graph,pDependencies,numDependencies,pNodeParams) bind(c, name="cudaGraphAddKernelNode") #else function hipGraphAddKernelNode_(pGraphNode,graph,pDependencies,numDependencies,pNodeParams) bind(c, name="hipGraphAddKernelNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddKernelNode_ #else integer(kind(hipSuccess)) :: hipGraphAddKernelNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr) :: pNodeParams end function end interface !> @brief Gets kernel node's parameters. !> !> @param [in] node - instance of the node to get parameters from. !> @param [out] pNodeParams - pointer to the parameters !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphKernelNodeGetParams #ifdef USE_CUDA_NAMES function hipGraphKernelNodeGetParams_(node,pNodeParams) bind(c, name="cudaGraphKernelNodeGetParams") #else function hipGraphKernelNodeGetParams_(node,pNodeParams) bind(c, name="hipGraphKernelNodeGetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphKernelNodeGetParams_ #else integer(kind(hipSuccess)) :: hipGraphKernelNodeGetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets a kernel node's parameters. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphKernelNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphKernelNodeSetParams_(node,pNodeParams) bind(c, name="cudaGraphKernelNodeSetParams") #else function hipGraphKernelNodeSetParams_(node,pNodeParams) bind(c, name="hipGraphKernelNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphKernelNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphKernelNodeSetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets the parameters for a kernel node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the kernel node parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecKernelNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphExecKernelNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="cudaGraphExecKernelNodeSetParams") #else function hipGraphExecKernelNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="hipGraphExecKernelNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecKernelNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphExecKernelNodeSetParams_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Creates a memcpy node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to graph node to create. !> @param [in] graph - instance of graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memcpy execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] pCopyParams - pointer to the parameters for the memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddMemcpyNode #ifdef USE_CUDA_NAMES function hipGraphAddMemcpyNode_(pGraphNode,graph,pDependencies,numDependencies,pCopyParams) bind(c, name="cudaGraphAddMemcpyNode") #else function hipGraphAddMemcpyNode_(pGraphNode,graph,pDependencies,numDependencies,pCopyParams) bind(c, name="hipGraphAddMemcpyNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddMemcpyNode_ #else integer(kind(hipSuccess)) :: hipGraphAddMemcpyNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr) :: pCopyParams end function end interface !> @brief Gets a memcpy node's parameters. !> !> @param [in] node - instance of the node to get parameters from. !> @param [out] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemcpyNodeGetParams #ifdef USE_CUDA_NAMES function hipGraphMemcpyNodeGetParams_(node,pNodeParams) bind(c, name="cudaGraphMemcpyNodeGetParams") #else function hipGraphMemcpyNodeGetParams_(node,pNodeParams) bind(c, name="hipGraphMemcpyNodeGetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemcpyNodeGetParams_ #else integer(kind(hipSuccess)) :: hipGraphMemcpyNodeGetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets a memcpy node's parameters. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemcpyNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphMemcpyNodeSetParams_(node,pNodeParams) bind(c, name="cudaGraphMemcpyNodeSetParams") #else function hipGraphMemcpyNodeSetParams_(node,pNodeParams) bind(c, name="hipGraphMemcpyNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemcpyNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphMemcpyNodeSetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets the parameters for a memcpy node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the kernel node parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecMemcpyNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphExecMemcpyNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="cudaGraphExecMemcpyNodeSetParams") #else function hipGraphExecMemcpyNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="hipGraphExecMemcpyNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecMemcpyNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphExecMemcpyNodeSetParams_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Creates a 1D memcpy node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to graph node to create. !> @param [in] graph - instance of graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memcpy execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] dst - pointer to memory address to the destination. !> @param [in] src - pointer to memory address to the source. !> @param [in] count - the size of the memory to copy. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddMemcpyNode1D #ifdef USE_CUDA_NAMES function hipGraphAddMemcpyNode1D_(pGraphNode,graph,pDependencies,numDependencies,dst,src,count,myKind) bind(c, name="cudaGraphAddMemcpyNode1D") #else function hipGraphAddMemcpyNode1D_(pGraphNode,graph,pDependencies,numDependencies,dst,src,count,myKind) bind(c, name="hipGraphAddMemcpyNode1D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddMemcpyNode1D_ #else integer(kind(hipSuccess)) :: hipGraphAddMemcpyNode1D_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: count integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Sets a memcpy node's parameters to perform a 1-dimensional copy. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] dst - pointer to memory address to the destination. !> @param [in] src - pointer to memory address to the source. !> @param [in] count - the size of the memory to copy. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemcpyNodeSetParams1D #ifdef USE_CUDA_NAMES function hipGraphMemcpyNodeSetParams1D_(node,dst,src,count,myKind) bind(c, name="cudaGraphMemcpyNodeSetParams1D") #else function hipGraphMemcpyNodeSetParams1D_(node,dst,src,count,myKind) bind(c, name="hipGraphMemcpyNodeSetParams1D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemcpyNodeSetParams1D_ #else integer(kind(hipSuccess)) :: hipGraphMemcpyNodeSetParams1D_ #endif type(c_ptr),value :: node type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: count integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Sets the parameters for a memcpy node in the given graphExec to perform a 1-dimensional !> copy. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] dst - pointer to memory address to the destination. !> @param [in] src - pointer to memory address to the source. !> @param [in] count - the size of the memory to copy. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecMemcpyNodeSetParams1D #ifdef USE_CUDA_NAMES function hipGraphExecMemcpyNodeSetParams1D_(hGraphExec,node,dst,src,count,myKind) bind(c, name="cudaGraphExecMemcpyNodeSetParams1D") #else function hipGraphExecMemcpyNodeSetParams1D_(hGraphExec,node,dst,src,count,myKind) bind(c, name="hipGraphExecMemcpyNodeSetParams1D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecMemcpyNodeSetParams1D_ #else integer(kind(hipSuccess)) :: hipGraphExecMemcpyNodeSetParams1D_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr),value :: dst type(c_ptr),value :: src integer(c_size_t),value :: count integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Creates a memcpy node to copy from a symbol on the device and adds it to a graph. !> !> @param [out] pGraphNode - pointer to graph node to create. !> @param [in] graph - instance of graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memcpy execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] dst - pointer to memory address to the destination. !> @param [in] symbol - Device symbol address. !> @param [in] count - the size of the memory to copy. !> @param [in] offset - Offset from start of symbol in bytes. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddMemcpyNodeFromSymbol #ifdef USE_CUDA_NAMES function hipGraphAddMemcpyNodeFromSymbol_(pGraphNode,graph,pDependencies,numDependencies,dst,symbol,count,offset,myKind) bind(c, name="cudaGraphAddMemcpyNodeFromSymbol") #else function hipGraphAddMemcpyNodeFromSymbol_(pGraphNode,graph,pDependencies,numDependencies,dst,symbol,count,offset,myKind) bind(c, name="hipGraphAddMemcpyNodeFromSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddMemcpyNodeFromSymbol_ #else integer(kind(hipSuccess)) :: hipGraphAddMemcpyNodeFromSymbol_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr),value :: dst type(c_ptr),value :: symbol integer(c_size_t),value :: count integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Sets a memcpy node's parameters to copy from a symbol on the device. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] dst - pointer to memory address to the destination. !> @param [in] symbol - Device symbol address. !> @param [in] count - the size of the memory to copy. !> @param [in] offset - Offset from start of symbol in bytes. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemcpyNodeSetParamsFromSymbol #ifdef USE_CUDA_NAMES function hipGraphMemcpyNodeSetParamsFromSymbol_(node,dst,symbol,count,offset,myKind) bind(c, name="cudaGraphMemcpyNodeSetParamsFromSymbol") #else function hipGraphMemcpyNodeSetParamsFromSymbol_(node,dst,symbol,count,offset,myKind) bind(c, name="hipGraphMemcpyNodeSetParamsFromSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemcpyNodeSetParamsFromSymbol_ #else integer(kind(hipSuccess)) :: hipGraphMemcpyNodeSetParamsFromSymbol_ #endif type(c_ptr),value :: node type(c_ptr),value :: dst type(c_ptr),value :: symbol integer(c_size_t),value :: count integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Sets the parameters for a memcpy node in the given graphExec to copy from a symbol on the !> * device. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] dst - pointer to memory address to the destination. !> @param [in] symbol - Device symbol address. !> @param [in] count - the size of the memory to copy. !> @param [in] offset - Offset from start of symbol in bytes. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecMemcpyNodeSetParamsFromSymbol #ifdef USE_CUDA_NAMES function hipGraphExecMemcpyNodeSetParamsFromSymbol_(hGraphExec,node,dst,symbol,count,offset,myKind) bind(c, name="cudaGraphExecMemcpyNodeSetParamsFromSymbol") #else function hipGraphExecMemcpyNodeSetParamsFromSymbol_(hGraphExec,node,dst,symbol,count,offset,myKind) bind(c, name="hipGraphExecMemcpyNodeSetParamsFromSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecMemcpyNodeSetParamsFromSymbol_ #else integer(kind(hipSuccess)) :: hipGraphExecMemcpyNodeSetParamsFromSymbol_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr),value :: dst type(c_ptr),value :: symbol integer(c_size_t),value :: count integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Creates a memcpy node to copy to a symbol on the device and adds it to a graph. !> !> @param [out] pGraphNode - pointer to graph node to create. !> @param [in] graph - instance of graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memcpy execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] symbol - Device symbol address. !> @param [in] src - pointer to memory address of the src. !> @param [in] count - the size of the memory to copy. !> @param [in] offset - Offset from start of symbol in bytes. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddMemcpyNodeToSymbol #ifdef USE_CUDA_NAMES function hipGraphAddMemcpyNodeToSymbol_(pGraphNode,graph,pDependencies,numDependencies,symbol,src,count,offset,myKind) bind(c, name="cudaGraphAddMemcpyNodeToSymbol") #else function hipGraphAddMemcpyNodeToSymbol_(pGraphNode,graph,pDependencies,numDependencies,symbol,src,count,offset,myKind) bind(c, name="hipGraphAddMemcpyNodeToSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddMemcpyNodeToSymbol_ #else integer(kind(hipSuccess)) :: hipGraphAddMemcpyNodeToSymbol_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr),value :: symbol type(c_ptr),value :: src integer(c_size_t),value :: count integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Sets a memcpy node's parameters to copy to a symbol on the device. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] symbol - Device symbol address. !> @param [in] src - pointer to memory address of the src. !> @param [in] count - the size of the memory to copy. !> @param [in] offset - Offset from start of symbol in bytes. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemcpyNodeSetParamsToSymbol #ifdef USE_CUDA_NAMES function hipGraphMemcpyNodeSetParamsToSymbol_(node,symbol,src,count,offset,myKind) bind(c, name="cudaGraphMemcpyNodeSetParamsToSymbol") #else function hipGraphMemcpyNodeSetParamsToSymbol_(node,symbol,src,count,offset,myKind) bind(c, name="hipGraphMemcpyNodeSetParamsToSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemcpyNodeSetParamsToSymbol_ #else integer(kind(hipSuccess)) :: hipGraphMemcpyNodeSetParamsToSymbol_ #endif type(c_ptr),value :: node type(c_ptr),value :: symbol type(c_ptr),value :: src integer(c_size_t),value :: count integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Sets the parameters for a memcpy node in the given graphExec to copy to a symbol on the !> device. !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] symbol - Device symbol address. !> @param [in] src - pointer to memory address of the src. !> @param [in] count - the size of the memory to copy. !> @param [in] offset - Offset from start of symbol in bytes. !> @param [in] kind - the type of memory copy. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecMemcpyNodeSetParamsToSymbol #ifdef USE_CUDA_NAMES function hipGraphExecMemcpyNodeSetParamsToSymbol_(hGraphExec,node,symbol,src,count,offset,myKind) bind(c, name="cudaGraphExecMemcpyNodeSetParamsToSymbol") #else function hipGraphExecMemcpyNodeSetParamsToSymbol_(hGraphExec,node,symbol,src,count,offset,myKind) bind(c, name="hipGraphExecMemcpyNodeSetParamsToSymbol") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecMemcpyNodeSetParamsToSymbol_ #else integer(kind(hipSuccess)) :: hipGraphExecMemcpyNodeSetParamsToSymbol_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr),value :: symbol type(c_ptr),value :: src integer(c_size_t),value :: count integer(c_size_t),value :: offset integer(kind(hipMemcpyHostToHost)),value :: myKind end function end interface !> @brief Creates a memset node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to the graph node to create. !> @param [in] graph - instance of the graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memset execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] pMemsetParams - pointer to the parameters for the memory set. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddMemsetNode #ifdef USE_CUDA_NAMES function hipGraphAddMemsetNode_(pGraphNode,graph,pDependencies,numDependencies,pMemsetParams) bind(c, name="cudaGraphAddMemsetNode") #else function hipGraphAddMemsetNode_(pGraphNode,graph,pDependencies,numDependencies,pMemsetParams) bind(c, name="hipGraphAddMemsetNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddMemsetNode_ #else integer(kind(hipSuccess)) :: hipGraphAddMemsetNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr) :: pMemsetParams end function end interface !> @brief Gets a memset node's parameters. !> !> @param [in] node - instane of the node to get parameters from. !> @param [out] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemsetNodeGetParams #ifdef USE_CUDA_NAMES function hipGraphMemsetNodeGetParams_(node,pNodeParams) bind(c, name="cudaGraphMemsetNodeGetParams") #else function hipGraphMemsetNodeGetParams_(node,pNodeParams) bind(c, name="hipGraphMemsetNodeGetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemsetNodeGetParams_ #else integer(kind(hipSuccess)) :: hipGraphMemsetNodeGetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets a memset node's parameters. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphMemsetNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphMemsetNodeSetParams_(node,pNodeParams) bind(c, name="cudaGraphMemsetNodeSetParams") #else function hipGraphMemsetNodeSetParams_(node,pNodeParams) bind(c, name="hipGraphMemsetNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphMemsetNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphMemsetNodeSetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets the parameters for a memset node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecMemsetNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphExecMemsetNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="cudaGraphExecMemsetNodeSetParams") #else function hipGraphExecMemsetNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="hipGraphExecMemsetNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecMemsetNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphExecMemsetNodeSetParams_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Creates a host execution node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to the graph node to create. !> @param [in] graph - instance of the graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memset execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] pNodeParams -pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddHostNode #ifdef USE_CUDA_NAMES function hipGraphAddHostNode_(pGraphNode,graph,pDependencies,numDependencies,pNodeParams) bind(c, name="cudaGraphAddHostNode") #else function hipGraphAddHostNode_(pGraphNode,graph,pDependencies,numDependencies,pNodeParams) bind(c, name="hipGraphAddHostNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddHostNode_ #else integer(kind(hipSuccess)) :: hipGraphAddHostNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr) :: pNodeParams end function end interface !> @brief Returns a host node's parameters. !> !> @param [in] node - instane of the node to get parameters from. !> @param [out] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphHostNodeGetParams #ifdef USE_CUDA_NAMES function hipGraphHostNodeGetParams_(node,pNodeParams) bind(c, name="cudaGraphHostNodeGetParams") #else function hipGraphHostNodeGetParams_(node,pNodeParams) bind(c, name="hipGraphHostNodeGetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphHostNodeGetParams_ #else integer(kind(hipSuccess)) :: hipGraphHostNodeGetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets a host node's parameters. !> !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphHostNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphHostNodeSetParams_(node,pNodeParams) bind(c, name="cudaGraphHostNodeSetParams") #else function hipGraphHostNodeSetParams_(node,pNodeParams) bind(c, name="hipGraphHostNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphHostNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphHostNodeSetParams_ #endif type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Sets the parameters for a host node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - instance of the node to set parameters to. !> @param [in] pNodeParams - pointer to the parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecHostNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphExecHostNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="cudaGraphExecHostNodeSetParams") #else function hipGraphExecHostNodeSetParams_(hGraphExec,node,pNodeParams) bind(c, name="hipGraphExecHostNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecHostNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphExecHostNodeSetParams_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr) :: pNodeParams end function end interface !> @brief Creates a child graph node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to the graph node to create. !> @param [in] graph - instance of the graph to add the created node. !> @param [in] pDependencies - pointer to the dependencies on the memset execution node. !> @param [in] numDependencies - the number of the dependencies. !> @param [in] childGraph - the graph to clone into this node !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddChildGraphNode #ifdef USE_CUDA_NAMES function hipGraphAddChildGraphNode_(pGraphNode,graph,pDependencies,numDependencies,childGraph) bind(c, name="cudaGraphAddChildGraphNode") #else function hipGraphAddChildGraphNode_(pGraphNode,graph,pDependencies,numDependencies,childGraph) bind(c, name="hipGraphAddChildGraphNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddChildGraphNode_ #else integer(kind(hipSuccess)) :: hipGraphAddChildGraphNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr),value :: childGraph end function end interface !> @brief Gets a handle to the embedded graph of a child graph node. !> !> @param [in] node - instane of the node to get child graph. !> @param [out] pGraph - pointer to get the graph. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphChildGraphNodeGetGraph #ifdef USE_CUDA_NAMES function hipGraphChildGraphNodeGetGraph_(node,pGraph) bind(c, name="cudaGraphChildGraphNodeGetGraph") #else function hipGraphChildGraphNodeGetGraph_(node,pGraph) bind(c, name="hipGraphChildGraphNodeGetGraph") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphChildGraphNodeGetGraph_ #else integer(kind(hipSuccess)) :: hipGraphChildGraphNodeGetGraph_ #endif type(c_ptr),value :: node type(c_ptr) :: pGraph end function end interface !> @brief Updates node parameters in the child graph node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] node - node from the graph which was used to instantiate graphExec. !> @param [in] childGraph - child graph with updated parameters. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecChildGraphNodeSetParams #ifdef USE_CUDA_NAMES function hipGraphExecChildGraphNodeSetParams_(hGraphExec,node,childGraph) bind(c, name="cudaGraphExecChildGraphNodeSetParams") #else function hipGraphExecChildGraphNodeSetParams_(hGraphExec,node,childGraph) bind(c, name="hipGraphExecChildGraphNodeSetParams") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecChildGraphNodeSetParams_ #else integer(kind(hipSuccess)) :: hipGraphExecChildGraphNodeSetParams_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: node type(c_ptr),value :: childGraph end function end interface !> @brief Creates an empty node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to the graph node to create and add to the graph. !> @param [in] graph - instane of the graph the node is add to. !> @param [in] pDependencies - pointer to the node dependenties. !> @param [in] numDependencies - the number of dependencies. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddEmptyNode #ifdef USE_CUDA_NAMES function hipGraphAddEmptyNode_(pGraphNode,graph,pDependencies,numDependencies) bind(c, name="cudaGraphAddEmptyNode") #else function hipGraphAddEmptyNode_(pGraphNode,graph,pDependencies,numDependencies) bind(c, name="hipGraphAddEmptyNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddEmptyNode_ #else integer(kind(hipSuccess)) :: hipGraphAddEmptyNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies end function end interface !> @brief Creates an event record node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to the graph node to create and add to the graph. !> @param [in] graph - instane of the graph the node to be added. !> @param [in] pDependencies - pointer to the node dependenties. !> @param [in] numDependencies - the number of dependencies. !> @param [in] event - Event for the node. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddEventRecordNode #ifdef USE_CUDA_NAMES function hipGraphAddEventRecordNode_(pGraphNode,graph,pDependencies,numDependencies,event) bind(c, name="cudaGraphAddEventRecordNode") #else function hipGraphAddEventRecordNode_(pGraphNode,graph,pDependencies,numDependencies,event) bind(c, name="hipGraphAddEventRecordNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddEventRecordNode_ #else integer(kind(hipSuccess)) :: hipGraphAddEventRecordNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr),value :: event end function end interface !> @brief Returns the event associated with an event record node. !> !> @param [in] node - instane of the node to get event from. !> @param [out] event_out - Pointer to return the event. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphEventRecordNodeGetEvent #ifdef USE_CUDA_NAMES function hipGraphEventRecordNodeGetEvent_(node,event_out) bind(c, name="cudaGraphEventRecordNodeGetEvent") #else function hipGraphEventRecordNodeGetEvent_(node,event_out) bind(c, name="hipGraphEventRecordNodeGetEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphEventRecordNodeGetEvent_ #else integer(kind(hipSuccess)) :: hipGraphEventRecordNodeGetEvent_ #endif type(c_ptr),value :: node type(c_ptr) :: event_out end function end interface !> @brief Sets an event record node's event. !> !> @param [in] node - instane of the node to set event to. !> @param [in] event - pointer to the event. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphEventRecordNodeSetEvent #ifdef USE_CUDA_NAMES function hipGraphEventRecordNodeSetEvent_(node,event) bind(c, name="cudaGraphEventRecordNodeSetEvent") #else function hipGraphEventRecordNodeSetEvent_(node,event) bind(c, name="hipGraphEventRecordNodeSetEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphEventRecordNodeSetEvent_ #else integer(kind(hipSuccess)) :: hipGraphEventRecordNodeSetEvent_ #endif type(c_ptr),value :: node type(c_ptr),value :: event end function end interface !> @brief Sets the event for an event record node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] hNode - node from the graph which was used to instantiate graphExec. !> @param [in] event - pointer to the event. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecEventRecordNodeSetEvent #ifdef USE_CUDA_NAMES function hipGraphExecEventRecordNodeSetEvent_(hGraphExec,hNode,event) bind(c, name="cudaGraphExecEventRecordNodeSetEvent") #else function hipGraphExecEventRecordNodeSetEvent_(hGraphExec,hNode,event) bind(c, name="hipGraphExecEventRecordNodeSetEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecEventRecordNodeSetEvent_ #else integer(kind(hipSuccess)) :: hipGraphExecEventRecordNodeSetEvent_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: hNode type(c_ptr),value :: event end function end interface !> @brief Creates an event wait node and adds it to a graph. !> !> @param [out] pGraphNode - pointer to the graph node to create and add to the graph. !> @param [in] graph - instane of the graph the node to be added. !> @param [in] pDependencies - pointer to the node dependenties. !> @param [in] numDependencies - the number of dependencies. !> @param [in] event - Event for the node. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphAddEventWaitNode #ifdef USE_CUDA_NAMES function hipGraphAddEventWaitNode_(pGraphNode,graph,pDependencies,numDependencies,event) bind(c, name="cudaGraphAddEventWaitNode") #else function hipGraphAddEventWaitNode_(pGraphNode,graph,pDependencies,numDependencies,event) bind(c, name="hipGraphAddEventWaitNode") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphAddEventWaitNode_ #else integer(kind(hipSuccess)) :: hipGraphAddEventWaitNode_ #endif type(c_ptr) :: pGraphNode type(c_ptr),value :: graph type(c_ptr) :: pDependencies integer(c_size_t),value :: numDependencies type(c_ptr),value :: event end function end interface !> @brief Returns the event associated with an event wait node. !> !> @param [in] node - instane of the node to get event from. !> @param [out] event_out - Pointer to return the event. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphEventWaitNodeGetEvent #ifdef USE_CUDA_NAMES function hipGraphEventWaitNodeGetEvent_(node,event_out) bind(c, name="cudaGraphEventWaitNodeGetEvent") #else function hipGraphEventWaitNodeGetEvent_(node,event_out) bind(c, name="hipGraphEventWaitNodeGetEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphEventWaitNodeGetEvent_ #else integer(kind(hipSuccess)) :: hipGraphEventWaitNodeGetEvent_ #endif type(c_ptr),value :: node type(c_ptr) :: event_out end function end interface !> @brief Sets an event wait node's event. !> !> @param [in] node - instane of the node to set event to. !> @param [in] event - pointer to the event. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphEventWaitNodeSetEvent #ifdef USE_CUDA_NAMES function hipGraphEventWaitNodeSetEvent_(node,event) bind(c, name="cudaGraphEventWaitNodeSetEvent") #else function hipGraphEventWaitNodeSetEvent_(node,event) bind(c, name="hipGraphEventWaitNodeSetEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphEventWaitNodeSetEvent_ #else integer(kind(hipSuccess)) :: hipGraphEventWaitNodeSetEvent_ #endif type(c_ptr),value :: node type(c_ptr),value :: event end function end interface !> @brief Sets the event for an event record node in the given graphExec. !> !> @param [in] hGraphExec - instance of the executable graph with the node. !> @param [in] hNode - node from the graph which was used to instantiate graphExec. !> @param [in] event - pointer to the event. !> @returns hipSuccess, hipErrorInvalidValue !> @warning : This API is marked as beta, meaning, while this is feature complete, !> it is still open to changes and may have outstanding issues. interface hipGraphExecEventWaitNodeSetEvent #ifdef USE_CUDA_NAMES function hipGraphExecEventWaitNodeSetEvent_(hGraphExec,hNode,event) bind(c, name="cudaGraphExecEventWaitNodeSetEvent") #else function hipGraphExecEventWaitNodeSetEvent_(hGraphExec,hNode,event) bind(c, name="hipGraphExecEventWaitNodeSetEvent") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipGraphExecEventWaitNodeSetEvent_ #else integer(kind(hipSuccess)) :: hipGraphExecEventWaitNodeSetEvent_ #endif type(c_ptr),value :: hGraphExec type(c_ptr),value :: hNode type(c_ptr),value :: event end function end interface #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort hipfort-7.2.4/lib/hipfort/hipfort_check.F900000664000175000017500000004043515207260635020710 0ustar alastairalastairmodule hipfort_check contains #ifdef USE_CUDA_NAMES subroutine hipCheck(cudaError_t) use hipfort_cuda_errors use hipfort_enums implicit none integer(kind(cudaSuccess)) :: cudaError_t integer(kind(hipSuccess)) :: hipError_t hipError_t = hipCUDAErrorTohipError(cudaError_t) if (hipError_t /= hipSuccess) then write (*, *) "HIP ERROR: Error code = ", hipError_t, ", CUDA error code = ", cudaError_t call exit(hipError_t) end if end subroutine hipCheck #else subroutine hipCheck(hipError_t) use hipfort_enums implicit none integer(kind(hipSuccess)) :: hipError_t if (hipError_t /= hipSuccess) then write (*, *) "HIP ERROR: Error code = ", hipError_t call exit(hipError_t) end if end subroutine hipCheck #endif #ifdef USE_CUDA_NAMES function hipCUDAErrorTohipError(cudaError_t) use hipfort_enums use hipfort_cuda_errors implicit none integer(kind(hipSuccess)) :: hipCUDAErrorTohipError integer(kind(cudaSuccess)) :: cudaError_t select case (cudaError_t) case (cudaSuccess) hipCUDAErrorTohipError = hipSuccess case (cudaErrorProfilerDisabled) hipCUDAErrorTohipError = hipErrorProfilerDisabled case (cudaErrorProfilerNotInitialized) hipCUDAErrorTohipError = hipErrorProfilerNotInitialized case (cudaErrorProfilerAlreadyStarted) hipCUDAErrorTohipError = hipErrorProfilerAlreadyStarted case (cudaErrorProfilerAlreadyStopped) hipCUDAErrorTohipError = hipErrorProfilerAlreadyStopped case (cudaErrorInsufficientDriver) hipCUDAErrorTohipError = hipErrorInsufficientDriver case (cudaErrorUnsupportedLimit) hipCUDAErrorTohipError = hipErrorUnsupportedLimit case (cudaErrorPeerAccessUnsupported) hipCUDAErrorTohipError = hipErrorPeerAccessUnsupported case (cudaErrorInvalidGraphicsContext) hipCUDAErrorTohipError = hipErrorInvalidGraphicsContext case (cudaErrorSharedObjectSymbolNotFound) hipCUDAErrorTohipError = hipErrorSharedObjectSymbolNotFound case (cudaErrorSharedObjectInitFailed) hipCUDAErrorTohipError = hipErrorSharedObjectInitFailed case (cudaErrorOperatingSystem) hipCUDAErrorTohipError = hipErrorOperatingSystem case (cudaErrorSetOnActiveProcess) hipCUDAErrorTohipError = hipErrorSetOnActiveProcess case (cudaErrorIllegalAddress) hipCUDAErrorTohipError = hipErrorIllegalAddress case (cudaErrorInvalidSymbol) hipCUDAErrorTohipError = hipErrorInvalidSymbol case (cudaErrorMissingConfiguration) hipCUDAErrorTohipError = hipErrorMissingConfiguration case (cudaErrorMemoryAllocation) hipCUDAErrorTohipError = hipErrorOutOfMemory case (cudaErrorInitializationError) hipCUDAErrorTohipError = hipErrorNotInitialized case (cudaErrorLaunchFailure) hipCUDAErrorTohipError = hipErrorLaunchFailure case (cudaErrorCooperativeLaunchTooLarge) hipCUDAErrorTohipError = hipErrorCooperativeLaunchTooLarge case (cudaErrorPriorLaunchFailure) hipCUDAErrorTohipError = hipErrorPriorLaunchFailure case (cudaErrorLaunchOutOfResources) hipCUDAErrorTohipError = hipErrorLaunchOutOfResources case (cudaErrorInvalidDeviceFunction) hipCUDAErrorTohipError = hipErrorInvalidDeviceFunction case (cudaErrorInvalidConfiguration) hipCUDAErrorTohipError = hipErrorInvalidConfiguration case (cudaErrorInvalidDevice) hipCUDAErrorTohipError = hipErrorInvalidDevice case (cudaErrorInvalidValue) hipCUDAErrorTohipError = hipErrorInvalidValue case (cudaErrorInvalidDevicePointer) hipCUDAErrorTohipError = hipErrorInvalidDevicePointer case (cudaErrorInvalidMemcpyDirection) hipCUDAErrorTohipError = hipErrorInvalidMemcpyDirection case (cudaErrorInvalidResourceHandle) hipCUDAErrorTohipError = hipErrorInvalidHandle case (cudaErrorNotReady) hipCUDAErrorTohipError = hipErrorNotReady case (cudaErrorNoDevice) hipCUDAErrorTohipError = hipErrorNoDevice case (cudaErrorPeerAccessAlreadyEnabled) hipCUDAErrorTohipError = hipErrorPeerAccessAlreadyEnabled case (cudaErrorPeerAccessNotEnabled) hipCUDAErrorTohipError = hipErrorPeerAccessNotEnabled case (cudaErrorHostMemoryAlreadyRegistered) hipCUDAErrorTohipError = hipErrorHostMemoryAlreadyRegistered case (cudaErrorHostMemoryNotRegistered) hipCUDAErrorTohipError = hipErrorHostMemoryNotRegistered case (cudaErrorMapBufferObjectFailed) hipCUDAErrorTohipError = hipErrorMapFailed case (cudaErrorAssert) hipCUDAErrorTohipError = hipErrorAssert case (cudaErrorNotSupported) hipCUDAErrorTohipError = hipErrorNotSupported case (cudaErrorCudartUnloading) hipCUDAErrorTohipError = hipErrorDeinitialized case (cudaErrorInvalidKernelImage) hipCUDAErrorTohipError = hipErrorInvalidImage case (cudaErrorUnmapBufferObjectFailed) hipCUDAErrorTohipError = hipErrorUnmapFailed case (cudaErrorNoKernelImageForDevice) hipCUDAErrorTohipError = hipErrorNoBinaryForGpu case (cudaErrorECCUncorrectable) hipCUDAErrorTohipError = hipErrorECCNotCorrectable case (cudaErrorDeviceAlreadyInUse) hipCUDAErrorTohipError = hipErrorContextAlreadyInUse case (cudaErrorInvalidPtx) hipCUDAErrorTohipError = hipErrorInvalidKernelFile case (cudaErrorLaunchTimeout) hipCUDAErrorTohipError = hipErrorLaunchTimeOut #if CUDA_VERSION >= 10010 case (cudaErrorInvalidSource) hipCUDAErrorTohipError = hipErrorInvalidSource case (cudaErrorFileNotFound) hipCUDAErrorTohipError = hipErrorFileNotFound case (cudaErrorSymbolNotFound) hipCUDAErrorTohipError = hipErrorNotFound case (cudaErrorArrayIsMapped) hipCUDAErrorTohipError = hipErrorArrayIsMapped case (cudaErrorNotMappedAsPointer) hipCUDAErrorTohipError = hipErrorNotMappedAsPointer case (cudaErrorNotMappedAsArray) hipCUDAErrorTohipError = hipErrorNotMappedAsArray case (cudaErrorNotMapped) hipCUDAErrorTohipError = hipErrorNotMapped case (cudaErrorAlreadyAcquired) hipCUDAErrorTohipError = hipErrorAlreadyAcquired case (cudaErrorAlreadyMapped) hipCUDAErrorTohipError = hipErrorAlreadyMapped #endif #if CUDA_VERSION >= 10020 case (cudaErrorDeviceUninitialized) hipCUDAErrorTohipError = hipErrorInvalidContext #endif case (cudaErrorUnknown) case default hipCUDAErrorTohipError = hipErrorUnknown ! Note - translated error. end select end function hipCUDAErrorTohipError function hipErrorToCudaError(hipError_t) use hipfort_enums use hipfort_cuda_errors implicit none integer(kind(cudaSuccess)) :: hipErrorToCudaError integer(kind(hipSuccess)) :: hipError_t select case (hipError_t) case (hipSuccess) hipErrorToCudaError = cudaSuccess case (hipErrorOutOfMemory) hipErrorToCudaError = cudaErrorMemoryAllocation case (hipErrorProfilerDisabled) hipErrorToCudaError = cudaErrorProfilerDisabled case (hipErrorProfilerNotInitialized) hipErrorToCudaError = cudaErrorProfilerNotInitialized case (hipErrorProfilerAlreadyStarted) hipErrorToCudaError = cudaErrorProfilerAlreadyStarted case (hipErrorProfilerAlreadyStopped) hipErrorToCudaError = cudaErrorProfilerAlreadyStopped case (hipErrorInvalidConfiguration) hipErrorToCudaError = cudaErrorInvalidConfiguration case (hipErrorLaunchOutOfResources) hipErrorToCudaError = cudaErrorLaunchOutOfResources case (hipErrorInvalidValue) hipErrorToCudaError = cudaErrorInvalidValue case (hipErrorInvalidHandle) hipErrorToCudaError = cudaErrorInvalidResourceHandle case (hipErrorInvalidDevice) hipErrorToCudaError = cudaErrorInvalidDevice case (hipErrorInvalidMemcpyDirection) hipErrorToCudaError = cudaErrorInvalidMemcpyDirection case (hipErrorInvalidDevicePointer) hipErrorToCudaError = cudaErrorInvalidDevicePointer case (hipErrorNotInitialized) hipErrorToCudaError = cudaErrorInitializationError case (hipErrorNoDevice) hipErrorToCudaError = cudaErrorNoDevice case (hipErrorNotReady) hipErrorToCudaError = cudaErrorNotReady case (hipErrorPeerAccessNotEnabled) hipErrorToCudaError = cudaErrorPeerAccessNotEnabled case (hipErrorPeerAccessAlreadyEnabled) hipErrorToCudaError = cudaErrorPeerAccessAlreadyEnabled case (hipErrorHostMemoryAlreadyRegistered) hipErrorToCudaError = cudaErrorHostMemoryAlreadyRegistered case (hipErrorHostMemoryNotRegistered) hipErrorToCudaError = cudaErrorHostMemoryNotRegistered case (hipErrorDeinitialized) hipErrorToCudaError = cudaErrorCudartUnloading case (hipErrorInvalidSymbol) hipErrorToCudaError = cudaErrorInvalidSymbol case (hipErrorInsufficientDriver) hipErrorToCudaError = cudaErrorInsufficientDriver case (hipErrorMissingConfiguration) hipErrorToCudaError = cudaErrorMissingConfiguration case (hipErrorPriorLaunchFailure) hipErrorToCudaError = cudaErrorPriorLaunchFailure case (hipErrorInvalidDeviceFunction) hipErrorToCudaError = cudaErrorInvalidDeviceFunction case (hipErrorInvalidImage) hipErrorToCudaError = cudaErrorInvalidKernelImage case (hipErrorInvalidContext) #if CUDA_VERSION >= 10020 hipErrorToCudaError = cudaErrorDeviceUninitialized #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorMapFailed) hipErrorToCudaError = cudaErrorMapBufferObjectFailed case (hipErrorUnmapFailed) hipErrorToCudaError = cudaErrorUnmapBufferObjectFailed case (hipErrorArrayIsMapped) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorArrayIsMapped #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorAlreadyMapped) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorAlreadyMapped #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorNoBinaryForGpu) hipErrorToCudaError = cudaErrorNoKernelImageForDevice case (hipErrorAlreadyAcquired) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorAlreadyAcquired #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorNotMapped) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorNotMapped #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorNotMappedAsArray) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorNotMappedAsArray #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorNotMappedAsPointer) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorNotMappedAsPointer #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorECCNotCorrectable) hipErrorToCudaError = cudaErrorECCUncorrectable case (hipErrorUnsupportedLimit) hipErrorToCudaError = cudaErrorUnsupportedLimit case (hipErrorContextAlreadyInUse) hipErrorToCudaError = cudaErrorDeviceAlreadyInUse case (hipErrorPeerAccessUnsupported) hipErrorToCudaError = cudaErrorPeerAccessUnsupported case (hipErrorInvalidKernelFile) hipErrorToCudaError = cudaErrorInvalidPtx case (hipErrorInvalidGraphicsContext) hipErrorToCudaError = cudaErrorInvalidGraphicsContext case (hipErrorInvalidSource) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorInvalidSource #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorFileNotFound) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorFileNotFound #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorSharedObjectSymbolNotFound) hipErrorToCudaError = cudaErrorSharedObjectSymbolNotFound case (hipErrorSharedObjectInitFailed) hipErrorToCudaError = cudaErrorSharedObjectInitFailed case (hipErrorOperatingSystem) hipErrorToCudaError = cudaErrorOperatingSystem case (hipErrorNotFound) #if CUDA_VERSION >= 10010 hipErrorToCudaError = cudaErrorSymbolNotFound #else hipErrorToCudaError = cudaErrorUnknown #endif case (hipErrorIllegalAddress) hipErrorToCudaError = cudaErrorIllegalAddress case (hipErrorLaunchTimeOut) hipErrorToCudaError = cudaErrorLaunchTimeout case (hipErrorSetOnActiveProcess) hipErrorToCudaError = cudaErrorSetOnActiveProcess case (hipErrorLaunchFailure) hipErrorToCudaError = cudaErrorLaunchFailure case (hipErrorCooperativeLaunchTooLarge) hipErrorToCudaError = cudaErrorCooperativeLaunchTooLarge case (hipErrorNotSupported) hipErrorToCudaError = cudaErrorNotSupported ! HSA:does not exist in CUDA case (hipErrorRuntimeMemory) ! HSA:does not exist in CUDA case (hipErrorRuntimeOther) case (hipErrorUnknown) case (hipErrorTbd) case default hipErrorToCudaError = cudaErrorUnknown ! Note - translated error. end select end function hipErrorToCudaError #endif ! HIP math libs ! TODO: Currently, only AMDGPU is supported subroutine hipblasCheck(hipblasError_t) use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasError_t if(hipblasError_t /= HIPBLAS_STATUS_SUCCESS)then write(*,*) "HIPBLAS ERROR: Error code = ", hipblasError_t call exit(hipblasError_t) end if end subroutine hipblasCheck subroutine hipfftCheck(hipfft_status) use hipfort_hipfft_enums implicit none integer(kind(hipfft_success)) :: hipfft_status if(hipfft_status /= hipfft_success)then write(*,*) "HIPFFT ERROR: Error code = ", hipfft_status call exit(hipfft_status) end if end subroutine hipfftCheck subroutine hipsparseCheck(hipsparseError_t) use hipfort_hipsparse_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseError_t if(hipsparseError_t /= HIPSPARSE_STATUS_SUCCESS)then write(*,*) "HIPSPARSE ERROR: Error code = ", hipsparseError_t call exit(hipsparseError_t) end if end subroutine hipsparseCheck subroutine hipsolverCheck(hipsolverError_t) use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverError_t if(hipsolverError_t /= HIPSOLVER_STATUS_SUCCESS)then write(*,*) "HIPSOLVER ERROR: Error code = ", hipsolverError_t call exit(hipsolverError_t) end if end subroutine hipsolverCheck subroutine rocblasCheck(rocblasError_t) use hipfort_rocblas_enums implicit none integer(kind(ROCBLAS_STATUS_SUCCESS)) :: rocblasError_t if(rocblasError_t /= ROCBLAS_STATUS_SUCCESS)then write(*,*) "ROCBLAS ERROR: Error code = ", rocblasError_t call exit(rocblasError_t) end if end subroutine rocblasCheck ! ROCm math libs subroutine rocfftCheck(rocfft_status) use hipfort_rocfft_enums implicit none integer(kind(rocfft_status_success)) :: rocfft_status if(rocfft_status /= rocfft_status_success)then write(*,*) "ROCFFT ERROR: Error code = ", rocfft_status call exit(rocfft_status) end if end subroutine rocfftCheck subroutine rocsparseCheck(rocsparseError_t) use hipfort_rocsparse_enums implicit none integer(kind(ROCSPARSE_STATUS_SUCCESS)) :: rocsparseError_t if(rocsparseError_t /= ROCSPARSE_STATUS_SUCCESS)then write(*,*) "ROCSPARSE ERROR: Error code = ", rocsparseError_t call exit(rocsparseError_t) end if end subroutine rocsparseCheck subroutine rocsolverCheck(rocsolverError_t) use hipfort_rocblas_enums use hipfort_rocsolver_enums implicit none integer(kind(ROCBLAS_STATUS_SUCCESS)) :: rocsolverError_t if(rocsolverError_t /= ROCBLAS_STATUS_SUCCESS)then write(*,*) "ROCSOLVER ERROR: Error code = ", rocsolverError_t call exit(rocsolverError_t) end if end subroutine rocsolverCheck end module hipfort_check hipfort-7.2.4/lib/hipfort/hipfort_rocrand_enums.F900000664000175000017500000000516715207260635022475 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocrand_enums implicit none enum, bind(c) enumerator :: ROCRAND_STATUS_SUCCESS = 0 enumerator :: ROCRAND_STATUS_VERSION_MISMATCH = 100 enumerator :: ROCRAND_STATUS_NOT_CREATED = 101 enumerator :: ROCRAND_STATUS_ALLOCATION_FAILED = 102 enumerator :: ROCRAND_STATUS_TYPE_ERROR = 103 enumerator :: ROCRAND_STATUS_OUT_OF_RANGE = 104 enumerator :: ROCRAND_STATUS_LENGTH_NOT_MULTIPLE = 105 enumerator :: ROCRAND_STATUS_DOUBLE_PRECISION_REQUIRED = 106 enumerator :: ROCRAND_STATUS_LAUNCH_FAILURE = 107 enumerator :: ROCRAND_STATUS_INTERNAL_ERROR = 108 end enum enum, bind(c) enumerator :: ROCRAND_RNG_PSEUDO_DEFAULT = 400 enumerator :: ROCRAND_RNG_PSEUDO_XORWOW = 401 enumerator :: ROCRAND_RNG_PSEUDO_MRG32K3A = 402 enumerator :: ROCRAND_RNG_PSEUDO_MTGP32 = 403 enumerator :: ROCRAND_RNG_PSEUDO_PHILOX4_32_10 = 404 enumerator :: ROCRAND_RNG_QUASI_DEFAULT = 500 enumerator :: ROCRAND_RNG_QUASI_SOBOL32 = 501 enumerator :: ROCRAND_RNG_QUASI_SOBOL64 = 504 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_rocrand_enumshipfort-7.2.4/lib/hipfort/hipfort_hipsparse.F900000664000175000017500000515646615207260635021652 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipsparse use hipfort_hipsparse_enums implicit none !> \ingroup aux_module !> \brief Create a hipsparse handle !> !> \details !> \p hipsparseCreate creates the hipSPARSE library context. It must be !> initialized before any other hipSPARSE API function is invoked and must be passed to !> all subsequent library function calls. The handle should be destroyed at the end !> using hipsparseDestroy(). interface hipsparseCreate #ifdef USE_CUDA_NAMES function hipsparseCreate_(handle) bind(c, name="cusparseCreate") #else function hipsparseCreate_(handle) bind(c, name="hipsparseCreate") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreate_ type(c_ptr) :: handle end function end interface !> \ingroup aux_module !> \brief Destroy a hipsparse handle !> !> \details !> \p hipsparseDestroy destroys the hipSPARSE library context and releases all !> resources used by the hipSPARSE library. interface hipsparseDestroy #ifdef USE_CUDA_NAMES function hipsparseDestroy_(handle) bind(c, name="cusparseDestroy") #else function hipsparseDestroy_(handle) bind(c, name="hipsparseDestroy") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroy_ type(c_ptr),value :: handle end function end interface !> \ingroup aux_module !> \brief Get hipSPARSE version !> !> \details !> \p hipsparseGetVersion gets the hipSPARSE library version number. !> - patch = version % 100 !> - minor = version 100 % 1000 !> - major = version 100000 interface hipsparseGetVersion #ifdef USE_CUDA_NAMES function hipsparseGetVersion_(handle,version) bind(c, name="cusparseGetVersion") #else function hipsparseGetVersion_(handle,version) bind(c, name="hipsparseGetVersion") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseGetVersion_ type(c_ptr),value :: handle type(c_ptr),value :: version end function end interface !> \ingroup aux_module !> \brief Get hipSPARSE git revision !> !> \details !> \p hipsparseGetGitRevision gets the hipSPARSE library git commit revision (SHA-1). interface hipsparseGetGitRevision #ifdef USE_CUDA_NAMES function hipsparseGetGitRevision_(handle,rev) bind(c, name="cusparseGetGitRevision") #else function hipsparseGetGitRevision_(handle,rev) bind(c, name="hipsparseGetGitRevision") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseGetGitRevision_ type(c_ptr),value :: handle type(c_ptr),value :: rev end function end interface !> \ingroup aux_module !> \brief Specify user defined HIP stream !> !> \details !> \p hipsparseSetStream specifies the stream to be used by the hipSPARSE library !> context and all subsequent function calls. interface hipsparseSetStream #ifdef USE_CUDA_NAMES function hipsparseSetStream_(handle,streamId) bind(c, name="cusparseSetStream") #else function hipsparseSetStream_(handle,streamId) bind(c, name="hipsparseSetStream") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSetStream_ type(c_ptr),value :: handle type(c_ptr),value :: streamId end function end interface !> \ingroup aux_module !> \brief Get current stream from library context !> !> \details !> \p hipsparseGetStream gets the hipSPARSE library context stream which is currently !> used for all subsequent function calls. interface hipsparseGetStream #ifdef USE_CUDA_NAMES function hipsparseGetStream_(handle,streamId) bind(c, name="cusparseGetStream") #else function hipsparseGetStream_(handle,streamId) bind(c, name="hipsparseGetStream") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseGetStream_ type(c_ptr),value :: handle type(c_ptr) :: streamId end function end interface !> \ingroup aux_module !> \brief Specify pointer mode !> !> \details !> \p hipsparseSetPointerMode specifies the pointer mode to be used by the hipSPARSE !> library context and all subsequent function calls. By default, all values are passed !> by reference on the host. Valid pointer modes are \p HIPSPARSE_POINTER_MODE_HOST !> or \p HIPSPARSE_POINTER_MODE_DEVICE. interface hipsparseSetPointerMode #ifdef USE_CUDA_NAMES function hipsparseSetPointerMode_(handle,mode) bind(c, name="cusparseSetPointerMode") #else function hipsparseSetPointerMode_(handle,mode) bind(c, name="hipsparseSetPointerMode") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSetPointerMode_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_POINTER_MODE_HOST)),value :: mode end function end interface !> \ingroup aux_module !> \brief Get current pointer mode from library context !> !> \details !> \p hipsparseGetPointerMode gets the hipSPARSE library context pointer mode which !> is currently used for all subsequent function calls. interface hipsparseGetPointerMode #ifdef USE_CUDA_NAMES function hipsparseGetPointerMode_(handle,mode) bind(c, name="cusparseGetPointerMode") #else function hipsparseGetPointerMode_(handle,mode) bind(c, name="hipsparseGetPointerMode") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseGetPointerMode_ type(c_ptr),value :: handle type(c_ptr),value :: mode end function end interface !> \ingroup aux_module !> \brief Create a matrix descriptor !> \details !> \p hipsparseCreateMatDescr creates a matrix descriptor. It initializes !> \p hipsparseMatrixType_t to \p HIPSPARSE_MATRIX_TYPE_GENERAL and !> \p hipsparseIndexBase_t to \p HIPSPARSE_INDEX_BASE_ZERO. It should be destroyed !> at the end using hipsparseDestroyMatDescr(). interface hipsparseCreateMatDescr #ifdef USE_CUDA_NAMES function hipsparseCreateMatDescr_(descrA) bind(c, name="cusparseCreateMatDescr") #else function hipsparseCreateMatDescr_(descrA) bind(c, name="hipsparseCreateMatDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateMatDescr_ type(c_ptr) :: descrA end function end interface !> \ingroup aux_module !> \brief Destroy a matrix descriptor !> !> \details !> \p hipsparseDestroyMatDescr destroys a matrix descriptor and releases all !> resources used by the descriptor. interface hipsparseDestroyMatDescr #ifdef USE_CUDA_NAMES function hipsparseDestroyMatDescr_(descrA) bind(c, name="cusparseDestroyMatDescr") #else function hipsparseDestroyMatDescr_(descrA) bind(c, name="hipsparseDestroyMatDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyMatDescr_ type(c_ptr),value :: descrA end function end interface !> \ingroup aux_module !> \brief Copy a matrix descriptor !> \details !> \p hipsparseCopyMatDescr copies a matrix descriptor. Both, source and destination !> matrix descriptors must be initialized prior to calling \p hipsparseCopyMatDescr. interface hipsparseCopyMatDescr #ifdef USE_CUDA_NAMES function hipsparseCopyMatDescr_(dest,src) bind(c, name="cusparseCopyMatDescr") #else function hipsparseCopyMatDescr_(dest,src) bind(c, name="hipsparseCopyMatDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCopyMatDescr_ type(c_ptr),value :: dest type(c_ptr),value :: src end function end interface !> \ingroup aux_module !> \brief Specify the matrix type of a matrix descriptor !> !> \details !> \p hipsparseSetMatType sets the matrix type of a matrix descriptor. Valid !> matrix types are \p HIPSPARSE_MATRIX_TYPE_GENERAL, !> \p HIPSPARSE_MATRIX_TYPE_SYMMETRIC, \p HIPSPARSE_MATRIX_TYPE_HERMITIAN or !> \p HIPSPARSE_MATRIX_TYPE_TRIANGULAR. interface hipsparseSetMatType #ifdef USE_CUDA_NAMES function hipsparseSetMatType_(descrA,myType) bind(c, name="cusparseSetMatType") #else function hipsparseSetMatType_(descrA,myType) bind(c, name="hipsparseSetMatType") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSetMatType_ type(c_ptr),value :: descrA integer(kind(HIPSPARSE_MATRIX_TYPE_GENERAL)),value :: myType end function end interface !> \ingroup aux_module !> \brief Specify the matrix fill mode of a matrix descriptor !> !> \details !> \p hipsparseSetMatFillMode sets the matrix fill mode of a matrix descriptor. !> Valid fill modes are \p HIPSPARSE_FILL_MODE_LOWER or !> \p HIPSPARSE_FILL_MODE_UPPER. interface hipsparseSetMatFillMode #ifdef USE_CUDA_NAMES function hipsparseSetMatFillMode_(descrA,fillMode) bind(c, name="cusparseSetMatFillMode") #else function hipsparseSetMatFillMode_(descrA,fillMode) bind(c, name="hipsparseSetMatFillMode") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSetMatFillMode_ type(c_ptr),value :: descrA integer(kind(HIPSPARSE_FILL_MODE_LOWER)),value :: fillMode end function end interface !> \ingroup aux_module !> \brief Specify the matrix diagonal type of a matrix descriptor !> !> \details !> \p hipsparseSetMatDiagType sets the matrix diagonal type of a matrix !> descriptor. Valid diagonal types are \p HIPSPARSE_DIAG_TYPE_UNIT or !> \p HIPSPARSE_DIAG_TYPE_NON_UNIT. interface hipsparseSetMatDiagType #ifdef USE_CUDA_NAMES function hipsparseSetMatDiagType_(descrA,diagType) bind(c, name="cusparseSetMatDiagType") #else function hipsparseSetMatDiagType_(descrA,diagType) bind(c, name="hipsparseSetMatDiagType") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSetMatDiagType_ type(c_ptr),value :: descrA integer(kind(HIPSPARSE_DIAG_TYPE_NON_UNIT)),value :: diagType end function end interface !> \ingroup aux_module !> \brief Specify the index base of a matrix descriptor !> !> \details !> \p hipsparseSetMatIndexBase sets the index base of a matrix descriptor. Valid !> options are \p HIPSPARSE_INDEX_BASE_ZERO or \p HIPSPARSE_INDEX_BASE_ONE. interface hipsparseSetMatIndexBase #ifdef USE_CUDA_NAMES function hipsparseSetMatIndexBase_(descrA,base) bind(c, name="cusparseSetMatIndexBase") #else function hipsparseSetMatIndexBase_(descrA,base) bind(c, name="hipsparseSetMatIndexBase") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSetMatIndexBase_ type(c_ptr),value :: descrA integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: base end function end interface interface hipsparseCreateHybMat #ifdef USE_CUDA_NAMES function hipsparseCreateHybMat_(hybA) bind(c, name="cusparseCreateHybMat") #else function hipsparseCreateHybMat_(hybA) bind(c, name="hipsparseCreateHybMat") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateHybMat_ type(c_ptr) :: hybA end function end interface interface hipsparseDestroyHybMat #ifdef USE_CUDA_NAMES function hipsparseDestroyHybMat_(hybA) bind(c, name="cusparseDestroyHybMat") #else function hipsparseDestroyHybMat_(hybA) bind(c, name="hipsparseDestroyHybMat") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyHybMat_ type(c_ptr),value :: hybA end function end interface !> \ingroup aux_module !> \brief Create a bsrsv2 info structure !> !> \details !> \p hipsparseCreateBsrsv2Info creates a structure that holds the bsrsv2 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyBsrsv2Info(). interface hipsparseCreateBsrsv2Info #ifdef USE_CUDA_NAMES function hipsparseCreateBsrsv2Info_(myInfo) bind(c, name="cusparseCreateBsrsv2Info") #else function hipsparseCreateBsrsv2Info_(myInfo) bind(c, name="hipsparseCreateBsrsv2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateBsrsv2Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a bsrsv2 info structure !> !> \details !> \p hipsparseDestroyBsrsv2Info destroys a bsrsv2 info structure. interface hipsparseDestroyBsrsv2Info #ifdef USE_CUDA_NAMES function hipsparseDestroyBsrsv2Info_(myInfo) bind(c, name="cusparseDestroyBsrsv2Info") #else function hipsparseDestroyBsrsv2Info_(myInfo) bind(c, name="hipsparseDestroyBsrsv2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyBsrsv2Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a bsrsm2 info structure !> !> \details !> \p hipsparseCreateBsrsm2Info creates a structure that holds the bsrsm2 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyBsrsm2Info(). interface hipsparseCreateBsrsm2Info #ifdef USE_CUDA_NAMES function hipsparseCreateBsrsm2Info_(myInfo) bind(c, name="cusparseCreateBsrsm2Info") #else function hipsparseCreateBsrsm2Info_(myInfo) bind(c, name="hipsparseCreateBsrsm2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateBsrsm2Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a bsrsm2 info structure !> !> \details !> \p hipsparseDestroyBsrsm2Info destroys a bsrsm2 info structure. interface hipsparseDestroyBsrsm2Info #ifdef USE_CUDA_NAMES function hipsparseDestroyBsrsm2Info_(myInfo) bind(c, name="cusparseDestroyBsrsm2Info") #else function hipsparseDestroyBsrsm2Info_(myInfo) bind(c, name="hipsparseDestroyBsrsm2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyBsrsm2Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a bsrilu02 info structure !> !> \details !> \p hipsparseCreateBsrilu02Info creates a structure that holds the bsrilu02 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyBsrilu02Info(). interface hipsparseCreateBsrilu02Info #ifdef USE_CUDA_NAMES function hipsparseCreateBsrilu02Info_(myInfo) bind(c, name="cusparseCreateBsrilu02Info") #else function hipsparseCreateBsrilu02Info_(myInfo) bind(c, name="hipsparseCreateBsrilu02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateBsrilu02Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a bsrilu02 info structure !> !> \details !> \p hipsparseDestroyBsrilu02Info destroys a bsrilu02 info structure. interface hipsparseDestroyBsrilu02Info #ifdef USE_CUDA_NAMES function hipsparseDestroyBsrilu02Info_(myInfo) bind(c, name="cusparseDestroyBsrilu02Info") #else function hipsparseDestroyBsrilu02Info_(myInfo) bind(c, name="hipsparseDestroyBsrilu02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyBsrilu02Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a bsric02 info structure !> !> \details !> \p hipsparseCreateBsric02Info creates a structure that holds the bsric02 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyBsric02Info(). interface hipsparseCreateBsric02Info #ifdef USE_CUDA_NAMES function hipsparseCreateBsric02Info_(myInfo) bind(c, name="cusparseCreateBsric02Info") #else function hipsparseCreateBsric02Info_(myInfo) bind(c, name="hipsparseCreateBsric02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateBsric02Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a bsric02 info structure !> !> \details !> \p hipsparseDestroyBsric02Info destroys a bsric02 info structure. interface hipsparseDestroyBsric02Info #ifdef USE_CUDA_NAMES function hipsparseDestroyBsric02Info_(myInfo) bind(c, name="cusparseDestroyBsric02Info") #else function hipsparseDestroyBsric02Info_(myInfo) bind(c, name="hipsparseDestroyBsric02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyBsric02Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a csrsv2 info structure !> !> \details !> \p hipsparseCreateCsrsv2Info creates a structure that holds the csrsv2 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyCsrsv2Info(). interface hipsparseCreateCsrsv2Info #ifdef USE_CUDA_NAMES function hipsparseCreateCsrsv2Info_(myInfo) bind(c, name="cusparseCreateCsrsv2Info") #else function hipsparseCreateCsrsv2Info_(myInfo) bind(c, name="hipsparseCreateCsrsv2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsrsv2Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a csrsv2 info structure !> !> \details !> \p hipsparseDestroyCsrsv2Info destroys a csrsv2 info structure. interface hipsparseDestroyCsrsv2Info #ifdef USE_CUDA_NAMES function hipsparseDestroyCsrsv2Info_(myInfo) bind(c, name="cusparseDestroyCsrsv2Info") #else function hipsparseDestroyCsrsv2Info_(myInfo) bind(c, name="hipsparseDestroyCsrsv2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyCsrsv2Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a csrsm2 info structure !> !> \details !> \p hipsparseCreateCsrsm2Info creates a structure that holds the csrsm2 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyCsrsm2Info(). interface hipsparseCreateCsrsm2Info #ifdef USE_CUDA_NAMES function hipsparseCreateCsrsm2Info_(myInfo) bind(c, name="cusparseCreateCsrsm2Info") #else function hipsparseCreateCsrsm2Info_(myInfo) bind(c, name="hipsparseCreateCsrsm2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsrsm2Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a csrsm2 info structure !> !> \details !> \p hipsparseDestroyCsrsm2Info destroys a csrsm2 info structure. interface hipsparseDestroyCsrsm2Info #ifdef USE_CUDA_NAMES function hipsparseDestroyCsrsm2Info_(myInfo) bind(c, name="cusparseDestroyCsrsm2Info") #else function hipsparseDestroyCsrsm2Info_(myInfo) bind(c, name="hipsparseDestroyCsrsm2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyCsrsm2Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a csrilu02 info structure !> !> \details !> \p hipsparseCreateCsrilu02Info creates a structure that holds the csrilu02 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyCsrilu02Info(). interface hipsparseCreateCsrilu02Info #ifdef USE_CUDA_NAMES function hipsparseCreateCsrilu02Info_(myInfo) bind(c, name="cusparseCreateCsrilu02Info") #else function hipsparseCreateCsrilu02Info_(myInfo) bind(c, name="hipsparseCreateCsrilu02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsrilu02Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a csrilu02 info structure !> !> \details !> \p hipsparseDestroyCsrilu02Info destroys a csrilu02 info structure. interface hipsparseDestroyCsrilu02Info #ifdef USE_CUDA_NAMES function hipsparseDestroyCsrilu02Info_(myInfo) bind(c, name="cusparseDestroyCsrilu02Info") #else function hipsparseDestroyCsrilu02Info_(myInfo) bind(c, name="hipsparseDestroyCsrilu02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyCsrilu02Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a csric02 info structure !> !> \details !> \p hipsparseCreateCsric02Info creates a structure that holds the csric02 info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyCsric02Info(). interface hipsparseCreateCsric02Info #ifdef USE_CUDA_NAMES function hipsparseCreateCsric02Info_(myInfo) bind(c, name="cusparseCreateCsric02Info") #else function hipsparseCreateCsric02Info_(myInfo) bind(c, name="hipsparseCreateCsric02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsric02Info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a csric02 info structure !> !> \details !> \p hipsparseDestroyCsric02Info destroys a csric02 info structure. interface hipsparseDestroyCsric02Info #ifdef USE_CUDA_NAMES function hipsparseDestroyCsric02Info_(myInfo) bind(c, name="cusparseDestroyCsric02Info") #else function hipsparseDestroyCsric02Info_(myInfo) bind(c, name="hipsparseDestroyCsric02Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyCsric02Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a csru2csr info structure !> !> \details !> \p hipsparseCreateCsru2csrInfo creates a structure that holds the csru2csr info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyCsru2csrInfo(). interface hipsparseCreateCsru2csrInfo #ifdef USE_CUDA_NAMES function hipsparseCreateCsru2csrInfo_(myInfo) bind(c, name="cusparseCreateCsru2csrInfo") #else function hipsparseCreateCsru2csrInfo_(myInfo) bind(c, name="hipsparseCreateCsru2csrInfo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsru2csrInfo_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a csru2csr info structure !> !> \details !> \p hipsparseDestroyCsru2csrInfo destroys a csru2csr info structure. interface hipsparseDestroyCsru2csrInfo #ifdef USE_CUDA_NAMES function hipsparseDestroyCsru2csrInfo_(myInfo) bind(c, name="cusparseDestroyCsru2csrInfo") #else function hipsparseDestroyCsru2csrInfo_(myInfo) bind(c, name="hipsparseDestroyCsru2csrInfo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyCsru2csrInfo_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a color info structure !> !> \details !> \p hipsparseCreateColorInfo creates a structure that holds the color info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyColorInfo(). interface hipsparseCreateColorInfo #ifdef USE_CUDA_NAMES function hipsparseCreateColorInfo_(myInfo) bind(c, name="cusparseCreateColorInfo") #else function hipsparseCreateColorInfo_(myInfo) bind(c, name="hipsparseCreateColorInfo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateColorInfo_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a color info structure !> !> \details !> \p hipsparseDestroyColorInfo destroys a color info structure. interface hipsparseDestroyColorInfo #ifdef USE_CUDA_NAMES function hipsparseDestroyColorInfo_(myInfo) bind(c, name="cusparseDestroyColorInfo") #else function hipsparseDestroyColorInfo_(myInfo) bind(c, name="hipsparseDestroyColorInfo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyColorInfo_ type(c_ptr),value :: myInfo end function end interface interface hipsparseCreateCsrgemm2Info #ifdef USE_CUDA_NAMES function hipsparseCreateCsrgemm2Info_(myInfo) bind(c, name="cusparseCreateCsrgemm2Info") #else function hipsparseCreateCsrgemm2Info_(myInfo) bind(c, name="hipsparseCreateCsrgemm2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsrgemm2Info_ type(c_ptr) :: myInfo end function end interface interface hipsparseDestroyCsrgemm2Info #ifdef USE_CUDA_NAMES function hipsparseDestroyCsrgemm2Info_(myInfo) bind(c, name="cusparseDestroyCsrgemm2Info") #else function hipsparseDestroyCsrgemm2Info_(myInfo) bind(c, name="hipsparseDestroyCsrgemm2Info") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyCsrgemm2Info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a prune info structure !> !> \details !> \p hipsparseCreatePruneInfo creates a structure that holds the prune info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using hipsparseDestroyPruneInfo(). interface hipsparseCreatePruneInfo #ifdef USE_CUDA_NAMES function hipsparseCreatePruneInfo_(myInfo) bind(c, name="cusparseCreatePruneInfo") #else function hipsparseCreatePruneInfo_(myInfo) bind(c, name="hipsparseCreatePruneInfo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreatePruneInfo_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a prune info structure !> !> \details !> \p hipsparseDestroyPruneInfo destroys a prune info structure. interface hipsparseDestroyPruneInfo #ifdef USE_CUDA_NAMES function hipsparseDestroyPruneInfo_(myInfo) bind(c, name="cusparseDestroyPruneInfo") #else function hipsparseDestroyPruneInfo_(myInfo) bind(c, name="hipsparseDestroyPruneInfo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyPruneInfo_ type(c_ptr),value :: myInfo end function end interface interface hipsparseSaxpyi #ifdef USE_CUDA_NAMES function hipsparseSaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="cusparseSaxpyi") #else function hipsparseSaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="hipsparseSaxpyi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSaxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSaxpyi_rank_0,& hipsparseSaxpyi_rank_1 #endif end interface interface hipsparseDaxpyi #ifdef USE_CUDA_NAMES function hipsparseDaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="cusparseDaxpyi") #else function hipsparseDaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="hipsparseDaxpyi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDaxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDaxpyi_rank_0,& hipsparseDaxpyi_rank_1 #endif end interface interface hipsparseCaxpyi #ifdef USE_CUDA_NAMES function hipsparseCaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="cusparseCaxpyi") #else function hipsparseCaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="hipsparseCaxpyi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCaxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCaxpyi_rank_0,& hipsparseCaxpyi_rank_1 #endif end interface interface hipsparseZaxpyi #ifdef USE_CUDA_NAMES function hipsparseZaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="cusparseZaxpyi") #else function hipsparseZaxpyi_(handle,nnz,alpha,xVal,xInd,y,idxBase) bind(c, name="hipsparseZaxpyi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZaxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZaxpyi_rank_0,& hipsparseZaxpyi_rank_1 #endif end interface interface hipsparseSdoti #ifdef USE_CUDA_NAMES function hipsparseSdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="cusparseSdoti") #else function hipsparseSdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="hipsparseSdoti") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSdoti_rank_0,& hipsparseSdoti_rank_1 #endif end interface interface hipsparseDdoti #ifdef USE_CUDA_NAMES function hipsparseDdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="cusparseDdoti") #else function hipsparseDdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="hipsparseDdoti") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDdoti_rank_0,& hipsparseDdoti_rank_1 #endif end interface interface hipsparseCdoti #ifdef USE_CUDA_NAMES function hipsparseCdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="cusparseCdoti") #else function hipsparseCdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="hipsparseCdoti") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCdoti_rank_0,& hipsparseCdoti_rank_1 #endif end interface interface hipsparseZdoti #ifdef USE_CUDA_NAMES function hipsparseZdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="cusparseZdoti") #else function hipsparseZdoti_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="hipsparseZdoti") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZdoti_rank_0,& hipsparseZdoti_rank_1 #endif end interface interface hipsparseCdotci #ifdef USE_CUDA_NAMES function hipsparseCdotci_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="cusparseCdotci") #else function hipsparseCdotci_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="hipsparseCdotci") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdotci_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCdotci_rank_0,& hipsparseCdotci_rank_1 #endif end interface interface hipsparseZdotci #ifdef USE_CUDA_NAMES function hipsparseZdotci_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="cusparseZdotci") #else function hipsparseZdotci_(handle,nnz,xVal,xInd,y,myResult,idxBase) bind(c, name="hipsparseZdotci") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdotci_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZdotci_rank_0,& hipsparseZdotci_rank_1 #endif end interface interface hipsparseSgthr #ifdef USE_CUDA_NAMES function hipsparseSgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseSgthr") #else function hipsparseSgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseSgthr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgthr_rank_0,& hipsparseSgthr_rank_1 #endif end interface interface hipsparseDgthr #ifdef USE_CUDA_NAMES function hipsparseDgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseDgthr") #else function hipsparseDgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseDgthr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgthr_rank_0,& hipsparseDgthr_rank_1 #endif end interface interface hipsparseCgthr #ifdef USE_CUDA_NAMES function hipsparseCgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseCgthr") #else function hipsparseCgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseCgthr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgthr_rank_0,& hipsparseCgthr_rank_1 #endif end interface interface hipsparseZgthr #ifdef USE_CUDA_NAMES function hipsparseZgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseZgthr") #else function hipsparseZgthr_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseZgthr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgthr_rank_0,& hipsparseZgthr_rank_1 #endif end interface interface hipsparseSgthrz #ifdef USE_CUDA_NAMES function hipsparseSgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseSgthrz") #else function hipsparseSgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseSgthrz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgthrz_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgthrz_rank_0,& hipsparseSgthrz_rank_1 #endif end interface interface hipsparseDgthrz #ifdef USE_CUDA_NAMES function hipsparseDgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseDgthrz") #else function hipsparseDgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseDgthrz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgthrz_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgthrz_rank_0,& hipsparseDgthrz_rank_1 #endif end interface interface hipsparseCgthrz #ifdef USE_CUDA_NAMES function hipsparseCgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseCgthrz") #else function hipsparseCgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseCgthrz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgthrz_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgthrz_rank_0,& hipsparseCgthrz_rank_1 #endif end interface interface hipsparseZgthrz #ifdef USE_CUDA_NAMES function hipsparseZgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="cusparseZgthrz") #else function hipsparseZgthrz_(handle,nnz,y,xVal,xInd,idxBase) bind(c, name="hipsparseZgthrz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgthrz_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: xVal type(c_ptr),value :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgthrz_rank_0,& hipsparseZgthrz_rank_1 #endif end interface interface hipsparseSroti #ifdef USE_CUDA_NAMES function hipsparseSroti_(handle,nnz,xVal,xInd,y,c,s,idxBase) bind(c, name="cusparseSroti") #else function hipsparseSroti_(handle,nnz,xVal,xInd,y,c,s,idxBase) bind(c, name="hipsparseSroti") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSroti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y real(c_float) :: c real(c_float) :: s integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSroti_rank_0,& hipsparseSroti_rank_1 #endif end interface interface hipsparseDroti #ifdef USE_CUDA_NAMES function hipsparseDroti_(handle,nnz,xVal,xInd,y,c,s,idxBase) bind(c, name="cusparseDroti") #else function hipsparseDroti_(handle,nnz,xVal,xInd,y,c,s,idxBase) bind(c, name="hipsparseDroti") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDroti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y real(c_double) :: c real(c_double) :: s integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDroti_rank_0,& hipsparseDroti_rank_1 #endif end interface interface hipsparseSsctr #ifdef USE_CUDA_NAMES function hipsparseSsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="cusparseSsctr") #else function hipsparseSsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="hipsparseSsctr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSsctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSsctr_rank_0,& hipsparseSsctr_rank_1 #endif end interface interface hipsparseDsctr #ifdef USE_CUDA_NAMES function hipsparseDsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="cusparseDsctr") #else function hipsparseDsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="hipsparseDsctr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDsctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDsctr_rank_0,& hipsparseDsctr_rank_1 #endif end interface interface hipsparseCsctr #ifdef USE_CUDA_NAMES function hipsparseCsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="cusparseCsctr") #else function hipsparseCsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="hipsparseCsctr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCsctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCsctr_rank_0,& hipsparseCsctr_rank_1 #endif end interface interface hipsparseZsctr #ifdef USE_CUDA_NAMES function hipsparseZsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="cusparseZsctr") #else function hipsparseZsctr_(handle,nnz,xVal,xInd,y,idxBase) bind(c, name="hipsparseZsctr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZsctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: xVal type(c_ptr),value :: xInd type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZsctr_rank_0,& hipsparseZsctr_rank_1 #endif end interface interface hipsparseScsrmv #ifdef USE_CUDA_NAMES function hipsparseScsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="cusparseScsrmv") #else function hipsparseScsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="hipsparseScsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrmv_rank_0,& hipsparseScsrmv_rank_1 #endif end interface interface hipsparseDcsrmv #ifdef USE_CUDA_NAMES function hipsparseDcsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="cusparseDcsrmv") #else function hipsparseDcsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="hipsparseDcsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrmv_rank_0,& hipsparseDcsrmv_rank_1 #endif end interface interface hipsparseCcsrmv #ifdef USE_CUDA_NAMES function hipsparseCcsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="cusparseCcsrmv") #else function hipsparseCcsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="hipsparseCcsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrmv_rank_0,& hipsparseCcsrmv_rank_1 #endif end interface interface hipsparseZcsrmv #ifdef USE_CUDA_NAMES function hipsparseZcsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="cusparseZcsrmv") #else function hipsparseZcsrmv_(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) bind(c, name="hipsparseZcsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrmv_rank_0,& hipsparseZcsrmv_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse triangular solve using CSR storage format !> !> \details !> \p hipsparseXcsrsv2_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseScsrsv2_solve(), !> hipsparseDcsrsv2_solve(), hipsparseCcsrsv2_solve() or hipsparseZcsrsv2_solve() !> computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, !> using same index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note \p hipsparseXcsrsv2_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXcsrsv2_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXcsrsv2_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXcsrsv2_zeroPivot") #else function hipsparseXcsrsv2_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXcsrsv2_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsv2_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseScsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseScsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseScsrsv2_bufferSize") #else function hipsparseScsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseScsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsv2_bufferSize_rank_0,& hipsparseScsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseDcsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDcsrsv2_bufferSize") #else function hipsparseDcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDcsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsv2_bufferSize_rank_0,& hipsparseDcsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseCcsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCcsrsv2_bufferSize") #else function hipsparseCcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCcsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsv2_bufferSize_rank_0,& hipsparseCcsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseZcsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZcsrsv2_bufferSize") #else function hipsparseZcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZcsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsv2_bufferSize_rank_0,& hipsparseZcsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseScsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseScsrsv2_bufferSizeExt") #else function hipsparseScsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseScsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsv2_bufferSizeExt_rank_0,& hipsparseScsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseDcsrsv2_bufferSizeExt") #else function hipsparseDcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseDcsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsv2_bufferSizeExt_rank_0,& hipsparseDcsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseCcsrsv2_bufferSizeExt") #else function hipsparseCcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseCcsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsv2_bufferSizeExt_rank_0,& hipsparseCcsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseZcsrsv2_bufferSizeExt") #else function hipsparseZcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseZcsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsv2_bufferSizeExt_rank_0,& hipsparseZcsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseScsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseScsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseScsrsv2_analysis") #else function hipsparseScsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseScsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsv2_analysis_rank_0,& hipsparseScsrsv2_analysis_rank_1 #endif end interface interface hipsparseDcsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseDcsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseDcsrsv2_analysis") #else function hipsparseDcsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsv2_analysis_rank_0,& hipsparseDcsrsv2_analysis_rank_1 #endif end interface interface hipsparseCcsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseCcsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseCcsrsv2_analysis") #else function hipsparseCcsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsv2_analysis_rank_0,& hipsparseCcsrsv2_analysis_rank_1 #endif end interface interface hipsparseZcsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseZcsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseZcsrsv2_analysis") #else function hipsparseZcsrsv2_analysis_(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsv2_analysis_rank_0,& hipsparseZcsrsv2_analysis_rank_1 #endif end interface interface hipsparseScsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseScsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseScsrsv2_solve") #else function hipsparseScsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseScsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsv2_solve_rank_0,& hipsparseScsrsv2_solve_rank_1 #endif end interface interface hipsparseDcsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseDcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseDcsrsv2_solve") #else function hipsparseDcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseDcsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsv2_solve_rank_0,& hipsparseDcsrsv2_solve_rank_1 #endif end interface interface hipsparseCcsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseCcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseCcsrsv2_solve") #else function hipsparseCcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseCcsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsv2_solve_rank_0,& hipsparseCcsrsv2_solve_rank_1 #endif end interface interface hipsparseZcsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseZcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseZcsrsv2_solve") #else function hipsparseZcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseZcsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsv2_solve_rank_0,& hipsparseZcsrsv2_solve_rank_1 #endif end interface interface hipsparseShybmv #ifdef USE_CUDA_NAMES function hipsparseShybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="cusparseShybmv") #else function hipsparseShybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="hipsparseShybmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseShybmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseShybmv_rank_0,& hipsparseShybmv_rank_1 #endif end interface interface hipsparseDhybmv #ifdef USE_CUDA_NAMES function hipsparseDhybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="cusparseDhybmv") #else function hipsparseDhybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="hipsparseDhybmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDhybmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDhybmv_rank_0,& hipsparseDhybmv_rank_1 #endif end interface interface hipsparseChybmv #ifdef USE_CUDA_NAMES function hipsparseChybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="cusparseChybmv") #else function hipsparseChybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="hipsparseChybmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseChybmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseChybmv_rank_0,& hipsparseChybmv_rank_1 #endif end interface interface hipsparseZhybmv #ifdef USE_CUDA_NAMES function hipsparseZhybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="cusparseZhybmv") #else function hipsparseZhybmv_(handle,transA,alpha,descrA,hybA,x,beta,y) bind(c, name="hipsparseZhybmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZhybmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZhybmv_rank_0,& hipsparseZhybmv_rank_1 #endif end interface interface hipsparseSbsrmv #ifdef USE_CUDA_NAMES function hipsparseSbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="cusparseSbsrmv") #else function hipsparseSbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="hipsparseSbsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrmv_rank_0,& hipsparseSbsrmv_rank_1 #endif end interface interface hipsparseDbsrmv #ifdef USE_CUDA_NAMES function hipsparseDbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="cusparseDbsrmv") #else function hipsparseDbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="hipsparseDbsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrmv_rank_0,& hipsparseDbsrmv_rank_1 #endif end interface interface hipsparseCbsrmv #ifdef USE_CUDA_NAMES function hipsparseCbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="cusparseCbsrmv") #else function hipsparseCbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="hipsparseCbsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrmv_rank_0,& hipsparseCbsrmv_rank_1 #endif end interface interface hipsparseZbsrmv #ifdef USE_CUDA_NAMES function hipsparseZbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="cusparseZbsrmv") #else function hipsparseZbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) bind(c, name="hipsparseZbsrmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrmv_rank_0,& hipsparseZbsrmv_rank_1 #endif end interface interface hipsparseSbsrxmv #ifdef USE_CUDA_NAMES function hipsparseSbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="cusparseSbsrxmv") #else function hipsparseSbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="hipsparseSbsrxmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrxmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: trans integer(c_int),value :: sizeOfMask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsrVal type(c_ptr),value :: bsrMaskPtr type(c_ptr),value :: bsrRowPtr type(c_ptr),value :: bsrEndPtr type(c_ptr),value :: bsrColInd integer(c_int),value :: blockDim type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrxmv_rank_0,& hipsparseSbsrxmv_rank_1 #endif end interface interface hipsparseDbsrxmv #ifdef USE_CUDA_NAMES function hipsparseDbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="cusparseDbsrxmv") #else function hipsparseDbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="hipsparseDbsrxmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrxmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: trans integer(c_int),value :: sizeOfMask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsrVal type(c_ptr),value :: bsrMaskPtr type(c_ptr),value :: bsrRowPtr type(c_ptr),value :: bsrEndPtr type(c_ptr),value :: bsrColInd integer(c_int),value :: blockDim type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrxmv_rank_0,& hipsparseDbsrxmv_rank_1 #endif end interface interface hipsparseCbsrxmv #ifdef USE_CUDA_NAMES function hipsparseCbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="cusparseCbsrxmv") #else function hipsparseCbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="hipsparseCbsrxmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrxmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: trans integer(c_int),value :: sizeOfMask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsrVal type(c_ptr),value :: bsrMaskPtr type(c_ptr),value :: bsrRowPtr type(c_ptr),value :: bsrEndPtr type(c_ptr),value :: bsrColInd integer(c_int),value :: blockDim type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrxmv_rank_0,& hipsparseCbsrxmv_rank_1 #endif end interface interface hipsparseZbsrxmv #ifdef USE_CUDA_NAMES function hipsparseZbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="cusparseZbsrxmv") #else function hipsparseZbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) bind(c, name="hipsparseZbsrxmv") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrxmv_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: trans integer(c_int),value :: sizeOfMask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsrVal type(c_ptr),value :: bsrMaskPtr type(c_ptr),value :: bsrRowPtr type(c_ptr),value :: bsrEndPtr type(c_ptr),value :: bsrColInd integer(c_int),value :: blockDim type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrxmv_rank_0,& hipsparseZbsrxmv_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse triangular solve using BSR storage format !> !> \details !> \p hipsparseXbsrsv2_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXbsrsv2_analysis() or !> hipsparseXbsrsv2_solve() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ !> is stored in \p position, using same index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note \p hipsparseXbsrsv2_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXbsrsv2_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXbsrsv2_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXbsrsv2_zeroPivot") #else function hipsparseXbsrsv2_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXbsrsv2_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXbsrsv2_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseSbsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseSbsrsv2_bufferSize") #else function hipsparseSbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseSbsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsv2_bufferSize_rank_0,& hipsparseSbsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseDbsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDbsrsv2_bufferSize") #else function hipsparseDbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDbsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsv2_bufferSize_rank_0,& hipsparseDbsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseCbsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCbsrsv2_bufferSize") #else function hipsparseCbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCbsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsv2_bufferSize_rank_0,& hipsparseCbsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseZbsrsv2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZbsrsv2_bufferSize") #else function hipsparseZbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZbsrsv2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsv2_bufferSize_rank_0,& hipsparseZbsrsv2_bufferSize_rank_1 #endif end interface interface hipsparseSbsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="cusparseSbsrsv2_bufferSizeExt") #else function hipsparseSbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="hipsparseSbsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsv2_bufferSizeExt_rank_0,& hipsparseSbsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseDbsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="cusparseDbsrsv2_bufferSizeExt") #else function hipsparseDbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="hipsparseDbsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsv2_bufferSizeExt_rank_0,& hipsparseDbsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseCbsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="cusparseCbsrsv2_bufferSizeExt") #else function hipsparseCbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="hipsparseCbsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsv2_bufferSizeExt_rank_0,& hipsparseCbsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseZbsrsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="cusparseZbsrsv2_bufferSizeExt") #else function hipsparseZbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) bind(c, name="hipsparseZbsrsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsv2_bufferSizeExt_rank_0,& hipsparseZbsrsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseSbsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseSbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseSbsrsv2_analysis") #else function hipsparseSbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseSbsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsv2_analysis_rank_0,& hipsparseSbsrsv2_analysis_rank_1 #endif end interface interface hipsparseDbsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseDbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseDbsrsv2_analysis") #else function hipsparseDbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseDbsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsv2_analysis_rank_0,& hipsparseDbsrsv2_analysis_rank_1 #endif end interface interface hipsparseCbsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseCbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseCbsrsv2_analysis") #else function hipsparseCbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseCbsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsv2_analysis_rank_0,& hipsparseCbsrsv2_analysis_rank_1 #endif end interface interface hipsparseZbsrsv2_analysis #ifdef USE_CUDA_NAMES function hipsparseZbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseZbsrsv2_analysis") #else function hipsparseZbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseZbsrsv2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsv2_analysis_rank_0,& hipsparseZbsrsv2_analysis_rank_1 #endif end interface interface hipsparseSbsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseSbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseSbsrsv2_solve") #else function hipsparseSbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseSbsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsv2_solve_rank_0,& hipsparseSbsrsv2_solve_rank_1 #endif end interface interface hipsparseDbsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseDbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseDbsrsv2_solve") #else function hipsparseDbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseDbsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsv2_solve_rank_0,& hipsparseDbsrsv2_solve_rank_1 #endif end interface interface hipsparseCbsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseCbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseCbsrsv2_solve") #else function hipsparseCbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseCbsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsv2_solve_rank_0,& hipsparseCbsrsv2_solve_rank_1 #endif end interface interface hipsparseZbsrsv2_solve #ifdef USE_CUDA_NAMES function hipsparseZbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="cusparseZbsrsv2_solve") #else function hipsparseZbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) bind(c, name="hipsparseZbsrsv2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: mb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: f type(c_ptr),value :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsv2_solve_rank_0,& hipsparseZbsrsv2_solve_rank_1 #endif end interface interface hipsparseSgemvi_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="cusparseSgemvi_bufferSize") #else function hipsparseSgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="hipsparseSgemvi_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemvi_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_int) :: pBufferSize end function end interface interface hipsparseDgemvi_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="cusparseDgemvi_bufferSize") #else function hipsparseDgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="hipsparseDgemvi_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemvi_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_int) :: pBufferSize end function end interface interface hipsparseCgemvi_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="cusparseCgemvi_bufferSize") #else function hipsparseCgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="hipsparseCgemvi_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemvi_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_int) :: pBufferSize end function end interface interface hipsparseZgemvi_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="cusparseZgemvi_bufferSize") #else function hipsparseZgemvi_bufferSize_(handle,transA,m,n,nnz,pBufferSize) bind(c, name="hipsparseZgemvi_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemvi_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_int) :: pBufferSize end function end interface interface hipsparseSgemvi #ifdef USE_CUDA_NAMES function hipsparseSgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="cusparseSgemvi") #else function hipsparseSgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="hipsparseSgemvi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemvi_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x type(c_ptr),value :: xInd real(c_float) :: beta type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgemvi_full_rank,& hipsparseSgemvi_rank_0,& hipsparseSgemvi_rank_1 #endif end interface interface hipsparseDgemvi #ifdef USE_CUDA_NAMES function hipsparseDgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="cusparseDgemvi") #else function hipsparseDgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="hipsparseDgemvi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemvi_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x type(c_ptr),value :: xInd real(c_double) :: beta type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgemvi_full_rank,& hipsparseDgemvi_rank_0,& hipsparseDgemvi_rank_1 #endif end interface interface hipsparseCgemvi #ifdef USE_CUDA_NAMES function hipsparseCgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="cusparseCgemvi") #else function hipsparseCgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="hipsparseCgemvi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemvi_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x type(c_ptr),value :: xInd complex(c_float_complex) :: beta type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgemvi_full_rank,& hipsparseCgemvi_rank_0,& hipsparseCgemvi_rank_1 #endif end interface interface hipsparseZgemvi #ifdef USE_CUDA_NAMES function hipsparseZgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="cusparseZgemvi") #else function hipsparseZgemvi_(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) bind(c, name="hipsparseZgemvi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemvi_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x type(c_ptr),value :: xInd complex(c_double_complex) :: beta type(c_ptr),value :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgemvi_full_rank,& hipsparseZgemvi_rank_0,& hipsparseZgemvi_rank_1 #endif end interface interface hipsparseSbsrmm #ifdef USE_CUDA_NAMES function hipsparseSbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="cusparseSbsrmm") #else function hipsparseSbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="hipsparseSbsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrmm_full_rank,& hipsparseSbsrmm_rank_0,& hipsparseSbsrmm_rank_1 #endif end interface interface hipsparseDbsrmm #ifdef USE_CUDA_NAMES function hipsparseDbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="cusparseDbsrmm") #else function hipsparseDbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="hipsparseDbsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrmm_full_rank,& hipsparseDbsrmm_rank_0,& hipsparseDbsrmm_rank_1 #endif end interface interface hipsparseCbsrmm #ifdef USE_CUDA_NAMES function hipsparseCbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="cusparseCbsrmm") #else function hipsparseCbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="hipsparseCbsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrmm_full_rank,& hipsparseCbsrmm_rank_0,& hipsparseCbsrmm_rank_1 #endif end interface interface hipsparseZbsrmm #ifdef USE_CUDA_NAMES function hipsparseZbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="cusparseZbsrmm") #else function hipsparseZbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) bind(c, name="hipsparseZbsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrmm_full_rank,& hipsparseZbsrmm_rank_0,& hipsparseZbsrmm_rank_1 #endif end interface interface hipsparseScsrmm #ifdef USE_CUDA_NAMES function hipsparseScsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseScsrmm") #else function hipsparseScsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseScsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrmm_full_rank,& hipsparseScsrmm_rank_0,& hipsparseScsrmm_rank_1 #endif end interface interface hipsparseDcsrmm #ifdef USE_CUDA_NAMES function hipsparseDcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseDcsrmm") #else function hipsparseDcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseDcsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrmm_full_rank,& hipsparseDcsrmm_rank_0,& hipsparseDcsrmm_rank_1 #endif end interface interface hipsparseCcsrmm #ifdef USE_CUDA_NAMES function hipsparseCcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseCcsrmm") #else function hipsparseCcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseCcsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrmm_full_rank,& hipsparseCcsrmm_rank_0,& hipsparseCcsrmm_rank_1 #endif end interface interface hipsparseZcsrmm #ifdef USE_CUDA_NAMES function hipsparseZcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseZcsrmm") #else function hipsparseZcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseZcsrmm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrmm_full_rank,& hipsparseZcsrmm_rank_0,& hipsparseZcsrmm_rank_1 #endif end interface interface hipsparseScsrmm2 #ifdef USE_CUDA_NAMES function hipsparseScsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseScsrmm2") #else function hipsparseScsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseScsrmm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm2_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrmm2_full_rank,& hipsparseScsrmm2_rank_0,& hipsparseScsrmm2_rank_1 #endif end interface interface hipsparseDcsrmm2 #ifdef USE_CUDA_NAMES function hipsparseDcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseDcsrmm2") #else function hipsparseDcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseDcsrmm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm2_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrmm2_full_rank,& hipsparseDcsrmm2_rank_0,& hipsparseDcsrmm2_rank_1 #endif end interface interface hipsparseCcsrmm2 #ifdef USE_CUDA_NAMES function hipsparseCcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseCcsrmm2") #else function hipsparseCcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseCcsrmm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm2_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrmm2_full_rank,& hipsparseCcsrmm2_rank_0,& hipsparseCcsrmm2_rank_1 #endif end interface interface hipsparseZcsrmm2 #ifdef USE_CUDA_NAMES function hipsparseZcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="cusparseZcsrmm2") #else function hipsparseZcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) bind(c, name="hipsparseZcsrmm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm2_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrmm2_full_rank,& hipsparseZcsrmm2_rank_0,& hipsparseZcsrmm2_rank_1 #endif end interface !> \ingroup level3_module !> \brief Sparse triangular system solve using BSR storage format !> !> \details !> \p hipsparseXbsrsm2_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXbsrsm2_analysis() or !> hipsparseXbsrsm2_solve() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ !> is stored in \p position, using same index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note \p hipsparseXbsrsm2_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXbsrsm2_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXbsrsm2_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXbsrsm2_zeroPivot") #else function hipsparseXbsrsm2_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXbsrsm2_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXbsrsm2_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseSbsrsm2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseSbsrsm2_bufferSize") #else function hipsparseSbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseSbsrsm2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsm2_bufferSize_rank_0,& hipsparseSbsrsm2_bufferSize_rank_1 #endif end interface interface hipsparseDbsrsm2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDbsrsm2_bufferSize") #else function hipsparseDbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDbsrsm2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsm2_bufferSize_rank_0,& hipsparseDbsrsm2_bufferSize_rank_1 #endif end interface interface hipsparseCbsrsm2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCbsrsm2_bufferSize") #else function hipsparseCbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCbsrsm2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsm2_bufferSize_rank_0,& hipsparseCbsrsm2_bufferSize_rank_1 #endif end interface interface hipsparseZbsrsm2_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZbsrsm2_bufferSize") #else function hipsparseZbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZbsrsm2_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsm2_bufferSize_rank_0,& hipsparseZbsrsm2_bufferSize_rank_1 #endif end interface interface hipsparseSbsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseSbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseSbsrsm2_analysis") #else function hipsparseSbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseSbsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsm2_analysis_rank_0,& hipsparseSbsrsm2_analysis_rank_1 #endif end interface interface hipsparseDbsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseDbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseDbsrsm2_analysis") #else function hipsparseDbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseDbsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsm2_analysis_rank_0,& hipsparseDbsrsm2_analysis_rank_1 #endif end interface interface hipsparseCbsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseCbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseCbsrsm2_analysis") #else function hipsparseCbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseCbsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsm2_analysis_rank_0,& hipsparseCbsrsm2_analysis_rank_1 #endif end interface interface hipsparseZbsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseZbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseZbsrsm2_analysis") #else function hipsparseZbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseZbsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsm2_analysis_rank_0,& hipsparseZbsrsm2_analysis_rank_1 #endif end interface interface hipsparseSbsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseSbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="cusparseSbsrsm2_solve") #else function hipsparseSbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="hipsparseSbsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrsm2_solve_full_rank,& hipsparseSbsrsm2_solve_rank_0,& hipsparseSbsrsm2_solve_rank_1 #endif end interface interface hipsparseDbsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseDbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="cusparseDbsrsm2_solve") #else function hipsparseDbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="hipsparseDbsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrsm2_solve_full_rank,& hipsparseDbsrsm2_solve_rank_0,& hipsparseDbsrsm2_solve_rank_1 #endif end interface interface hipsparseCbsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseCbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="cusparseCbsrsm2_solve") #else function hipsparseCbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="hipsparseCbsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrsm2_solve_full_rank,& hipsparseCbsrsm2_solve_rank_0,& hipsparseCbsrsm2_solve_rank_1 #endif end interface interface hipsparseZbsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseZbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="cusparseZbsrsm2_solve") #else function hipsparseZbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) bind(c, name="hipsparseZbsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transX integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrsm2_solve_full_rank,& hipsparseZbsrsm2_solve_rank_0,& hipsparseZbsrsm2_solve_rank_1 #endif end interface !> \ingroup level3_module !> \brief Sparse triangular system solve using CSR storage format !> !> \details !> \p hipsparseXcsrsm2_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXcsrsm2_analysis() or !> hipsparseXcsrsm2_solve() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ !> is stored in \p position, using same index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note \p hipsparseXcsrsm2_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXcsrsm2_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXcsrsm2_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXcsrsm2_zeroPivot") #else function hipsparseXcsrsm2_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXcsrsm2_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsm2_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseScsrsm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="cusparseScsrsm2_bufferSizeExt") #else function hipsparseScsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="hipsparseScsrsm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsm2_bufferSizeExt_full_rank,& hipsparseScsrsm2_bufferSizeExt_rank_0,& hipsparseScsrsm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsrsm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="cusparseDcsrsm2_bufferSizeExt") #else function hipsparseDcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="hipsparseDcsrsm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsm2_bufferSizeExt_full_rank,& hipsparseDcsrsm2_bufferSizeExt_rank_0,& hipsparseDcsrsm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsrsm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="cusparseCcsrsm2_bufferSizeExt") #else function hipsparseCcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="hipsparseCcsrsm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsm2_bufferSizeExt_full_rank,& hipsparseCcsrsm2_bufferSizeExt_rank_0,& hipsparseCcsrsm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsrsm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="cusparseZcsrsm2_bufferSizeExt") #else function hipsparseZcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) bind(c, name="hipsparseZcsrsm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsm2_bufferSizeExt_full_rank,& hipsparseZcsrsm2_bufferSizeExt_rank_0,& hipsparseZcsrsm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseScsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseScsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseScsrsm2_analysis") #else function hipsparseScsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseScsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_analysis_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsm2_analysis_full_rank,& hipsparseScsrsm2_analysis_rank_0,& hipsparseScsrsm2_analysis_rank_1 #endif end interface interface hipsparseDcsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseDcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseDcsrsm2_analysis") #else function hipsparseDcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_analysis_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsm2_analysis_full_rank,& hipsparseDcsrsm2_analysis_rank_0,& hipsparseDcsrsm2_analysis_rank_1 #endif end interface interface hipsparseCcsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseCcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseCcsrsm2_analysis") #else function hipsparseCcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_analysis_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsm2_analysis_full_rank,& hipsparseCcsrsm2_analysis_rank_0,& hipsparseCcsrsm2_analysis_rank_1 #endif end interface interface hipsparseZcsrsm2_analysis #ifdef USE_CUDA_NAMES function hipsparseZcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseZcsrsm2_analysis") #else function hipsparseZcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsrsm2_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_analysis_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsm2_analysis_full_rank,& hipsparseZcsrsm2_analysis_rank_0,& hipsparseZcsrsm2_analysis_rank_1 #endif end interface interface hipsparseScsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseScsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseScsrsm2_solve") #else function hipsparseScsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseScsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_solve_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrsm2_solve_full_rank,& hipsparseScsrsm2_solve_rank_0,& hipsparseScsrsm2_solve_rank_1 #endif end interface interface hipsparseDcsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseDcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseDcsrsm2_solve") #else function hipsparseDcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_solve_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrsm2_solve_full_rank,& hipsparseDcsrsm2_solve_rank_0,& hipsparseDcsrsm2_solve_rank_1 #endif end interface interface hipsparseCcsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseCcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseCcsrsm2_solve") #else function hipsparseCcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_solve_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrsm2_solve_full_rank,& hipsparseCcsrsm2_solve_rank_0,& hipsparseCcsrsm2_solve_rank_1 #endif end interface interface hipsparseZcsrsm2_solve #ifdef USE_CUDA_NAMES function hipsparseZcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="cusparseZcsrsm2_solve") #else function hipsparseZcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsrsm2_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_solve_ type(c_ptr),value :: handle integer(c_int),value :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrsm2_solve_full_rank,& hipsparseZcsrsm2_solve_rank_0,& hipsparseZcsrsm2_solve_rank_1 #endif end interface interface hipsparseSgemmi #ifdef USE_CUDA_NAMES function hipsparseSgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="cusparseSgemmi") #else function hipsparseSgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="hipsparseSgemmi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemmi_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: cscValB type(c_ptr),value :: cscColPtrB type(c_ptr),value :: cscRowIndB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgemmi_full_rank,& hipsparseSgemmi_rank_0,& hipsparseSgemmi_rank_1 #endif end interface interface hipsparseDgemmi #ifdef USE_CUDA_NAMES function hipsparseDgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="cusparseDgemmi") #else function hipsparseDgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="hipsparseDgemmi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemmi_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: cscValB type(c_ptr),value :: cscColPtrB type(c_ptr),value :: cscRowIndB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgemmi_full_rank,& hipsparseDgemmi_rank_0,& hipsparseDgemmi_rank_1 #endif end interface interface hipsparseCgemmi #ifdef USE_CUDA_NAMES function hipsparseCgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="cusparseCgemmi") #else function hipsparseCgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="hipsparseCgemmi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemmi_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: cscValB type(c_ptr),value :: cscColPtrB type(c_ptr),value :: cscRowIndB complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgemmi_full_rank,& hipsparseCgemmi_rank_0,& hipsparseCgemmi_rank_1 #endif end interface interface hipsparseZgemmi #ifdef USE_CUDA_NAMES function hipsparseZgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="cusparseZgemmi") #else function hipsparseZgemmi_(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) bind(c, name="hipsparseZgemmi") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemmi_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: cscValB type(c_ptr),value :: cscColPtrB type(c_ptr),value :: cscRowIndB complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgemmi_full_rank,& hipsparseZgemmi_rank_0,& hipsparseZgemmi_rank_1 #endif end interface interface hipsparseXcsrgeamNnz #ifdef USE_CUDA_NAMES function hipsparseXcsrgeamNnz_(handle,m,n,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) bind(c, name="cusparseXcsrgeamNnz") #else function hipsparseXcsrgeamNnz_(handle,m,n,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) bind(c, name="hipsparseXcsrgeamNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgeamNnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsrgeamNnz_rank_0,& hipsparseXcsrgeamNnz_rank_1 #endif end interface interface hipsparseScsrgeam #ifdef USE_CUDA_NAMES function hipsparseScsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseScsrgeam") #else function hipsparseScsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseScsrgeam") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrgeam_rank_0,& hipsparseScsrgeam_rank_1 #endif end interface interface hipsparseDcsrgeam #ifdef USE_CUDA_NAMES function hipsparseDcsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseDcsrgeam") #else function hipsparseDcsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseDcsrgeam") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrgeam_rank_0,& hipsparseDcsrgeam_rank_1 #endif end interface interface hipsparseCcsrgeam #ifdef USE_CUDA_NAMES function hipsparseCcsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseCcsrgeam") #else function hipsparseCcsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseCcsrgeam") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA complex(c_float_complex) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrgeam_rank_0,& hipsparseCcsrgeam_rank_1 #endif end interface interface hipsparseZcsrgeam #ifdef USE_CUDA_NAMES function hipsparseZcsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseZcsrgeam") #else function hipsparseZcsrgeam_(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseZcsrgeam") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA complex(c_double_complex) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrgeam_rank_0,& hipsparseZcsrgeam_rank_1 #endif end interface interface hipsparseScsrgeam2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="cusparseScsrgeam2_bufferSizeExt") #else function hipsparseScsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="hipsparseScsrgeam2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA real(c_float) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrgeam2_bufferSizeExt_rank_0,& hipsparseScsrgeam2_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsrgeam2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="cusparseDcsrgeam2_bufferSizeExt") #else function hipsparseDcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="hipsparseDcsrgeam2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA real(c_double) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrgeam2_bufferSizeExt_rank_0,& hipsparseDcsrgeam2_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsrgeam2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="cusparseCcsrgeam2_bufferSizeExt") #else function hipsparseCcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="hipsparseCcsrgeam2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA complex(c_float_complex) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrgeam2_bufferSizeExt_rank_0,& hipsparseCcsrgeam2_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsrgeam2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="cusparseZcsrgeam2_bufferSizeExt") #else function hipsparseZcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) bind(c, name="hipsparseZcsrgeam2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA complex(c_double_complex) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrgeam2_bufferSizeExt_rank_0,& hipsparseZcsrgeam2_bufferSizeExt_rank_1 #endif end interface !> \ingroup extra_module !> \brief Sparse matrix sparse matrix addition using CSR storage format !> !> \details !> \p hipsparseXcsrgeam2Nnz computes the total CSR non-zero elements and the CSR row !> offsets, that point to the start of every row of the sparse CSR matrix, of the !> resulting matrix C. It is assumed that \p csr_row_ptr_C has been allocated with !> size \p m + 1. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> \note !> Currently, only \p HIPSPARSE_MATRIX_TYPE_GENERAL is supported. interface hipsparseXcsrgeam2Nnz #ifdef USE_CUDA_NAMES function hipsparseXcsrgeam2Nnz_(handle,m,n,descrA,nnzA,csrSortedRowPtrA,csrSortedColIndA,descrB,nnzB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedRowPtrC,nnzTotalDevHostPtr,workspace) bind(c, name="cusparseXcsrgeam2Nnz") #else function hipsparseXcsrgeam2Nnz_(handle,m,n,descrA,nnzA,csrSortedRowPtrA,csrSortedColIndA,descrB,nnzB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedRowPtrC,nnzTotalDevHostPtr,workspace) bind(c, name="hipsparseXcsrgeam2Nnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgeam2Nnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: workspace end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsrgeam2Nnz_rank_0,& hipsparseXcsrgeam2Nnz_rank_1 #endif end interface interface hipsparseScsrgeam2 #ifdef USE_CUDA_NAMES function hipsparseScsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="cusparseScsrgeam2") #else function hipsparseScsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="hipsparseScsrgeam2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA real(c_float) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrgeam2_rank_0,& hipsparseScsrgeam2_rank_1 #endif end interface interface hipsparseDcsrgeam2 #ifdef USE_CUDA_NAMES function hipsparseDcsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="cusparseDcsrgeam2") #else function hipsparseDcsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="hipsparseDcsrgeam2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA real(c_double) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrgeam2_rank_0,& hipsparseDcsrgeam2_rank_1 #endif end interface interface hipsparseCcsrgeam2 #ifdef USE_CUDA_NAMES function hipsparseCcsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="cusparseCcsrgeam2") #else function hipsparseCcsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="hipsparseCcsrgeam2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA complex(c_float_complex) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrgeam2_rank_0,& hipsparseCcsrgeam2_rank_1 #endif end interface interface hipsparseZcsrgeam2 #ifdef USE_CUDA_NAMES function hipsparseZcsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="cusparseZcsrgeam2") #else function hipsparseZcsrgeam2_(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) bind(c, name="hipsparseZcsrgeam2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA complex(c_double_complex) :: beta type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrSortedValB type(c_ptr),value :: csrSortedRowPtrB type(c_ptr),value :: csrSortedColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrSortedValC type(c_ptr),value :: csrSortedRowPtrC type(c_ptr),value :: csrSortedColIndC type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrgeam2_rank_0,& hipsparseZcsrgeam2_rank_1 #endif end interface interface hipsparseXcsrgemmNnz #ifdef USE_CUDA_NAMES function hipsparseXcsrgemmNnz_(handle,transA,transB,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) bind(c, name="cusparseXcsrgemmNnz") #else function hipsparseXcsrgemmNnz_(handle,transA,transB,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) bind(c, name="hipsparseXcsrgemmNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgemmNnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsrgemmNnz_rank_0,& hipsparseXcsrgemmNnz_rank_1 #endif end interface interface hipsparseScsrgemm #ifdef USE_CUDA_NAMES function hipsparseScsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseScsrgemm") #else function hipsparseScsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseScsrgemm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrgemm_rank_0,& hipsparseScsrgemm_rank_1 #endif end interface interface hipsparseDcsrgemm #ifdef USE_CUDA_NAMES function hipsparseDcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseDcsrgemm") #else function hipsparseDcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseDcsrgemm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrgemm_rank_0,& hipsparseDcsrgemm_rank_1 #endif end interface interface hipsparseCcsrgemm #ifdef USE_CUDA_NAMES function hipsparseCcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseCcsrgemm") #else function hipsparseCcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseCcsrgemm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrgemm_rank_0,& hipsparseCcsrgemm_rank_1 #endif end interface interface hipsparseZcsrgemm #ifdef USE_CUDA_NAMES function hipsparseZcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseZcsrgemm") #else function hipsparseZcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseZcsrgemm") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrgemm_rank_0,& hipsparseZcsrgemm_rank_1 #endif end interface interface hipsparseScsrgemm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="cusparseScsrgemm2_bufferSizeExt") #else function hipsparseScsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseScsrgemm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB real(c_float) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrgemm2_bufferSizeExt_rank_0,& hipsparseScsrgemm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsrgemm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDcsrgemm2_bufferSizeExt") #else function hipsparseDcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDcsrgemm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB real(c_double) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrgemm2_bufferSizeExt_rank_0,& hipsparseDcsrgemm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsrgemm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCcsrgemm2_bufferSizeExt") #else function hipsparseCcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCcsrgemm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB complex(c_float_complex) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrgemm2_bufferSizeExt_rank_0,& hipsparseCcsrgemm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsrgemm2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZcsrgemm2_bufferSizeExt") #else function hipsparseZcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZcsrgemm2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB complex(c_double_complex) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrgemm2_bufferSizeExt_rank_0,& hipsparseZcsrgemm2_bufferSizeExt_rank_1 #endif end interface interface hipsparseXcsrgemm2Nnz #ifdef USE_CUDA_NAMES function hipsparseXcsrgemm2Nnz_(handle,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrD,nnzD,csrRowPtrD,csrColIndD,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,pBuffer) bind(c, name="cusparseXcsrgemm2Nnz") #else function hipsparseXcsrgemm2Nnz_(handle,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrD,nnzD,csrRowPtrD,csrColIndD,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,pBuffer) bind(c, name="hipsparseXcsrgemm2Nnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgemm2Nnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsrgemm2Nnz_rank_0,& hipsparseXcsrgemm2Nnz_rank_1 #endif end interface interface hipsparseScsrgemm2 #ifdef USE_CUDA_NAMES function hipsparseScsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="cusparseScsrgemm2") #else function hipsparseScsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="hipsparseScsrgemm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB real(c_float) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrValD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrgemm2_rank_0,& hipsparseScsrgemm2_rank_1 #endif end interface interface hipsparseDcsrgemm2 #ifdef USE_CUDA_NAMES function hipsparseDcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="cusparseDcsrgemm2") #else function hipsparseDcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="hipsparseDcsrgemm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB real(c_double) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrValD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrgemm2_rank_0,& hipsparseDcsrgemm2_rank_1 #endif end interface interface hipsparseCcsrgemm2 #ifdef USE_CUDA_NAMES function hipsparseCcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="cusparseCcsrgemm2") #else function hipsparseCcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="hipsparseCcsrgemm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB complex(c_float_complex) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrValD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrgemm2_rank_0,& hipsparseCcsrgemm2_rank_1 #endif end interface interface hipsparseZcsrgemm2 #ifdef USE_CUDA_NAMES function hipsparseZcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="cusparseZcsrgemm2") #else function hipsparseZcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) bind(c, name="hipsparseZcsrgemm2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: descrA integer(c_int),value :: nnzA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: descrB integer(c_int),value :: nnzB type(c_ptr),value :: csrValB type(c_ptr),value :: csrRowPtrB type(c_ptr),value :: csrColIndB complex(c_double_complex) :: beta type(c_ptr),value :: descrD integer(c_int),value :: nnzD type(c_ptr),value :: csrValD type(c_ptr),value :: csrRowPtrD type(c_ptr),value :: csrColIndD type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrgemm2_rank_0,& hipsparseZcsrgemm2_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete LU factorization with 0 fill-ins and no pivoting using BSR storage !> format !> !> \details !> \p hipsparseXbsrilu02_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXbsrilu02_analysis() or !> hipsparseXbsrilu02() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is !> stored in \p position, using same index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note !> If a zero pivot is found, \p position \f$=j\f$ means that either the diagonal block !> \f$A_{j,j}\f$ is missing (structural zero) or the diagonal block \f$A_{j,j}\f$ is not !> invertible (numerical zero). !> !> \note \p hipsparseXbsrilu02_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXbsrilu02_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXbsrilu02_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXbsrilu02_zeroPivot") #else function hipsparseXbsrilu02_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXbsrilu02_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXbsrilu02_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseSbsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseSbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseSbsrilu02_numericBoost") #else function hipsparseSbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseSbsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol real(c_float) :: boost_val end function end interface interface hipsparseDbsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseDbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseDbsrilu02_numericBoost") #else function hipsparseDbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseDbsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol real(c_double) :: boost_val end function end interface interface hipsparseCbsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseCbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseCbsrilu02_numericBoost") #else function hipsparseCbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseCbsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol complex(c_float_complex) :: boost_val end function end interface interface hipsparseZbsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseZbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseZbsrilu02_numericBoost") #else function hipsparseZbsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseZbsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol complex(c_double_complex) :: boost_val end function end interface interface hipsparseSbsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseSbsrilu02_bufferSize") #else function hipsparseSbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseSbsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrilu02_bufferSize_rank_0,& hipsparseSbsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseDbsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDbsrilu02_bufferSize") #else function hipsparseDbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDbsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrilu02_bufferSize_rank_0,& hipsparseDbsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseCbsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCbsrilu02_bufferSize") #else function hipsparseCbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCbsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrilu02_bufferSize_rank_0,& hipsparseCbsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseZbsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZbsrilu02_bufferSize") #else function hipsparseZbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZbsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrilu02_bufferSize_rank_0,& hipsparseZbsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseSbsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseSbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseSbsrilu02_analysis") #else function hipsparseSbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseSbsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrilu02_analysis_rank_0,& hipsparseSbsrilu02_analysis_rank_1 #endif end interface interface hipsparseDbsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseDbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseDbsrilu02_analysis") #else function hipsparseDbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseDbsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrilu02_analysis_rank_0,& hipsparseDbsrilu02_analysis_rank_1 #endif end interface interface hipsparseCbsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseCbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseCbsrilu02_analysis") #else function hipsparseCbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseCbsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrilu02_analysis_rank_0,& hipsparseCbsrilu02_analysis_rank_1 #endif end interface interface hipsparseZbsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseZbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseZbsrilu02_analysis") #else function hipsparseZbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseZbsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrilu02_analysis_rank_0,& hipsparseZbsrilu02_analysis_rank_1 #endif end interface interface hipsparseSbsrilu02 #ifdef USE_CUDA_NAMES function hipsparseSbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseSbsrilu02") #else function hipsparseSbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseSbsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA_valM type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsrilu02_rank_0,& hipsparseSbsrilu02_rank_1 #endif end interface interface hipsparseDbsrilu02 #ifdef USE_CUDA_NAMES function hipsparseDbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseDbsrilu02") #else function hipsparseDbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseDbsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA_valM type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsrilu02_rank_0,& hipsparseDbsrilu02_rank_1 #endif end interface interface hipsparseCbsrilu02 #ifdef USE_CUDA_NAMES function hipsparseCbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseCbsrilu02") #else function hipsparseCbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseCbsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA_valM type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsrilu02_rank_0,& hipsparseCbsrilu02_rank_1 #endif end interface interface hipsparseZbsrilu02 #ifdef USE_CUDA_NAMES function hipsparseZbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseZbsrilu02") #else function hipsparseZbsrilu02_(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseZbsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrSortedValA_valM type(c_ptr),value :: bsrSortedRowPtrA type(c_ptr),value :: bsrSortedColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsrilu02_rank_0,& hipsparseZbsrilu02_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete LU factorization with 0 fill-ins and no pivoting using CSR !> storage format !> !> \details !> \p hipsparseXcsrilu02_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXcsrilu02() computation. !> The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, using same !> index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note \p hipsparseXcsrilu02_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXcsrilu02_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXcsrilu02_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXcsrilu02_zeroPivot") #else function hipsparseXcsrilu02_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXcsrilu02_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrilu02_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseScsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseScsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseScsrilu02_numericBoost") #else function hipsparseScsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseScsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol real(c_float) :: boost_val end function end interface interface hipsparseDcsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseDcsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseDcsrilu02_numericBoost") #else function hipsparseDcsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseDcsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol real(c_double) :: boost_val end function end interface interface hipsparseCcsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseCcsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseCcsrilu02_numericBoost") #else function hipsparseCcsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseCcsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol complex(c_float_complex) :: boost_val end function end interface interface hipsparseZcsrilu02_numericBoost #ifdef USE_CUDA_NAMES function hipsparseZcsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="cusparseZcsrilu02_numericBoost") #else function hipsparseZcsrilu02_numericBoost_(handle,myInfo,enable_boost,tol,boost_val) bind(c, name="hipsparseZcsrilu02_numericBoost") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_numericBoost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: tol complex(c_double_complex) :: boost_val end function end interface interface hipsparseScsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseScsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseScsrilu02_bufferSize") #else function hipsparseScsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseScsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrilu02_bufferSize_rank_0,& hipsparseScsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseDcsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDcsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDcsrilu02_bufferSize") #else function hipsparseDcsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDcsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrilu02_bufferSize_rank_0,& hipsparseDcsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseCcsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCcsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCcsrilu02_bufferSize") #else function hipsparseCcsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCcsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrilu02_bufferSize_rank_0,& hipsparseCcsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseZcsrilu02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZcsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZcsrilu02_bufferSize") #else function hipsparseZcsrilu02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZcsrilu02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrilu02_bufferSize_rank_0,& hipsparseZcsrilu02_bufferSize_rank_1 #endif end interface interface hipsparseScsrilu02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseScsrilu02_bufferSizeExt") #else function hipsparseScsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseScsrilu02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrilu02_bufferSizeExt_rank_0,& hipsparseScsrilu02_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsrilu02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseDcsrilu02_bufferSizeExt") #else function hipsparseDcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseDcsrilu02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrilu02_bufferSizeExt_rank_0,& hipsparseDcsrilu02_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsrilu02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseCcsrilu02_bufferSizeExt") #else function hipsparseCcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseCcsrilu02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrilu02_bufferSizeExt_rank_0,& hipsparseCcsrilu02_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsrilu02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseZcsrilu02_bufferSizeExt") #else function hipsparseZcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseZcsrilu02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrilu02_bufferSizeExt_rank_0,& hipsparseZcsrilu02_bufferSizeExt_rank_1 #endif end interface interface hipsparseScsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseScsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseScsrilu02_analysis") #else function hipsparseScsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseScsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrilu02_analysis_rank_0,& hipsparseScsrilu02_analysis_rank_1 #endif end interface interface hipsparseDcsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseDcsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseDcsrilu02_analysis") #else function hipsparseDcsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrilu02_analysis_rank_0,& hipsparseDcsrilu02_analysis_rank_1 #endif end interface interface hipsparseCcsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseCcsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseCcsrilu02_analysis") #else function hipsparseCcsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrilu02_analysis_rank_0,& hipsparseCcsrilu02_analysis_rank_1 #endif end interface interface hipsparseZcsrilu02_analysis #ifdef USE_CUDA_NAMES function hipsparseZcsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseZcsrilu02_analysis") #else function hipsparseZcsrilu02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsrilu02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrilu02_analysis_rank_0,& hipsparseZcsrilu02_analysis_rank_1 #endif end interface interface hipsparseScsrilu02 #ifdef USE_CUDA_NAMES function hipsparseScsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseScsrilu02") #else function hipsparseScsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseScsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrilu02_rank_0,& hipsparseScsrilu02_rank_1 #endif end interface interface hipsparseDcsrilu02 #ifdef USE_CUDA_NAMES function hipsparseDcsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseDcsrilu02") #else function hipsparseDcsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrilu02_rank_0,& hipsparseDcsrilu02_rank_1 #endif end interface interface hipsparseCcsrilu02 #ifdef USE_CUDA_NAMES function hipsparseCcsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseCcsrilu02") #else function hipsparseCcsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrilu02_rank_0,& hipsparseCcsrilu02_rank_1 #endif end interface interface hipsparseZcsrilu02 #ifdef USE_CUDA_NAMES function hipsparseZcsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseZcsrilu02") #else function hipsparseZcsrilu02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsrilu02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrilu02_rank_0,& hipsparseZcsrilu02_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete Cholesky factorization with 0 fill-ins and no pivoting using BSR !> storage format !> !> \details !> \p hipsparseXbsric02_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXbsric02_analysis() or !> hipsparseXbsric02() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is !> stored in \p position, using same index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note !> If a zero pivot is found, \p position=j means that either the diagonal block \p A(j,j) !> is missing (structural zero) or the diagonal block \p A(j,j) is not positive definite !> (numerical zero). !> !> \note \p hipsparseXbsric02_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXbsric02_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXbsric02_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXbsric02_zeroPivot") #else function hipsparseXbsric02_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXbsric02_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXbsric02_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseSbsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseSbsric02_bufferSize") #else function hipsparseSbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseSbsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsric02_bufferSize_rank_0,& hipsparseSbsric02_bufferSize_rank_1 #endif end interface interface hipsparseDbsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDbsric02_bufferSize") #else function hipsparseDbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDbsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsric02_bufferSize_rank_0,& hipsparseDbsric02_bufferSize_rank_1 #endif end interface interface hipsparseCbsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCbsric02_bufferSize") #else function hipsparseCbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCbsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsric02_bufferSize_rank_0,& hipsparseCbsric02_bufferSize_rank_1 #endif end interface interface hipsparseZbsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZbsric02_bufferSize") #else function hipsparseZbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZbsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsric02_bufferSize_rank_0,& hipsparseZbsric02_bufferSize_rank_1 #endif end interface interface hipsparseSbsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseSbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseSbsric02_analysis") #else function hipsparseSbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseSbsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsric02_analysis_rank_0,& hipsparseSbsric02_analysis_rank_1 #endif end interface interface hipsparseDbsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseDbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseDbsric02_analysis") #else function hipsparseDbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseDbsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsric02_analysis_rank_0,& hipsparseDbsric02_analysis_rank_1 #endif end interface interface hipsparseCbsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseCbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseCbsric02_analysis") #else function hipsparseCbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseCbsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsric02_analysis_rank_0,& hipsparseCbsric02_analysis_rank_1 #endif end interface interface hipsparseZbsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseZbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseZbsric02_analysis") #else function hipsparseZbsric02_analysis_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseZbsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsric02_analysis_rank_0,& hipsparseZbsric02_analysis_rank_1 #endif end interface interface hipsparseSbsric02 #ifdef USE_CUDA_NAMES function hipsparseSbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseSbsric02") #else function hipsparseSbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseSbsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsric02_rank_0,& hipsparseSbsric02_rank_1 #endif end interface interface hipsparseDbsric02 #ifdef USE_CUDA_NAMES function hipsparseDbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseDbsric02") #else function hipsparseDbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseDbsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsric02_rank_0,& hipsparseDbsric02_rank_1 #endif end interface interface hipsparseCbsric02 #ifdef USE_CUDA_NAMES function hipsparseCbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseCbsric02") #else function hipsparseCbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseCbsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsric02_rank_0,& hipsparseCbsric02_rank_1 #endif end interface interface hipsparseZbsric02 #ifdef USE_CUDA_NAMES function hipsparseZbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="cusparseZbsric02") #else function hipsparseZbsric02_(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) bind(c, name="hipsparseZbsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsric02_rank_0,& hipsparseZbsric02_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete Cholesky factorization with 0 fill-ins and no pivoting using CSR !> storage format !> !> \details !> \p hipsparseXcsric02_zeroPivot returns \p HIPSPARSE_STATUS_ZERO_PIVOT, if either a !> structural or numerical zero has been found during hipsparseXcsric02_analysis() or !> hipsparseXcsric02() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ !> is stored in \p position, using same index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p HIPSPARSE_STATUS_SUCCESS is returned instead. !> !> \note \p hipsparseXcsric02_zeroPivot is a blocking function. It might influence !> performance negatively. interface hipsparseXcsric02_zeroPivot #ifdef USE_CUDA_NAMES function hipsparseXcsric02_zeroPivot_(handle,myInfo,position) bind(c, name="cusparseXcsric02_zeroPivot") #else function hipsparseXcsric02_zeroPivot_(handle,myInfo,position) bind(c, name="hipsparseXcsric02_zeroPivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsric02_zeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface hipsparseScsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseScsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseScsric02_bufferSize") #else function hipsparseScsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseScsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsric02_bufferSize_rank_0,& hipsparseScsric02_bufferSize_rank_1 #endif end interface interface hipsparseDcsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDcsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDcsric02_bufferSize") #else function hipsparseDcsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDcsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsric02_bufferSize_rank_0,& hipsparseDcsric02_bufferSize_rank_1 #endif end interface interface hipsparseCcsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCcsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCcsric02_bufferSize") #else function hipsparseCcsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCcsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsric02_bufferSize_rank_0,& hipsparseCcsric02_bufferSize_rank_1 #endif end interface interface hipsparseZcsric02_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZcsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZcsric02_bufferSize") #else function hipsparseZcsric02_bufferSize_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZcsric02_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_int) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsric02_bufferSize_rank_0,& hipsparseZcsric02_bufferSize_rank_1 #endif end interface interface hipsparseScsric02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseScsric02_bufferSizeExt") #else function hipsparseScsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseScsric02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsric02_bufferSizeExt_rank_0,& hipsparseScsric02_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsric02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseDcsric02_bufferSizeExt") #else function hipsparseDcsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseDcsric02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsric02_bufferSizeExt_rank_0,& hipsparseDcsric02_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsric02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseCcsric02_bufferSizeExt") #else function hipsparseCcsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseCcsric02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsric02_bufferSizeExt_rank_0,& hipsparseCcsric02_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsric02_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="cusparseZcsric02_bufferSizeExt") #else function hipsparseZcsric02_bufferSizeExt_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) bind(c, name="hipsparseZcsric02_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsric02_bufferSizeExt_rank_0,& hipsparseZcsric02_bufferSizeExt_rank_1 #endif end interface interface hipsparseScsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseScsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseScsric02_analysis") #else function hipsparseScsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseScsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsric02_analysis_rank_0,& hipsparseScsric02_analysis_rank_1 #endif end interface interface hipsparseDcsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseDcsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseDcsric02_analysis") #else function hipsparseDcsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsric02_analysis_rank_0,& hipsparseDcsric02_analysis_rank_1 #endif end interface interface hipsparseCcsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseCcsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseCcsric02_analysis") #else function hipsparseCcsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsric02_analysis_rank_0,& hipsparseCcsric02_analysis_rank_1 #endif end interface interface hipsparseZcsric02_analysis #ifdef USE_CUDA_NAMES function hipsparseZcsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseZcsric02_analysis") #else function hipsparseZcsric02_analysis_(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsric02_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_analysis_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsric02_analysis_rank_0,& hipsparseZcsric02_analysis_rank_1 #endif end interface interface hipsparseScsric02 #ifdef USE_CUDA_NAMES function hipsparseScsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseScsric02") #else function hipsparseScsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseScsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsric02_rank_0,& hipsparseScsric02_rank_1 #endif end interface interface hipsparseDcsric02 #ifdef USE_CUDA_NAMES function hipsparseDcsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseDcsric02") #else function hipsparseDcsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseDcsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsric02_rank_0,& hipsparseDcsric02_rank_1 #endif end interface interface hipsparseCcsric02 #ifdef USE_CUDA_NAMES function hipsparseCcsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseCcsric02") #else function hipsparseCcsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseCcsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsric02_rank_0,& hipsparseCcsric02_rank_1 #endif end interface interface hipsparseZcsric02 #ifdef USE_CUDA_NAMES function hipsparseZcsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="cusparseZcsric02") #else function hipsparseZcsric02_(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) bind(c, name="hipsparseZcsric02") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA_valM type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)),value :: policy type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsric02_rank_0,& hipsparseZcsric02_rank_1 #endif end interface interface hipsparseSgtsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="cusparseSgtsv2_bufferSizeExt") #else function hipsparseSgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="hipsparseSgtsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgtsv2_bufferSizeExt_full_rank,& hipsparseSgtsv2_bufferSizeExt_rank_0,& hipsparseSgtsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseDgtsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) bind(c, name="cusparseDgtsv2_bufferSizeExt") #else function hipsparseDgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) bind(c, name="hipsparseDgtsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: db integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgtsv2_bufferSizeExt_full_rank,& hipsparseDgtsv2_bufferSizeExt_rank_0,& hipsparseDgtsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseCgtsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="cusparseCgtsv2_bufferSizeExt") #else function hipsparseCgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="hipsparseCgtsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgtsv2_bufferSizeExt_full_rank,& hipsparseCgtsv2_bufferSizeExt_rank_0,& hipsparseCgtsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseZgtsv2_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="cusparseZgtsv2_bufferSizeExt") #else function hipsparseZgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="hipsparseZgtsv2_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgtsv2_bufferSizeExt_full_rank,& hipsparseZgtsv2_bufferSizeExt_rank_0,& hipsparseZgtsv2_bufferSizeExt_rank_1 #endif end interface interface hipsparseSgtsv2 #ifdef USE_CUDA_NAMES function hipsparseSgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseSgtsv2") #else function hipsparseSgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseSgtsv2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgtsv2_full_rank,& hipsparseSgtsv2_rank_0,& hipsparseSgtsv2_rank_1 #endif end interface interface hipsparseDgtsv2 #ifdef USE_CUDA_NAMES function hipsparseDgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseDgtsv2") #else function hipsparseDgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseDgtsv2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgtsv2_full_rank,& hipsparseDgtsv2_rank_0,& hipsparseDgtsv2_rank_1 #endif end interface interface hipsparseCgtsv2 #ifdef USE_CUDA_NAMES function hipsparseCgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseCgtsv2") #else function hipsparseCgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseCgtsv2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgtsv2_full_rank,& hipsparseCgtsv2_rank_0,& hipsparseCgtsv2_rank_1 #endif end interface interface hipsparseZgtsv2 #ifdef USE_CUDA_NAMES function hipsparseZgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseZgtsv2") #else function hipsparseZgtsv2_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseZgtsv2") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgtsv2_full_rank,& hipsparseZgtsv2_rank_0,& hipsparseZgtsv2_rank_1 #endif end interface interface hipsparseSgtsv2_nopivot_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="cusparseSgtsv2_nopivot_bufferSizeExt") #else function hipsparseSgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="hipsparseSgtsv2_nopivot_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgtsv2_nopivot_bufferSizeExt_full_rank,& hipsparseSgtsv2_nopivot_bufferSizeExt_rank_0,& hipsparseSgtsv2_nopivot_bufferSizeExt_rank_1 #endif end interface interface hipsparseDgtsv2_nopivot_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) bind(c, name="cusparseDgtsv2_nopivot_bufferSizeExt") #else function hipsparseDgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) bind(c, name="hipsparseDgtsv2_nopivot_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: db integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgtsv2_nopivot_bufferSizeExt_full_rank,& hipsparseDgtsv2_nopivot_bufferSizeExt_rank_0,& hipsparseDgtsv2_nopivot_bufferSizeExt_rank_1 #endif end interface interface hipsparseCgtsv2_nopivot_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="cusparseCgtsv2_nopivot_bufferSizeExt") #else function hipsparseCgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="hipsparseCgtsv2_nopivot_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgtsv2_nopivot_bufferSizeExt_full_rank,& hipsparseCgtsv2_nopivot_bufferSizeExt_rank_0,& hipsparseCgtsv2_nopivot_bufferSizeExt_rank_1 #endif end interface interface hipsparseZgtsv2_nopivot_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="cusparseZgtsv2_nopivot_bufferSizeExt") #else function hipsparseZgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) bind(c, name="hipsparseZgtsv2_nopivot_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgtsv2_nopivot_bufferSizeExt_full_rank,& hipsparseZgtsv2_nopivot_bufferSizeExt_rank_0,& hipsparseZgtsv2_nopivot_bufferSizeExt_rank_1 #endif end interface interface hipsparseSgtsv2_nopivot #ifdef USE_CUDA_NAMES function hipsparseSgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseSgtsv2_nopivot") #else function hipsparseSgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseSgtsv2_nopivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgtsv2_nopivot_full_rank,& hipsparseSgtsv2_nopivot_rank_0,& hipsparseSgtsv2_nopivot_rank_1 #endif end interface interface hipsparseDgtsv2_nopivot #ifdef USE_CUDA_NAMES function hipsparseDgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseDgtsv2_nopivot") #else function hipsparseDgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseDgtsv2_nopivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgtsv2_nopivot_full_rank,& hipsparseDgtsv2_nopivot_rank_0,& hipsparseDgtsv2_nopivot_rank_1 #endif end interface interface hipsparseCgtsv2_nopivot #ifdef USE_CUDA_NAMES function hipsparseCgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseCgtsv2_nopivot") #else function hipsparseCgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseCgtsv2_nopivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgtsv2_nopivot_full_rank,& hipsparseCgtsv2_nopivot_rank_0,& hipsparseCgtsv2_nopivot_rank_1 #endif end interface interface hipsparseZgtsv2_nopivot #ifdef USE_CUDA_NAMES function hipsparseZgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="cusparseZgtsv2_nopivot") #else function hipsparseZgtsv2_nopivot_(handle,m,n,dl,d,du,B,ldb,pBuffer) bind(c, name="hipsparseZgtsv2_nopivot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgtsv2_nopivot_full_rank,& hipsparseZgtsv2_nopivot_rank_0,& hipsparseZgtsv2_nopivot_rank_1 #endif end interface interface hipsparseSgtsv2StridedBatch_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="cusparseSgtsv2StridedBatch_bufferSizeExt") #else function hipsparseSgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="hipsparseSgtsv2StridedBatch_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2StridedBatch_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_0,& hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_1 #endif end interface interface hipsparseDgtsv2StridedBatch_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="cusparseDgtsv2StridedBatch_bufferSizeExt") #else function hipsparseDgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="hipsparseDgtsv2StridedBatch_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2StridedBatch_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_0,& hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_1 #endif end interface interface hipsparseCgtsv2StridedBatch_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="cusparseCgtsv2StridedBatch_bufferSizeExt") #else function hipsparseCgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="hipsparseCgtsv2StridedBatch_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2StridedBatch_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_0,& hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_1 #endif end interface interface hipsparseZgtsv2StridedBatch_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="cusparseZgtsv2StridedBatch_bufferSizeExt") #else function hipsparseZgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) bind(c, name="hipsparseZgtsv2StridedBatch_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2StridedBatch_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_0,& hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_1 #endif end interface interface hipsparseSgtsv2StridedBatch #ifdef USE_CUDA_NAMES function hipsparseSgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="cusparseSgtsv2StridedBatch") #else function hipsparseSgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="hipsparseSgtsv2StridedBatch") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2StridedBatch_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgtsv2StridedBatch_rank_0,& hipsparseSgtsv2StridedBatch_rank_1 #endif end interface interface hipsparseDgtsv2StridedBatch #ifdef USE_CUDA_NAMES function hipsparseDgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="cusparseDgtsv2StridedBatch") #else function hipsparseDgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="hipsparseDgtsv2StridedBatch") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2StridedBatch_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgtsv2StridedBatch_rank_0,& hipsparseDgtsv2StridedBatch_rank_1 #endif end interface interface hipsparseCgtsv2StridedBatch #ifdef USE_CUDA_NAMES function hipsparseCgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="cusparseCgtsv2StridedBatch") #else function hipsparseCgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="hipsparseCgtsv2StridedBatch") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2StridedBatch_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgtsv2StridedBatch_rank_0,& hipsparseCgtsv2StridedBatch_rank_1 #endif end interface interface hipsparseZgtsv2StridedBatch #ifdef USE_CUDA_NAMES function hipsparseZgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="cusparseZgtsv2StridedBatch") #else function hipsparseZgtsv2StridedBatch_(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) bind(c, name="hipsparseZgtsv2StridedBatch") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2StridedBatch_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batchCount integer(c_int),value :: batchStride type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgtsv2StridedBatch_rank_0,& hipsparseZgtsv2StridedBatch_rank_1 #endif end interface interface hipsparseSnnz #ifdef USE_CUDA_NAMES function hipsparseSnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="cusparseSnnz") #else function hipsparseSnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="hipsparseSnnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSnnz_full_rank,& hipsparseSnnz_rank_0,& hipsparseSnnz_rank_1 #endif end interface interface hipsparseDnnz #ifdef USE_CUDA_NAMES function hipsparseDnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="cusparseDnnz") #else function hipsparseDnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="hipsparseDnnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDnnz_full_rank,& hipsparseDnnz_rank_0,& hipsparseDnnz_rank_1 #endif end interface interface hipsparseCnnz #ifdef USE_CUDA_NAMES function hipsparseCnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="cusparseCnnz") #else function hipsparseCnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="hipsparseCnnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCnnz_full_rank,& hipsparseCnnz_rank_0,& hipsparseCnnz_rank_1 #endif end interface interface hipsparseZnnz #ifdef USE_CUDA_NAMES function hipsparseZnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="cusparseZnnz") #else function hipsparseZnnz_(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) bind(c, name="hipsparseZnnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZnnz_full_rank,& hipsparseZnnz_rank_0,& hipsparseZnnz_rank_1 #endif end interface interface hipsparseSdense2csr #ifdef USE_CUDA_NAMES function hipsparseSdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="cusparseSdense2csr") #else function hipsparseSdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="hipsparseSdense2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSdense2csr_full_rank,& hipsparseSdense2csr_rank_0,& hipsparseSdense2csr_rank_1 #endif end interface interface hipsparseDdense2csr #ifdef USE_CUDA_NAMES function hipsparseDdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="cusparseDdense2csr") #else function hipsparseDdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="hipsparseDdense2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDdense2csr_full_rank,& hipsparseDdense2csr_rank_0,& hipsparseDdense2csr_rank_1 #endif end interface interface hipsparseCdense2csr #ifdef USE_CUDA_NAMES function hipsparseCdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="cusparseCdense2csr") #else function hipsparseCdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="hipsparseCdense2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCdense2csr_full_rank,& hipsparseCdense2csr_rank_0,& hipsparseCdense2csr_rank_1 #endif end interface interface hipsparseZdense2csr #ifdef USE_CUDA_NAMES function hipsparseZdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="cusparseZdense2csr") #else function hipsparseZdense2csr_(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) bind(c, name="hipsparseZdense2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZdense2csr_full_rank,& hipsparseZdense2csr_rank_0,& hipsparseZdense2csr_rank_1 #endif end interface interface hipsparseSpruneDense2csr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csr_bufferSize_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="cusparseSpruneDense2csr_bufferSize") #else function hipsparseSpruneDense2csr_bufferSize_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="hipsparseSpruneDense2csr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csr_bufferSize_full_rank,& hipsparseSpruneDense2csr_bufferSize_rank_0,& hipsparseSpruneDense2csr_bufferSize_rank_1 #endif end interface interface hipsparseDpruneDense2csr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csr_bufferSize_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="cusparseDpruneDense2csr_bufferSize") #else function hipsparseDpruneDense2csr_bufferSize_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="hipsparseDpruneDense2csr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csr_bufferSize_full_rank,& hipsparseDpruneDense2csr_bufferSize_rank_0,& hipsparseDpruneDense2csr_bufferSize_rank_1 #endif end interface interface hipsparseSpruneDense2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csr_bufferSizeExt_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="cusparseSpruneDense2csr_bufferSizeExt") #else function hipsparseSpruneDense2csr_bufferSizeExt_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="hipsparseSpruneDense2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csr_bufferSizeExt_full_rank,& hipsparseSpruneDense2csr_bufferSizeExt_rank_0,& hipsparseSpruneDense2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseDpruneDense2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csr_bufferSizeExt_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="cusparseDpruneDense2csr_bufferSizeExt") #else function hipsparseDpruneDense2csr_bufferSizeExt_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) bind(c, name="hipsparseDpruneDense2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csr_bufferSizeExt_full_rank,& hipsparseDpruneDense2csr_bufferSizeExt_rank_0,& hipsparseDpruneDense2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseSpruneDense2csrNnz #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csrNnz_(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) bind(c, name="cusparseSpruneDense2csrNnz") #else function hipsparseSpruneDense2csrNnz_(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) bind(c, name="hipsparseSpruneDense2csrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csrNnz_full_rank,& hipsparseSpruneDense2csrNnz_rank_0,& hipsparseSpruneDense2csrNnz_rank_1 #endif end interface interface hipsparseDpruneDense2csrNnz #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csrNnz_(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) bind(c, name="cusparseDpruneDense2csrNnz") #else function hipsparseDpruneDense2csrNnz_(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) bind(c, name="hipsparseDpruneDense2csrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csrNnz_full_rank,& hipsparseDpruneDense2csrNnz_rank_0,& hipsparseDpruneDense2csrNnz_rank_1 #endif end interface interface hipsparseSpruneDense2csr #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csr_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) bind(c, name="cusparseSpruneDense2csr") #else function hipsparseSpruneDense2csr_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) bind(c, name="hipsparseSpruneDense2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csr_full_rank,& hipsparseSpruneDense2csr_rank_0,& hipsparseSpruneDense2csr_rank_1 #endif end interface interface hipsparseDpruneDense2csr #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csr_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) bind(c, name="cusparseDpruneDense2csr") #else function hipsparseDpruneDense2csr_(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) bind(c, name="hipsparseDpruneDense2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csr_full_rank,& hipsparseDpruneDense2csr_rank_0,& hipsparseDpruneDense2csr_rank_1 #endif end interface interface hipsparseSpruneDense2csrByPercentage_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csrByPercentage_bufferSize_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="cusparseSpruneDense2csrByPercentage_bufferSize") #else function hipsparseSpruneDense2csrByPercentage_bufferSize_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="hipsparseSpruneDense2csrByPercentage_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csrByPercentage_bufferSize_full_rank,& hipsparseSpruneDense2csrByPercentage_bufferSize_rank_0,& hipsparseSpruneDense2csrByPercentage_bufferSize_rank_1 #endif end interface interface hipsparseDpruneDense2csrByPercentage_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csrByPercentage_bufferSize_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="cusparseDpruneDense2csrByPercentage_bufferSize") #else function hipsparseDpruneDense2csrByPercentage_bufferSize_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="hipsparseDpruneDense2csrByPercentage_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csrByPercentage_bufferSize_full_rank,& hipsparseDpruneDense2csrByPercentage_bufferSize_rank_0,& hipsparseDpruneDense2csrByPercentage_bufferSize_rank_1 #endif end interface interface hipsparseSpruneDense2csrByPercentage_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="cusparseSpruneDense2csrByPercentage_bufferSizeExt") #else function hipsparseSpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="hipsparseSpruneDense2csrByPercentage_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csrByPercentage_bufferSizeExt_full_rank,& hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_0,& hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_1 #endif end interface interface hipsparseDpruneDense2csrByPercentage_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="cusparseDpruneDense2csrByPercentage_bufferSizeExt") #else function hipsparseDpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) bind(c, name="hipsparseDpruneDense2csrByPercentage_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csrByPercentage_bufferSizeExt_full_rank,& hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_0,& hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_1 #endif end interface interface hipsparseSpruneDense2csrNnzByPercentage #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csrNnzByPercentage_(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="cusparseSpruneDense2csrNnzByPercentage") #else function hipsparseSpruneDense2csrNnzByPercentage_(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="hipsparseSpruneDense2csrNnzByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnzByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csrNnzByPercentage_full_rank,& hipsparseSpruneDense2csrNnzByPercentage_rank_0,& hipsparseSpruneDense2csrNnzByPercentage_rank_1 #endif end interface interface hipsparseDpruneDense2csrNnzByPercentage #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csrNnzByPercentage_(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="cusparseDpruneDense2csrNnzByPercentage") #else function hipsparseDpruneDense2csrNnzByPercentage_(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="hipsparseDpruneDense2csrNnzByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnzByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csrNnzByPercentage_full_rank,& hipsparseDpruneDense2csrNnzByPercentage_rank_0,& hipsparseDpruneDense2csrNnzByPercentage_rank_1 #endif end interface interface hipsparseSpruneDense2csrByPercentage #ifdef USE_CUDA_NAMES function hipsparseSpruneDense2csrByPercentage_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) bind(c, name="cusparseSpruneDense2csrByPercentage") #else function hipsparseSpruneDense2csrByPercentage_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) bind(c, name="hipsparseSpruneDense2csrByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneDense2csrByPercentage_full_rank,& hipsparseSpruneDense2csrByPercentage_rank_0,& hipsparseSpruneDense2csrByPercentage_rank_1 #endif end interface interface hipsparseDpruneDense2csrByPercentage #ifdef USE_CUDA_NAMES function hipsparseDpruneDense2csrByPercentage_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) bind(c, name="cusparseDpruneDense2csrByPercentage") #else function hipsparseDpruneDense2csrByPercentage_(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) bind(c, name="hipsparseDpruneDense2csrByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneDense2csrByPercentage_full_rank,& hipsparseDpruneDense2csrByPercentage_rank_0,& hipsparseDpruneDense2csrByPercentage_rank_1 #endif end interface interface hipsparseSdense2csc #ifdef USE_CUDA_NAMES function hipsparseSdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="cusparseSdense2csc") #else function hipsparseSdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="hipsparseSdense2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_columns type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSdense2csc_full_rank,& hipsparseSdense2csc_rank_0,& hipsparseSdense2csc_rank_1 #endif end interface interface hipsparseDdense2csc #ifdef USE_CUDA_NAMES function hipsparseDdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="cusparseDdense2csc") #else function hipsparseDdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="hipsparseDdense2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_columns type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDdense2csc_full_rank,& hipsparseDdense2csc_rank_0,& hipsparseDdense2csc_rank_1 #endif end interface interface hipsparseCdense2csc #ifdef USE_CUDA_NAMES function hipsparseCdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="cusparseCdense2csc") #else function hipsparseCdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="hipsparseCdense2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_columns type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCdense2csc_full_rank,& hipsparseCdense2csc_rank_0,& hipsparseCdense2csc_rank_1 #endif end interface interface hipsparseZdense2csc #ifdef USE_CUDA_NAMES function hipsparseZdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="cusparseZdense2csc") #else function hipsparseZdense2csc_(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) bind(c, name="hipsparseZdense2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_columns type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZdense2csc_full_rank,& hipsparseZdense2csc_rank_0,& hipsparseZdense2csc_rank_1 #endif end interface interface hipsparseScsr2dense #ifdef USE_CUDA_NAMES function hipsparseScsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="cusparseScsr2dense") #else function hipsparseScsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="hipsparseScsr2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2dense_full_rank,& hipsparseScsr2dense_rank_0,& hipsparseScsr2dense_rank_1 #endif end interface interface hipsparseDcsr2dense #ifdef USE_CUDA_NAMES function hipsparseDcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="cusparseDcsr2dense") #else function hipsparseDcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="hipsparseDcsr2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2dense_full_rank,& hipsparseDcsr2dense_rank_0,& hipsparseDcsr2dense_rank_1 #endif end interface interface hipsparseCcsr2dense #ifdef USE_CUDA_NAMES function hipsparseCcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="cusparseCcsr2dense") #else function hipsparseCcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="hipsparseCcsr2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2dense_full_rank,& hipsparseCcsr2dense_rank_0,& hipsparseCcsr2dense_rank_1 #endif end interface interface hipsparseZcsr2dense #ifdef USE_CUDA_NAMES function hipsparseZcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="cusparseZcsr2dense") #else function hipsparseZcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="hipsparseZcsr2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2dense_full_rank,& hipsparseZcsr2dense_rank_0,& hipsparseZcsr2dense_rank_1 #endif end interface interface hipsparseScsc2dense #ifdef USE_CUDA_NAMES function hipsparseScsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="cusparseScsc2dense") #else function hipsparseScsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="hipsparseScsc2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsc2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsc2dense_full_rank,& hipsparseScsc2dense_rank_0,& hipsparseScsc2dense_rank_1 #endif end interface interface hipsparseDcsc2dense #ifdef USE_CUDA_NAMES function hipsparseDcsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="cusparseDcsc2dense") #else function hipsparseDcsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="hipsparseDcsc2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsc2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsc2dense_full_rank,& hipsparseDcsc2dense_rank_0,& hipsparseDcsc2dense_rank_1 #endif end interface interface hipsparseCcsc2dense #ifdef USE_CUDA_NAMES function hipsparseCcsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="cusparseCcsc2dense") #else function hipsparseCcsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="hipsparseCcsc2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsc2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsc2dense_full_rank,& hipsparseCcsc2dense_rank_0,& hipsparseCcsc2dense_rank_1 #endif end interface interface hipsparseZcsc2dense #ifdef USE_CUDA_NAMES function hipsparseZcsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="cusparseZcsc2dense") #else function hipsparseZcsc2dense_(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) bind(c, name="hipsparseZcsc2dense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsc2dense_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsc2dense_full_rank,& hipsparseZcsc2dense_rank_0,& hipsparseZcsc2dense_rank_1 #endif end interface !> \ingroup conv_module !> \brief !> This function computes the number of nonzero block columns per row and the total number of nonzero blocks in a sparse !> BSR matrix given a sparse CSR matrix as input. !> !> \details !> The routine does support asynchronous execution if the pointer mode is set to device. interface hipsparseXcsr2bsrNnz #ifdef USE_CUDA_NAMES function hipsparseXcsr2bsrNnz_(handle,dirA,m,n,descrA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrRowPtrC,bsrNnzb) bind(c, name="cusparseXcsr2bsrNnz") #else function hipsparseXcsr2bsrNnz_(handle,dirA,m,n,descrA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrRowPtrC,bsrNnzb) bind(c, name="hipsparseXcsr2bsrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2bsrNnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrNnzb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsr2bsrNnz_rank_0,& hipsparseXcsr2bsrNnz_rank_1 #endif end interface interface hipsparseSnnz_compress #ifdef USE_CUDA_NAMES function hipsparseSnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="cusparseSnnz_compress") #else function hipsparseSnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="hipsparseSnnz_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: nnzC real(c_float),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSnnz_compress_rank_0,& hipsparseSnnz_compress_rank_1 #endif end interface interface hipsparseDnnz_compress #ifdef USE_CUDA_NAMES function hipsparseDnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="cusparseDnnz_compress") #else function hipsparseDnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="hipsparseDnnz_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: nnzC real(c_double),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDnnz_compress_rank_0,& hipsparseDnnz_compress_rank_1 #endif end interface interface hipsparseCnnz_compress #ifdef USE_CUDA_NAMES function hipsparseCnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="cusparseCnnz_compress") #else function hipsparseCnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="hipsparseCnnz_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: nnzC complex(c_float_complex),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCnnz_compress_rank_0,& hipsparseCnnz_compress_rank_1 #endif end interface interface hipsparseZnnz_compress #ifdef USE_CUDA_NAMES function hipsparseZnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="cusparseZnnz_compress") #else function hipsparseZnnz_compress_(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) bind(c, name="hipsparseZnnz_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: nnzC complex(c_double_complex),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZnnz_compress_rank_0,& hipsparseZnnz_compress_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse CSR matrix into a sparse COO matrix !> !> \details !> \p hipsparseXcsr2coo converts the CSR array containing the row offsets, that point !> to the start of every row, into a COO array of row indices. !> !> \note !> It can also be used to convert a CSC array containing the column offsets into a COO !> array of column indices. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseXcsr2coo #ifdef USE_CUDA_NAMES function hipsparseXcsr2coo_(handle,csrRowPtr,nnz,m,cooRowInd,idxBase) bind(c, name="cusparseXcsr2coo") #else function hipsparseXcsr2coo_(handle,csrRowPtr,nnz,m,cooRowInd,idxBase) bind(c, name="hipsparseXcsr2coo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2coo_ type(c_ptr),value :: handle type(c_ptr),value :: csrRowPtr integer(c_int),value :: nnz integer(c_int),value :: m type(c_ptr),value :: cooRowInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsr2coo_rank_0,& hipsparseXcsr2coo_rank_1 #endif end interface interface hipsparseScsr2csc #ifdef USE_CUDA_NAMES function hipsparseScsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="cusparseScsr2csc") #else function hipsparseScsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="hipsparseScsr2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrSortedVal type(c_ptr),value :: csrSortedRowPtr type(c_ptr),value :: csrSortedColInd type(c_ptr),value :: cscSortedVal type(c_ptr),value :: cscSortedRowInd type(c_ptr),value :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2csc_rank_0,& hipsparseScsr2csc_rank_1 #endif end interface interface hipsparseDcsr2csc #ifdef USE_CUDA_NAMES function hipsparseDcsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="cusparseDcsr2csc") #else function hipsparseDcsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="hipsparseDcsr2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrSortedVal type(c_ptr),value :: csrSortedRowPtr type(c_ptr),value :: csrSortedColInd type(c_ptr),value :: cscSortedVal type(c_ptr),value :: cscSortedRowInd type(c_ptr),value :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2csc_rank_0,& hipsparseDcsr2csc_rank_1 #endif end interface interface hipsparseCcsr2csc #ifdef USE_CUDA_NAMES function hipsparseCcsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="cusparseCcsr2csc") #else function hipsparseCcsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="hipsparseCcsr2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrSortedVal type(c_ptr),value :: csrSortedRowPtr type(c_ptr),value :: csrSortedColInd type(c_ptr),value :: cscSortedVal type(c_ptr),value :: cscSortedRowInd type(c_ptr),value :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2csc_rank_0,& hipsparseCcsr2csc_rank_1 #endif end interface interface hipsparseZcsr2csc #ifdef USE_CUDA_NAMES function hipsparseZcsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="cusparseZcsr2csc") #else function hipsparseZcsr2csc_(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) bind(c, name="hipsparseZcsr2csc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrSortedVal type(c_ptr),value :: csrSortedRowPtr type(c_ptr),value :: csrSortedColInd type(c_ptr),value :: cscSortedVal type(c_ptr),value :: cscSortedRowInd type(c_ptr),value :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2csc_rank_0,& hipsparseZcsr2csc_rank_1 #endif end interface interface hipsparseScsr2hyb #ifdef USE_CUDA_NAMES function hipsparseScsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="cusparseScsr2hyb") #else function hipsparseScsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="hipsparseScsr2hyb") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2hyb_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: hybA integer(c_int),value :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)),value :: partitionType end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2hyb_rank_0,& hipsparseScsr2hyb_rank_1 #endif end interface interface hipsparseDcsr2hyb #ifdef USE_CUDA_NAMES function hipsparseDcsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="cusparseDcsr2hyb") #else function hipsparseDcsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="hipsparseDcsr2hyb") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2hyb_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: hybA integer(c_int),value :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)),value :: partitionType end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2hyb_rank_0,& hipsparseDcsr2hyb_rank_1 #endif end interface interface hipsparseCcsr2hyb #ifdef USE_CUDA_NAMES function hipsparseCcsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="cusparseCcsr2hyb") #else function hipsparseCcsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="hipsparseCcsr2hyb") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2hyb_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: hybA integer(c_int),value :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)),value :: partitionType end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2hyb_rank_0,& hipsparseCcsr2hyb_rank_1 #endif end interface interface hipsparseZcsr2hyb #ifdef USE_CUDA_NAMES function hipsparseZcsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="cusparseZcsr2hyb") #else function hipsparseZcsr2hyb_(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) bind(c, name="hipsparseZcsr2hyb") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2hyb_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA type(c_ptr),value :: hybA integer(c_int),value :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)),value :: partitionType end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2hyb_rank_0,& hipsparseZcsr2hyb_rank_1 #endif end interface interface hipsparseSgebsr2gebsc_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseSgebsr2gebsc_bufferSize") #else function hipsparseSgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseSgebsr2gebsc_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsc_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: p_buffer_size end function end interface interface hipsparseDgebsr2gebsc_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseDgebsr2gebsc_bufferSize") #else function hipsparseDgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseDgebsr2gebsc_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsc_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: p_buffer_size end function end interface interface hipsparseCgebsr2gebsc_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseCgebsr2gebsc_bufferSize") #else function hipsparseCgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseCgebsr2gebsc_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsc_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: p_buffer_size end function end interface interface hipsparseZgebsr2gebsc_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseZgebsr2gebsc_bufferSize") #else function hipsparseZgebsr2gebsc_bufferSize_(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseZgebsr2gebsc_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsc_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: p_buffer_size end function end interface interface hipsparseSgebsr2gebsc #ifdef USE_CUDA_NAMES function hipsparseSgebsr2gebsc_(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="cusparseSgebsr2gebsc") #else function hipsparseSgebsr2gebsc_(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="hipsparseSgebsr2gebsc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsc_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copy_values integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idx_base type(c_ptr),value :: temp_buffer end function end interface interface hipsparseDgebsr2gebsc #ifdef USE_CUDA_NAMES function hipsparseDgebsr2gebsc_(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="cusparseDgebsr2gebsc") #else function hipsparseDgebsr2gebsc_(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="hipsparseDgebsr2gebsc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsc_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copy_values integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idx_base type(c_ptr),value :: temp_buffer end function end interface interface hipsparseCgebsr2gebsc #ifdef USE_CUDA_NAMES function hipsparseCgebsr2gebsc_(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="cusparseCgebsr2gebsc") #else function hipsparseCgebsr2gebsc_(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="hipsparseCgebsr2gebsc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsc_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copy_values integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idx_base type(c_ptr),value :: temp_buffer end function end interface interface hipsparseZgebsr2gebsc #ifdef USE_CUDA_NAMES function hipsparseZgebsr2gebsc_(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="cusparseZgebsr2gebsc") #else function hipsparseZgebsr2gebsc_(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="hipsparseZgebsr2gebsc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsc_ type(c_ptr),value :: handle integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb 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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)),value :: copy_values integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idx_base type(c_ptr),value :: temp_buffer end function end interface interface hipsparseScsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseScsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseScsr2gebsr_bufferSize") #else function hipsparseScsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseScsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2gebsr_bufferSize_rank_0,& hipsparseScsr2gebsr_bufferSize_rank_1 #endif end interface interface hipsparseDcsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseDcsr2gebsr_bufferSize") #else function hipsparseDcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseDcsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2gebsr_bufferSize_rank_0,& hipsparseDcsr2gebsr_bufferSize_rank_1 #endif end interface interface hipsparseCcsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseCcsr2gebsr_bufferSize") #else function hipsparseCcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseCcsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2gebsr_bufferSize_rank_0,& hipsparseCcsr2gebsr_bufferSize_rank_1 #endif end interface interface hipsparseZcsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="cusparseZcsr2gebsr_bufferSize") #else function hipsparseZcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) bind(c, name="hipsparseZcsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2gebsr_bufferSize_rank_0,& hipsparseZcsr2gebsr_bufferSize_rank_1 #endif end interface !> \ingroup conv_module !> \brief !> This function computes the number of nonzero block columns per row and the total number of nonzero blocks in a sparse !> GEneral BSR matrix given a sparse CSR matrix as input. !> interface hipsparseXcsr2gebsrNnz #ifdef USE_CUDA_NAMES function hipsparseXcsr2gebsrNnz_(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_devhost,p_buffer) bind(c, name="cusparseXcsr2gebsrNnz") #else function hipsparseXcsr2gebsrNnz_(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_devhost,p_buffer) bind(c, name="hipsparseXcsr2gebsrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2gebsrNnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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_devhost type(c_ptr),value :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsr2gebsrNnz_rank_0,& hipsparseXcsr2gebsrNnz_rank_1 #endif end interface interface hipsparseScsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseScsr2gebsr_(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,p_buffer) bind(c, name="cusparseScsr2gebsr") #else function hipsparseScsr2gebsr_(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,p_buffer) bind(c, name="hipsparseScsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2gebsr_rank_0,& hipsparseScsr2gebsr_rank_1 #endif end interface interface hipsparseDcsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseDcsr2gebsr_(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,p_buffer) bind(c, name="cusparseDcsr2gebsr") #else function hipsparseDcsr2gebsr_(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,p_buffer) bind(c, name="hipsparseDcsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2gebsr_rank_0,& hipsparseDcsr2gebsr_rank_1 #endif end interface interface hipsparseCcsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseCcsr2gebsr_(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,p_buffer) bind(c, name="cusparseCcsr2gebsr") #else function hipsparseCcsr2gebsr_(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,p_buffer) bind(c, name="hipsparseCcsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2gebsr_rank_0,& hipsparseCcsr2gebsr_rank_1 #endif end interface interface hipsparseZcsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseZcsr2gebsr_(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,p_buffer) bind(c, name="cusparseZcsr2gebsr") #else function hipsparseZcsr2gebsr_(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,p_buffer) bind(c, name="hipsparseZcsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2gebsr_rank_0,& hipsparseZcsr2gebsr_rank_1 #endif end interface interface hipsparseScsr2bsr #ifdef USE_CUDA_NAMES function hipsparseScsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="cusparseScsr2bsr") #else function hipsparseScsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="hipsparseScsr2bsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2bsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2bsr_rank_0,& hipsparseScsr2bsr_rank_1 #endif end interface interface hipsparseDcsr2bsr #ifdef USE_CUDA_NAMES function hipsparseDcsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="cusparseDcsr2bsr") #else function hipsparseDcsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="hipsparseDcsr2bsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2bsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2bsr_rank_0,& hipsparseDcsr2bsr_rank_1 #endif end interface interface hipsparseCcsr2bsr #ifdef USE_CUDA_NAMES function hipsparseCcsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="cusparseCcsr2bsr") #else function hipsparseCcsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="hipsparseCcsr2bsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2bsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2bsr_rank_0,& hipsparseCcsr2bsr_rank_1 #endif end interface interface hipsparseZcsr2bsr #ifdef USE_CUDA_NAMES function hipsparseZcsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="cusparseZcsr2bsr") #else function hipsparseZcsr2bsr_(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) bind(c, name="hipsparseZcsr2bsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2bsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2bsr_rank_0,& hipsparseZcsr2bsr_rank_1 #endif end interface interface hipsparseSbsr2csr #ifdef USE_CUDA_NAMES function hipsparseSbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseSbsr2csr") #else function hipsparseSbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseSbsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSbsr2csr_rank_0,& hipsparseSbsr2csr_rank_1 #endif end interface interface hipsparseDbsr2csr #ifdef USE_CUDA_NAMES function hipsparseDbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseDbsr2csr") #else function hipsparseDbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseDbsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDbsr2csr_rank_0,& hipsparseDbsr2csr_rank_1 #endif end interface interface hipsparseCbsr2csr #ifdef USE_CUDA_NAMES function hipsparseCbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseCbsr2csr") #else function hipsparseCbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseCbsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCbsr2csr_rank_0,& hipsparseCbsr2csr_rank_1 #endif end interface interface hipsparseZbsr2csr #ifdef USE_CUDA_NAMES function hipsparseZbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseZbsr2csr") #else function hipsparseZbsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseZbsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: blockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZbsr2csr_rank_0,& hipsparseZbsr2csr_rank_1 #endif end interface interface hipsparseSgebsr2csr #ifdef USE_CUDA_NAMES function hipsparseSgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseSgebsr2csr") #else function hipsparseSgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseSgebsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDim integer(c_int),value :: colBlockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgebsr2csr_rank_0,& hipsparseSgebsr2csr_rank_1 #endif end interface interface hipsparseDgebsr2csr #ifdef USE_CUDA_NAMES function hipsparseDgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseDgebsr2csr") #else function hipsparseDgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseDgebsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDim integer(c_int),value :: colBlockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgebsr2csr_rank_0,& hipsparseDgebsr2csr_rank_1 #endif end interface interface hipsparseCgebsr2csr #ifdef USE_CUDA_NAMES function hipsparseCgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseCgebsr2csr") #else function hipsparseCgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseCgebsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDim integer(c_int),value :: colBlockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgebsr2csr_rank_0,& hipsparseCgebsr2csr_rank_1 #endif end interface interface hipsparseZgebsr2csr #ifdef USE_CUDA_NAMES function hipsparseZgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="cusparseZgebsr2csr") #else function hipsparseZgebsr2csr_(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) bind(c, name="hipsparseZgebsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2csr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDim integer(c_int),value :: colBlockDim type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgebsr2csr_rank_0,& hipsparseZgebsr2csr_rank_1 #endif end interface interface hipsparseScsr2csr_compress #ifdef USE_CUDA_NAMES function hipsparseScsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="cusparseScsr2csr_compress") #else function hipsparseScsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="hipsparseScsr2csr_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csr_compress_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrRowPtrA integer(c_int),value :: nnzA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: csrValC type(c_ptr),value :: csrColIndC type(c_ptr),value :: csrRowPtrC real(c_float),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2csr_compress_rank_0,& hipsparseScsr2csr_compress_rank_1 #endif end interface interface hipsparseDcsr2csr_compress #ifdef USE_CUDA_NAMES function hipsparseDcsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="cusparseDcsr2csr_compress") #else function hipsparseDcsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="hipsparseDcsr2csr_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csr_compress_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrRowPtrA integer(c_int),value :: nnzA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: csrValC type(c_ptr),value :: csrColIndC type(c_ptr),value :: csrRowPtrC real(c_double),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2csr_compress_rank_0,& hipsparseDcsr2csr_compress_rank_1 #endif end interface interface hipsparseCcsr2csr_compress #ifdef USE_CUDA_NAMES function hipsparseCcsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="cusparseCcsr2csr_compress") #else function hipsparseCcsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="hipsparseCcsr2csr_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csr_compress_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrRowPtrA integer(c_int),value :: nnzA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: csrValC type(c_ptr),value :: csrColIndC type(c_ptr),value :: csrRowPtrC complex(c_float_complex),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2csr_compress_rank_0,& hipsparseCcsr2csr_compress_rank_1 #endif end interface interface hipsparseZcsr2csr_compress #ifdef USE_CUDA_NAMES function hipsparseZcsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="cusparseZcsr2csr_compress") #else function hipsparseZcsr2csr_compress_(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) bind(c, name="hipsparseZcsr2csr_compress") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csr_compress_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrRowPtrA integer(c_int),value :: nnzA type(c_ptr),value :: nnzPerRow type(c_ptr),value :: csrValC type(c_ptr),value :: csrColIndC type(c_ptr),value :: csrRowPtrC complex(c_double_complex),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2csr_compress_rank_0,& hipsparseZcsr2csr_compress_rank_1 #endif end interface interface hipsparseSpruneCsr2csr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="cusparseSpruneCsr2csr_bufferSize") #else function hipsparseSpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="hipsparseSpruneCsr2csr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csr_bufferSize_rank_0,& hipsparseSpruneCsr2csr_bufferSize_rank_1 #endif end interface interface hipsparseDpruneCsr2csr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="cusparseDpruneCsr2csr_bufferSize") #else function hipsparseDpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="hipsparseDpruneCsr2csr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csr_bufferSize_rank_0,& hipsparseDpruneCsr2csr_bufferSize_rank_1 #endif end interface interface hipsparseSpruneCsr2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="cusparseSpruneCsr2csr_bufferSizeExt") #else function hipsparseSpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="hipsparseSpruneCsr2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csr_bufferSizeExt_rank_0,& hipsparseSpruneCsr2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseDpruneCsr2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="cusparseDpruneCsr2csr_bufferSizeExt") #else function hipsparseDpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) bind(c, name="hipsparseDpruneCsr2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csr_bufferSizeExt_rank_0,& hipsparseDpruneCsr2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseSpruneCsr2csrNnz #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) bind(c, name="cusparseSpruneCsr2csrNnz") #else function hipsparseSpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) bind(c, name="hipsparseSpruneCsr2csrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrNnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csrNnz_rank_0,& hipsparseSpruneCsr2csrNnz_rank_1 #endif end interface interface hipsparseDpruneCsr2csrNnz #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) bind(c, name="cusparseDpruneCsr2csrNnz") #else function hipsparseDpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) bind(c, name="hipsparseDpruneCsr2csrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrNnz_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csrNnz_rank_0,& hipsparseDpruneCsr2csrNnz_rank_1 #endif end interface interface hipsparseSpruneCsr2csr #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csr_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) bind(c, name="cusparseSpruneCsr2csr") #else function hipsparseSpruneCsr2csr_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) bind(c, name="hipsparseSpruneCsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csr_rank_0,& hipsparseSpruneCsr2csr_rank_1 #endif end interface interface hipsparseDpruneCsr2csr #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csr_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) bind(c, name="cusparseDpruneCsr2csr") #else function hipsparseDpruneCsr2csr_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) bind(c, name="hipsparseDpruneCsr2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double) :: threshold type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csr_rank_0,& hipsparseDpruneCsr2csr_rank_1 #endif end interface interface hipsparseSpruneCsr2csrByPercentage_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="cusparseSpruneCsr2csrByPercentage_bufferSize") #else function hipsparseSpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="hipsparseSpruneCsr2csrByPercentage_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_0,& hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_1 #endif end interface interface hipsparseDpruneCsr2csrByPercentage_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="cusparseDpruneCsr2csrByPercentage_bufferSize") #else function hipsparseDpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="hipsparseDpruneCsr2csrByPercentage_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_0,& hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_1 #endif end interface interface hipsparseSpruneCsr2csrByPercentage_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="cusparseSpruneCsr2csrByPercentage_bufferSizeExt") #else function hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="hipsparseSpruneCsr2csrByPercentage_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_0,& hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_1 #endif end interface interface hipsparseDpruneCsr2csrByPercentage_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="cusparseDpruneCsr2csrByPercentage_bufferSizeExt") #else function hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) bind(c, name="hipsparseDpruneCsr2csrByPercentage_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_0,& hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_1 #endif end interface interface hipsparseSpruneCsr2csrNnzByPercentage #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="cusparseSpruneCsr2csrNnzByPercentage") #else function hipsparseSpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="hipsparseSpruneCsr2csrNnzByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrNnzByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csrNnzByPercentage_rank_0,& hipsparseSpruneCsr2csrNnzByPercentage_rank_1 #endif end interface interface hipsparseDpruneCsr2csrNnzByPercentage #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="cusparseDpruneCsr2csrNnzByPercentage") #else function hipsparseDpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) bind(c, name="hipsparseDpruneCsr2csrNnzByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrNnzByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csrNnzByPercentage_rank_0,& hipsparseDpruneCsr2csrNnzByPercentage_rank_1 #endif end interface interface hipsparseSpruneCsr2csrByPercentage #ifdef USE_CUDA_NAMES function hipsparseSpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) bind(c, name="cusparseSpruneCsr2csrByPercentage") #else function hipsparseSpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) bind(c, name="hipsparseSpruneCsr2csrByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_float),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSpruneCsr2csrByPercentage_rank_0,& hipsparseSpruneCsr2csrByPercentage_rank_1 #endif end interface interface hipsparseDpruneCsr2csrByPercentage #ifdef USE_CUDA_NAMES function hipsparseDpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) bind(c, name="cusparseDpruneCsr2csrByPercentage") #else function hipsparseDpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) bind(c, name="hipsparseDpruneCsr2csrByPercentage") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA real(c_double),value :: percentage type(c_ptr),value :: descrC type(c_ptr),value :: csrValC type(c_ptr),value :: csrRowPtrC type(c_ptr),value :: csrColIndC type(c_ptr),value :: myInfo type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDpruneCsr2csrByPercentage_rank_0,& hipsparseDpruneCsr2csrByPercentage_rank_1 #endif end interface interface hipsparseShyb2csr #ifdef USE_CUDA_NAMES function hipsparseShyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="cusparseShyb2csr") #else function hipsparseShyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="hipsparseShyb2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseShyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseShyb2csr_rank_0,& hipsparseShyb2csr_rank_1 #endif end interface interface hipsparseDhyb2csr #ifdef USE_CUDA_NAMES function hipsparseDhyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="cusparseDhyb2csr") #else function hipsparseDhyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="hipsparseDhyb2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDhyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDhyb2csr_rank_0,& hipsparseDhyb2csr_rank_1 #endif end interface interface hipsparseChyb2csr #ifdef USE_CUDA_NAMES function hipsparseChyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="cusparseChyb2csr") #else function hipsparseChyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="hipsparseChyb2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseChyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseChyb2csr_rank_0,& hipsparseChyb2csr_rank_1 #endif end interface interface hipsparseZhyb2csr #ifdef USE_CUDA_NAMES function hipsparseZhyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="cusparseZhyb2csr") #else function hipsparseZhyb2csr_(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) bind(c, name="hipsparseZhyb2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZhyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descrA type(c_ptr),value :: hybA type(c_ptr),value :: csrSortedValA type(c_ptr),value :: csrSortedRowPtrA type(c_ptr),value :: csrSortedColIndA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZhyb2csr_rank_0,& hipsparseZhyb2csr_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse COO matrix into a sparse CSR matrix !> !> \details !> \p hipsparseXcoo2csr converts the COO array containing the row indices into a !> CSR array of row offsets, that point to the start of every row. !> It is assumed that the COO row index array is sorted. !> !> \note It can also be used, to convert a COO array containing the column indices into !> a CSC array of column offsets, that point to the start of every column. Then, it is !> assumed that the COO column index array is sorted, instead. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseXcoo2csr #ifdef USE_CUDA_NAMES function hipsparseXcoo2csr_(handle,cooRowInd,nnz,m,csrRowPtr,idxBase) bind(c, name="cusparseXcoo2csr") #else function hipsparseXcoo2csr_(handle,cooRowInd,nnz,m,csrRowPtr,idxBase) bind(c, name="hipsparseXcoo2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoo2csr_ type(c_ptr),value :: handle type(c_ptr),value :: cooRowInd integer(c_int),value :: nnz integer(c_int),value :: m type(c_ptr),value :: csrRowPtr integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcoo2csr_rank_0,& hipsparseXcoo2csr_rank_1 #endif end interface !> \ingroup conv_module !> \brief Create the identity map !> !> \details !> \p hipsparseCreateIdentityPermutation stores the identity map in \p p, such that !> \f$p = 0:1:(n-1)\f$. !> !> \code{.c} !> for(i = 0; i < n; ++i) !> { !> p[i] = i; !> } !> \endcode !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseCreateIdentityPermutation #ifdef USE_CUDA_NAMES function hipsparseCreateIdentityPermutation_(handle,n,p) bind(c, name="cusparseCreateIdentityPermutation") #else function hipsparseCreateIdentityPermutation_(handle,n,p) bind(c, name="hipsparseCreateIdentityPermutation") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateIdentityPermutation_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: p end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCreateIdentityPermutation_rank_0,& hipsparseCreateIdentityPermutation_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSR matrix !> !> \details !> \p hipsparseXcsrsort_bufferSizeExt returns the size of the temporary storage buffer !> required by hipsparseXcsrsort(). The temporary storage buffer must be allocated by !> the user. interface hipsparseXcsrsort_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseXcsrsort_bufferSizeExt_(handle,m,n,nnz,csrRowPtr,csrColInd,pBufferSizeInBytes) bind(c, name="cusparseXcsrsort_bufferSizeExt") #else function hipsparseXcsrsort_bufferSizeExt_(handle,m,n,nnz,csrRowPtr,csrColInd,pBufferSizeInBytes) bind(c, name="hipsparseXcsrsort_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsrsort_bufferSizeExt_rank_0,& hipsparseXcsrsort_bufferSizeExt_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSR matrix !> !> \details !> \p hipsparseXcsrsort sorts a matrix in CSR format. The sorted permutation vector !> \p perm can be used to obtain sorted \p csr_val array. In this case, \p perm must be !> initialized as the identity permutation, see hipsparseCreateIdentityPermutation(). !> !> \p hipsparseXcsrsort requires extra temporary storage buffer that has to be allocated by !> the user. Storage buffer size can be determined by hipsparseXcsrsort_bufferSizeExt(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseXcsrsort #ifdef USE_CUDA_NAMES function hipsparseXcsrsort_(handle,m,n,nnz,descrA,csrRowPtr,csrColInd,P,pBuffer) bind(c, name="cusparseXcsrsort") #else function hipsparseXcsrsort_(handle,m,n,nnz,descrA,csrRowPtr,csrColInd,P,pBuffer) bind(c, name="hipsparseXcsrsort") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: P type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcsrsort_full_rank,& hipsparseXcsrsort_rank_0,& hipsparseXcsrsort_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSC matrix !> !> \details !> \p hipsparseXcscsort_bufferSizeExt returns the size of the temporary storage buffer !> required by hipsparseXcscsort(). The temporary storage buffer must be allocated by !> the user. interface hipsparseXcscsort_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseXcscsort_bufferSizeExt_(handle,m,n,nnz,cscColPtr,cscRowInd,pBufferSizeInBytes) bind(c, name="cusparseXcscsort_bufferSizeExt") #else function hipsparseXcscsort_bufferSizeExt_(handle,m,n,nnz,cscColPtr,cscRowInd,pBufferSizeInBytes) bind(c, name="hipsparseXcscsort_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: cscColPtr type(c_ptr),value :: cscRowInd integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcscsort_bufferSizeExt_rank_0,& hipsparseXcscsort_bufferSizeExt_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSC matrix !> !> \details !> \p hipsparseXcscsort sorts a matrix in CSC format. The sorted permutation vector !> \p perm can be used to obtain sorted \p csc_val array. In this case, \p perm must be !> initialized as the identity permutation, see hipsparseCreateIdentityPermutation(). !> !> \p hipsparseXcscsort requires extra temporary storage buffer that has to be allocated by !> the user. Storage buffer size can be determined by hipsparseXcscsort_bufferSizeExt(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseXcscsort #ifdef USE_CUDA_NAMES function hipsparseXcscsort_(handle,m,n,nnz,descrA,cscColPtr,cscRowInd,P,pBuffer) bind(c, name="cusparseXcscsort") #else function hipsparseXcscsort_(handle,m,n,nnz,descrA,cscColPtr,cscRowInd,P,pBuffer) bind(c, name="hipsparseXcscsort") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: cscColPtr type(c_ptr),value :: cscRowInd type(c_ptr),value :: P type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcscsort_full_rank,& hipsparseXcscsort_rank_0,& hipsparseXcscsort_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse COO matrix !> !> \details !> \p hipsparseXcoosort_bufferSizeExt returns the size of the temporary storage buffer !> required by hipsparseXcoosort(). The temporary storage buffer must be allocated by !> the user. interface hipsparseXcoosort_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseXcoosort_bufferSizeExt_(handle,m,n,nnz,cooRows,cooCols,pBufferSizeInBytes) bind(c, name="cusparseXcoosort_bufferSizeExt") #else function hipsparseXcoosort_bufferSizeExt_(handle,m,n,nnz,cooRows,cooCols,pBufferSizeInBytes) bind(c, name="hipsparseXcoosort_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosort_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: cooRows type(c_ptr),value :: cooCols integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcoosort_bufferSizeExt_rank_0,& hipsparseXcoosort_bufferSizeExt_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse COO matrix by row !> !> \details !> \p hipsparseXcoosortByRow sorts a matrix in COO format by row. The sorted !> permutation vector \p perm can be used to obtain sorted \p coo_val array. In this !> case, \p perm must be initialized as the identity permutation, see !> hipsparseCreateIdentityPermutation(). !> !> \p hipsparseXcoosortByRow requires extra temporary storage buffer that has to be !> allocated by the user. Storage buffer size can be determined by !> hipsparseXcoosort_bufferSizeExt(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseXcoosortByRow #ifdef USE_CUDA_NAMES function hipsparseXcoosortByRow_(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) bind(c, name="cusparseXcoosortByRow") #else function hipsparseXcoosortByRow_(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) bind(c, name="hipsparseXcoosortByRow") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByRow_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: cooRows type(c_ptr),value :: cooCols type(c_ptr),value :: P type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcoosortByRow_full_rank,& hipsparseXcoosortByRow_rank_0,& hipsparseXcoosortByRow_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse COO matrix by column !> !> \details !> \p hipsparseXcoosortByColumn sorts a matrix in COO format by column. The sorted !> permutation vector \p perm can be used to obtain sorted \p coo_val array. In this !> case, \p perm must be initialized as the identity permutation, see !> hipsparseCreateIdentityPermutation(). !> !> \p hipsparseXcoosortByColumn requires extra temporary storage buffer that has to be !> allocated by the user. Storage buffer size can be determined by !> hipsparseXcoosort_bufferSizeExt(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. interface hipsparseXcoosortByColumn #ifdef USE_CUDA_NAMES function hipsparseXcoosortByColumn_(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) bind(c, name="cusparseXcoosortByColumn") #else function hipsparseXcoosortByColumn_(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) bind(c, name="hipsparseXcoosortByColumn") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByColumn_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: cooRows type(c_ptr),value :: cooCols type(c_ptr),value :: P type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXcoosortByColumn_full_rank,& hipsparseXcoosortByColumn_rank_0,& hipsparseXcoosortByColumn_rank_1 #endif end interface interface hipsparseSgebsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="cusparseSgebsr2gebsr_bufferSize") #else function hipsparseSgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="hipsparseSgebsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgebsr2gebsr_bufferSize_rank_0,& hipsparseSgebsr2gebsr_bufferSize_rank_1 #endif end interface interface hipsparseDgebsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="cusparseDgebsr2gebsr_bufferSize") #else function hipsparseDgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="hipsparseDgebsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgebsr2gebsr_bufferSize_rank_0,& hipsparseDgebsr2gebsr_bufferSize_rank_1 #endif end interface interface hipsparseCgebsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseCgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="cusparseCgebsr2gebsr_bufferSize") #else function hipsparseCgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="hipsparseCgebsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgebsr2gebsr_bufferSize_rank_0,& hipsparseCgebsr2gebsr_bufferSize_rank_1 #endif end interface interface hipsparseZgebsr2gebsr_bufferSize #ifdef USE_CUDA_NAMES function hipsparseZgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="cusparseZgebsr2gebsr_bufferSize") #else function hipsparseZgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) bind(c, name="hipsparseZgebsr2gebsr_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgebsr2gebsr_bufferSize_rank_0,& hipsparseZgebsr2gebsr_bufferSize_rank_1 #endif end interface !> \ingroup conv_module !> \brief This function is used when converting a general BSR sparse matrix \p A to another general BSR sparse matrix \p C. !> Specifically, this function determines the number of non-zero blocks that will exist in \p C (stored using either a host !> or device pointer), and computes the row pointer array for \p C. !> !> \details !> The routine does support asynchronous execution. interface hipsparseXgebsr2gebsrNnz #ifdef USE_CUDA_NAMES function hipsparseXgebsr2gebsrNnz_(handle,dirA,mb,nb,nnzb,descrA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrRowPtrC,rowBlockDimC,colBlockDimC,nnzTotalDevHostPtr,buffer) bind(c, name="cusparseXgebsr2gebsrNnz") #else function hipsparseXgebsr2gebsrNnz_(handle,dirA,mb,nb,nnzb,descrA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrRowPtrC,rowBlockDimC,colBlockDimC,nnzTotalDevHostPtr,buffer) bind(c, name="hipsparseXgebsr2gebsrNnz") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXgebsr2gebsrNnz_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA type(c_ptr),value :: descrC type(c_ptr),value :: bsrRowPtrC integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseXgebsr2gebsrNnz_rank_0,& hipsparseXgebsr2gebsrNnz_rank_1 #endif end interface interface hipsparseSgebsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseSgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="cusparseSgebsr2gebsr") #else function hipsparseSgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="hipsparseSgebsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSgebsr2gebsr_rank_0,& hipsparseSgebsr2gebsr_rank_1 #endif end interface interface hipsparseDgebsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseDgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="cusparseDgebsr2gebsr") #else function hipsparseDgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="hipsparseDgebsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDgebsr2gebsr_rank_0,& hipsparseDgebsr2gebsr_rank_1 #endif end interface interface hipsparseCgebsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseCgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="cusparseCgebsr2gebsr") #else function hipsparseCgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="hipsparseCgebsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCgebsr2gebsr_rank_0,& hipsparseCgebsr2gebsr_rank_1 #endif end interface interface hipsparseZgebsr2gebsr #ifdef USE_CUDA_NAMES function hipsparseZgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="cusparseZgebsr2gebsr") #else function hipsparseZgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) bind(c, name="hipsparseZgebsr2gebsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)),value :: dirA integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descrA type(c_ptr),value :: bsrValA type(c_ptr),value :: bsrRowPtrA type(c_ptr),value :: bsrColIndA integer(c_int),value :: rowBlockDimA integer(c_int),value :: colBlockDimA type(c_ptr),value :: descrC type(c_ptr),value :: bsrValC type(c_ptr),value :: bsrRowPtrC type(c_ptr),value :: bsrColIndC integer(c_int),value :: rowBlockDimC integer(c_int),value :: colBlockDimC type(c_ptr),value :: buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZgebsr2gebsr_rank_0,& hipsparseZgebsr2gebsr_rank_1 #endif end interface interface hipsparseScsru2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseScsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="cusparseScsru2csr_bufferSizeExt") #else function hipsparseScsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseScsru2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsru2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsru2csr_bufferSizeExt_rank_0,& hipsparseScsru2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseDcsru2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseDcsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="cusparseDcsru2csr_bufferSizeExt") #else function hipsparseDcsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseDcsru2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsru2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsru2csr_bufferSizeExt_rank_0,& hipsparseDcsru2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseCcsru2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseCcsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="cusparseCcsru2csr_bufferSizeExt") #else function hipsparseCcsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseCcsru2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsru2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsru2csr_bufferSizeExt_rank_0,& hipsparseCcsru2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseZcsru2csr_bufferSizeExt #ifdef USE_CUDA_NAMES function hipsparseZcsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="cusparseZcsru2csr_bufferSizeExt") #else function hipsparseZcsru2csr_bufferSizeExt_(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) bind(c, name="hipsparseZcsru2csr_bufferSizeExt") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsru2csr_bufferSizeExt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo integer(c_size_t) :: pBufferSizeInBytes end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsru2csr_bufferSizeExt_rank_0,& hipsparseZcsru2csr_bufferSizeExt_rank_1 #endif end interface interface hipsparseScsru2csr #ifdef USE_CUDA_NAMES function hipsparseScsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseScsru2csr") #else function hipsparseScsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseScsru2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsru2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsru2csr_rank_0,& hipsparseScsru2csr_rank_1 #endif end interface interface hipsparseDcsru2csr #ifdef USE_CUDA_NAMES function hipsparseDcsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseDcsru2csr") #else function hipsparseDcsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseDcsru2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsru2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsru2csr_rank_0,& hipsparseDcsru2csr_rank_1 #endif end interface interface hipsparseCcsru2csr #ifdef USE_CUDA_NAMES function hipsparseCcsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseCcsru2csr") #else function hipsparseCcsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseCcsru2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsru2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsru2csr_rank_0,& hipsparseCcsru2csr_rank_1 #endif end interface interface hipsparseZcsru2csr #ifdef USE_CUDA_NAMES function hipsparseZcsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseZcsru2csr") #else function hipsparseZcsru2csr_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseZcsru2csr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsru2csr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsru2csr_rank_0,& hipsparseZcsru2csr_rank_1 #endif end interface interface hipsparseScsr2csru #ifdef USE_CUDA_NAMES function hipsparseScsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseScsr2csru") #else function hipsparseScsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseScsr2csru") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsr2csru_rank_0,& hipsparseScsr2csru_rank_1 #endif end interface interface hipsparseDcsr2csru #ifdef USE_CUDA_NAMES function hipsparseDcsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseDcsr2csru") #else function hipsparseDcsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseDcsr2csru") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsr2csru_rank_0,& hipsparseDcsr2csru_rank_1 #endif end interface interface hipsparseCcsr2csru #ifdef USE_CUDA_NAMES function hipsparseCcsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseCcsr2csru") #else function hipsparseCcsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseCcsr2csru") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsr2csru_rank_0,& hipsparseCcsr2csru_rank_1 #endif end interface interface hipsparseZcsr2csru #ifdef USE_CUDA_NAMES function hipsparseZcsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="cusparseZcsr2csru") #else function hipsparseZcsr2csru_(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) bind(c, name="hipsparseZcsr2csru") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: myInfo type(c_ptr),value :: pBuffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsr2csru_rank_0,& hipsparseZcsr2csru_rank_1 #endif end interface interface hipsparseScsrcolor #ifdef USE_CUDA_NAMES function hipsparseScsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="cusparseScsrcolor") #else function hipsparseScsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="hipsparseScsrcolor") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseScsrcolor_rank_0,& hipsparseScsrcolor_rank_1 #endif end interface interface hipsparseDcsrcolor #ifdef USE_CUDA_NAMES function hipsparseDcsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="cusparseDcsrcolor") #else function hipsparseDcsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="hipsparseDcsrcolor") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDcsrcolor_rank_0,& hipsparseDcsrcolor_rank_1 #endif end interface interface hipsparseCcsrcolor #ifdef USE_CUDA_NAMES function hipsparseCcsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="cusparseCcsrcolor") #else function hipsparseCcsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="hipsparseCcsrcolor") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseCcsrcolor_rank_0,& hipsparseCcsrcolor_rank_1 #endif end interface interface hipsparseZcsrcolor #ifdef USE_CUDA_NAMES function hipsparseZcsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="cusparseZcsrcolor") #else function hipsparseZcsrcolor_(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) bind(c, name="hipsparseZcsrcolor") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descrA type(c_ptr),value :: csrValA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseZcsrcolor_rank_0,& hipsparseZcsrcolor_rank_1 #endif end interface interface hipsparseCreateSpVec #ifdef USE_CUDA_NAMES function hipsparseCreateSpVec_(spVecDescr,mySize,nnz,indices,values,idxType,idxBase,valueType) bind(c, name="cusparseCreateSpVec") #else function hipsparseCreateSpVec_(spVecDescr,mySize,nnz,indices,values,idxType,idxBase,valueType) bind(c, name="hipsparseCreateSpVec") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateSpVec_ type(c_ptr) :: spVecDescr integer(c_int64_t),value :: mySize integer(c_int64_t),value :: nnz type(c_ptr),value :: indices type(c_ptr),value :: values integer(kind(HIPSPARSE_INDEX_16U)),value :: idxType integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseDestroySpVec #ifdef USE_CUDA_NAMES function hipsparseDestroySpVec_(spVecDescr) bind(c, name="cusparseDestroySpVec") #else function hipsparseDestroySpVec_(spVecDescr) bind(c, name="hipsparseDestroySpVec") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroySpVec_ type(c_ptr),value :: spVecDescr end function end interface interface hipsparseSpVecGet #ifdef USE_CUDA_NAMES function hipsparseSpVecGet_(spVecDescr,mySize,nnz,indices,values,idxType,idxBase,valueType) bind(c, name="cusparseSpVecGet") #else function hipsparseSpVecGet_(spVecDescr,mySize,nnz,indices,values,idxType,idxBase,valueType) bind(c, name="hipsparseSpVecGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpVecGet_ type(c_ptr),value :: spVecDescr type(c_ptr),value :: mySize type(c_ptr),value :: nnz type(c_ptr) :: indices type(c_ptr) :: values type(c_ptr),value :: idxType type(c_ptr),value :: idxBase type(c_ptr),value :: valueType end function end interface interface hipsparseSpVecGetIndexBase #ifdef USE_CUDA_NAMES function hipsparseSpVecGetIndexBase_(spVecDescr,idxBase) bind(c, name="cusparseSpVecGetIndexBase") #else function hipsparseSpVecGetIndexBase_(spVecDescr,idxBase) bind(c, name="hipsparseSpVecGetIndexBase") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpVecGetIndexBase_ type(c_ptr),value :: spVecDescr type(c_ptr),value :: idxBase end function end interface interface hipsparseSpVecGetValues #ifdef USE_CUDA_NAMES function hipsparseSpVecGetValues_(spVecDescr,values) bind(c, name="cusparseSpVecGetValues") #else function hipsparseSpVecGetValues_(spVecDescr,values) bind(c, name="hipsparseSpVecGetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpVecGetValues_ type(c_ptr),value :: spVecDescr type(c_ptr) :: values end function end interface interface hipsparseSpVecSetValues #ifdef USE_CUDA_NAMES function hipsparseSpVecSetValues_(spVecDescr,values) bind(c, name="cusparseSpVecSetValues") #else function hipsparseSpVecSetValues_(spVecDescr,values) bind(c, name="hipsparseSpVecSetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpVecSetValues_ type(c_ptr),value :: spVecDescr type(c_ptr),value :: values end function end interface interface hipsparseCreateCoo #ifdef USE_CUDA_NAMES function hipsparseCreateCoo_(spMatDescr,rows,cols,nnz,cooRowInd,cooColInd,cooValues,cooIdxType,idxBase,valueType) bind(c, name="cusparseCreateCoo") #else function hipsparseCreateCoo_(spMatDescr,rows,cols,nnz,cooRowInd,cooColInd,cooValues,cooIdxType,idxBase,valueType) bind(c, name="hipsparseCreateCoo") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCoo_ type(c_ptr) :: spMatDescr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: cooRowInd type(c_ptr),value :: cooColInd type(c_ptr),value :: cooValues integer(kind(HIPSPARSE_INDEX_16U)),value :: cooIdxType integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseCreateCooAoS #ifdef USE_CUDA_NAMES function hipsparseCreateCooAoS_(spMatDescr,rows,cols,nnz,cooInd,cooValues,cooIdxType,idxBase,valueType) bind(c, name="cusparseCreateCooAoS") #else function hipsparseCreateCooAoS_(spMatDescr,rows,cols,nnz,cooInd,cooValues,cooIdxType,idxBase,valueType) bind(c, name="hipsparseCreateCooAoS") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCooAoS_ type(c_ptr) :: spMatDescr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: cooInd type(c_ptr),value :: cooValues integer(kind(HIPSPARSE_INDEX_16U)),value :: cooIdxType integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseCreateCsr #ifdef USE_CUDA_NAMES function hipsparseCreateCsr_(spMatDescr,rows,cols,nnz,csrRowOffsets,csrColInd,csrValues,csrRowOffsetsType,csrColIndType,idxBase,valueType) bind(c, name="cusparseCreateCsr") #else function hipsparseCreateCsr_(spMatDescr,rows,cols,nnz,csrRowOffsets,csrColInd,csrValues,csrRowOffsetsType,csrColIndType,idxBase,valueType) bind(c, name="hipsparseCreateCsr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsr_ type(c_ptr) :: spMatDescr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: csrRowOffsets type(c_ptr),value :: csrColInd type(c_ptr),value :: csrValues integer(kind(HIPSPARSE_INDEX_16U)),value :: csrRowOffsetsType integer(kind(HIPSPARSE_INDEX_16U)),value :: csrColIndType integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseCreateCsc #ifdef USE_CUDA_NAMES function hipsparseCreateCsc_(spMatDescr,rows,cols,nnz,cscColOffsets,cscRowInd,cscValues,cscColOffsetsType,cscRowIndType,idxBase,valueType) bind(c, name="cusparseCreateCsc") #else function hipsparseCreateCsc_(spMatDescr,rows,cols,nnz,cscColOffsets,cscRowInd,cscValues,cscColOffsetsType,cscRowIndType,idxBase,valueType) bind(c, name="hipsparseCreateCsc") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateCsc_ type(c_ptr) :: spMatDescr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: cscColOffsets type(c_ptr),value :: cscRowInd type(c_ptr),value :: cscValues integer(kind(HIPSPARSE_INDEX_16U)),value :: cscColOffsetsType integer(kind(HIPSPARSE_INDEX_16U)),value :: cscRowIndType integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseCreateBlockedEll #ifdef USE_CUDA_NAMES function hipsparseCreateBlockedEll_(spMatDescr,rows,cols,ellBlockSize,ellCols,ellColInd,ellValue,ellIdxType,idxBase,valueType) bind(c, name="cusparseCreateBlockedEll") #else function hipsparseCreateBlockedEll_(spMatDescr,rows,cols,ellBlockSize,ellCols,ellColInd,ellValue,ellIdxType,idxBase,valueType) bind(c, name="hipsparseCreateBlockedEll") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateBlockedEll_ type(c_ptr) :: spMatDescr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: ellBlockSize integer(c_int64_t),value :: ellCols type(c_ptr),value :: ellColInd type(c_ptr),value :: ellValue integer(kind(HIPSPARSE_INDEX_16U)),value :: ellIdxType integer(kind(HIPSPARSE_INDEX_BASE_ZERO)),value :: idxBase integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseDestroySpMat #ifdef USE_CUDA_NAMES function hipsparseDestroySpMat_(spMatDescr) bind(c, name="cusparseDestroySpMat") #else function hipsparseDestroySpMat_(spMatDescr) bind(c, name="hipsparseDestroySpMat") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroySpMat_ type(c_ptr),value :: spMatDescr end function end interface interface hipsparseCooGet #ifdef USE_CUDA_NAMES function hipsparseCooGet_(spMatDescr,rows,cols,nnz,cooRowInd,cooColInd,cooValues,idxType,idxBase,valueType) bind(c, name="cusparseCooGet") #else function hipsparseCooGet_(spMatDescr,rows,cols,nnz,cooRowInd,cooColInd,cooValues,idxType,idxBase,valueType) bind(c, name="hipsparseCooGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCooGet_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz type(c_ptr) :: cooRowInd type(c_ptr) :: cooColInd type(c_ptr) :: cooValues type(c_ptr),value :: idxType type(c_ptr),value :: idxBase type(c_ptr),value :: valueType end function end interface interface hipsparseCooAoSGet #ifdef USE_CUDA_NAMES function hipsparseCooAoSGet_(spMatDescr,rows,cols,nnz,cooInd,cooValues,idxType,idxBase,valueType) bind(c, name="cusparseCooAoSGet") #else function hipsparseCooAoSGet_(spMatDescr,rows,cols,nnz,cooInd,cooValues,idxType,idxBase,valueType) bind(c, name="hipsparseCooAoSGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCooAoSGet_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz type(c_ptr) :: cooInd type(c_ptr) :: cooValues type(c_ptr),value :: idxType type(c_ptr),value :: idxBase type(c_ptr),value :: valueType end function end interface interface hipsparseCsrGet #ifdef USE_CUDA_NAMES function hipsparseCsrGet_(spMatDescr,rows,cols,nnz,csrRowOffsets,csrColInd,csrValues,csrRowOffsetsType,csrColIndType,idxBase,valueType) bind(c, name="cusparseCsrGet") #else function hipsparseCsrGet_(spMatDescr,rows,cols,nnz,csrRowOffsets,csrColInd,csrValues,csrRowOffsetsType,csrColIndType,idxBase,valueType) bind(c, name="hipsparseCsrGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCsrGet_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz type(c_ptr) :: csrRowOffsets type(c_ptr) :: csrColInd type(c_ptr) :: csrValues type(c_ptr),value :: csrRowOffsetsType type(c_ptr),value :: csrColIndType type(c_ptr),value :: idxBase type(c_ptr),value :: valueType end function end interface interface hipsparseBlockedEllGet #ifdef USE_CUDA_NAMES function hipsparseBlockedEllGet_(spMatDescr,rows,cols,ellBlockSize,ellCols,ellColInd,ellValue,ellIdxType,idxBase,valueType) bind(c, name="cusparseBlockedEllGet") #else function hipsparseBlockedEllGet_(spMatDescr,rows,cols,ellBlockSize,ellCols,ellColInd,ellValue,ellIdxType,idxBase,valueType) bind(c, name="hipsparseBlockedEllGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseBlockedEllGet_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: ellBlockSize type(c_ptr),value :: ellCols type(c_ptr) :: ellColInd type(c_ptr) :: ellValue type(c_ptr),value :: ellIdxType type(c_ptr),value :: idxBase type(c_ptr),value :: valueType end function end interface interface hipsparseCsrSetPointers #ifdef USE_CUDA_NAMES function hipsparseCsrSetPointers_(spMatDescr,csrRowOffsets,csrColInd,csrValues) bind(c, name="cusparseCsrSetPointers") #else function hipsparseCsrSetPointers_(spMatDescr,csrRowOffsets,csrColInd,csrValues) bind(c, name="hipsparseCsrSetPointers") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCsrSetPointers_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: csrRowOffsets type(c_ptr),value :: csrColInd type(c_ptr),value :: csrValues end function end interface interface hipsparseCscSetPointers #ifdef USE_CUDA_NAMES function hipsparseCscSetPointers_(spMatDescr,cscColOffsets,cscRowInd,cscValues) bind(c, name="cusparseCscSetPointers") #else function hipsparseCscSetPointers_(spMatDescr,cscColOffsets,cscRowInd,cscValues) bind(c, name="hipsparseCscSetPointers") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCscSetPointers_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: cscColOffsets type(c_ptr),value :: cscRowInd type(c_ptr),value :: cscValues end function end interface interface hipsparseCooSetPointers #ifdef USE_CUDA_NAMES function hipsparseCooSetPointers_(spMatDescr,cooRowInd,cooColInd,cooValues) bind(c, name="cusparseCooSetPointers") #else function hipsparseCooSetPointers_(spMatDescr,cooRowInd,cooColInd,cooValues) bind(c, name="hipsparseCooSetPointers") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCooSetPointers_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: cooRowInd type(c_ptr),value :: cooColInd type(c_ptr),value :: cooValues end function end interface interface hipsparseSpMatGetSize #ifdef USE_CUDA_NAMES function hipsparseSpMatGetSize_(spMatDescr,rows,cols,nnz) bind(c, name="cusparseSpMatGetSize") #else function hipsparseSpMatGetSize_(spMatDescr,rows,cols,nnz) bind(c, name="hipsparseSpMatGetSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatGetSize_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz end function end interface interface hipsparseSpMatGetFormat #ifdef USE_CUDA_NAMES function hipsparseSpMatGetFormat_(spMatDescr,myFormat) bind(c, name="cusparseSpMatGetFormat") #else function hipsparseSpMatGetFormat_(spMatDescr,myFormat) bind(c, name="hipsparseSpMatGetFormat") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatGetFormat_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: myFormat end function end interface interface hipsparseSpMatGetIndexBase #ifdef USE_CUDA_NAMES function hipsparseSpMatGetIndexBase_(spMatDescr,idxBase) bind(c, name="cusparseSpMatGetIndexBase") #else function hipsparseSpMatGetIndexBase_(spMatDescr,idxBase) bind(c, name="hipsparseSpMatGetIndexBase") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatGetIndexBase_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: idxBase end function end interface interface hipsparseSpMatGetValues #ifdef USE_CUDA_NAMES function hipsparseSpMatGetValues_(spMatDescr,values) bind(c, name="cusparseSpMatGetValues") #else function hipsparseSpMatGetValues_(spMatDescr,values) bind(c, name="hipsparseSpMatGetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatGetValues_ type(c_ptr),value :: spMatDescr type(c_ptr) :: values end function end interface interface hipsparseSpMatSetValues #ifdef USE_CUDA_NAMES function hipsparseSpMatSetValues_(spMatDescr,values) bind(c, name="cusparseSpMatSetValues") #else function hipsparseSpMatSetValues_(spMatDescr,values) bind(c, name="hipsparseSpMatSetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatSetValues_ type(c_ptr),value :: spMatDescr type(c_ptr),value :: values end function end interface interface hipsparseCreateDnVec #ifdef USE_CUDA_NAMES function hipsparseCreateDnVec_(dnVecDescr,mySize,values,valueType) bind(c, name="cusparseCreateDnVec") #else function hipsparseCreateDnVec_(dnVecDescr,mySize,values,valueType) bind(c, name="hipsparseCreateDnVec") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateDnVec_ type(c_ptr) :: dnVecDescr integer(c_int64_t),value :: mySize type(c_ptr),value :: values integer(kind(HIP_R_16F)),value :: valueType end function end interface interface hipsparseDestroyDnVec #ifdef USE_CUDA_NAMES function hipsparseDestroyDnVec_(dnVecDescr) bind(c, name="cusparseDestroyDnVec") #else function hipsparseDestroyDnVec_(dnVecDescr) bind(c, name="hipsparseDestroyDnVec") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyDnVec_ type(c_ptr),value :: dnVecDescr end function end interface interface hipsparseDnVecGet #ifdef USE_CUDA_NAMES function hipsparseDnVecGet_(dnVecDescr,mySize,values,valueType) bind(c, name="cusparseDnVecGet") #else function hipsparseDnVecGet_(dnVecDescr,mySize,values,valueType) bind(c, name="hipsparseDnVecGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnVecGet_ type(c_ptr),value :: dnVecDescr type(c_ptr),value :: mySize type(c_ptr) :: values type(c_ptr),value :: valueType end function end interface interface hipsparseDnVecGetValues #ifdef USE_CUDA_NAMES function hipsparseDnVecGetValues_(dnVecDescr,values) bind(c, name="cusparseDnVecGetValues") #else function hipsparseDnVecGetValues_(dnVecDescr,values) bind(c, name="hipsparseDnVecGetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnVecGetValues_ type(c_ptr),value :: dnVecDescr type(c_ptr) :: values end function end interface interface hipsparseDnVecSetValues #ifdef USE_CUDA_NAMES function hipsparseDnVecSetValues_(dnVecDescr,values) bind(c, name="cusparseDnVecSetValues") #else function hipsparseDnVecSetValues_(dnVecDescr,values) bind(c, name="hipsparseDnVecSetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnVecSetValues_ type(c_ptr),value :: dnVecDescr type(c_ptr),value :: values end function end interface interface hipsparseCreateDnMat #ifdef USE_CUDA_NAMES function hipsparseCreateDnMat_(dnMatDescr,rows,cols,ld,values,valueType,order) bind(c, name="cusparseCreateDnMat") #else function hipsparseCreateDnMat_(dnMatDescr,rows,cols,ld,values,valueType,order) bind(c, name="hipsparseCreateDnMat") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateDnMat_ type(c_ptr) :: dnMatDescr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: ld type(c_ptr),value :: values integer(kind(HIP_R_16F)),value :: valueType integer(kind(HIPSPARSE_ORDER_COLUMN)),value :: order end function end interface interface hipsparseDestroyDnMat #ifdef USE_CUDA_NAMES function hipsparseDestroyDnMat_(dnMatDescr) bind(c, name="cusparseDestroyDnMat") #else function hipsparseDestroyDnMat_(dnMatDescr) bind(c, name="hipsparseDestroyDnMat") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDestroyDnMat_ type(c_ptr),value :: dnMatDescr end function end interface interface hipsparseDnMatGet #ifdef USE_CUDA_NAMES function hipsparseDnMatGet_(dnMatDescr,rows,cols,ld,values,valueType,order) bind(c, name="cusparseDnMatGet") #else function hipsparseDnMatGet_(dnMatDescr,rows,cols,ld,values,valueType,order) bind(c, name="hipsparseDnMatGet") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnMatGet_ type(c_ptr),value :: dnMatDescr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: ld type(c_ptr) :: values type(c_ptr),value :: valueType type(c_ptr),value :: order end function end interface interface hipsparseDnMatGetValues #ifdef USE_CUDA_NAMES function hipsparseDnMatGetValues_(dnMatDescr,values) bind(c, name="cusparseDnMatGetValues") #else function hipsparseDnMatGetValues_(dnMatDescr,values) bind(c, name="hipsparseDnMatGetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnMatGetValues_ type(c_ptr),value :: dnMatDescr type(c_ptr) :: values end function end interface interface hipsparseDnMatSetValues #ifdef USE_CUDA_NAMES function hipsparseDnMatSetValues_(dnMatDescr,values) bind(c, name="cusparseDnMatSetValues") #else function hipsparseDnMatSetValues_(dnMatDescr,values) bind(c, name="hipsparseDnMatSetValues") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnMatSetValues_ type(c_ptr),value :: dnMatDescr type(c_ptr),value :: values end function end interface interface hipsparseSpMatGetAttribute #ifdef USE_CUDA_NAMES function hipsparseSpMatGetAttribute_(spMatDescr,attribute,myData,dataSize) bind(c, name="cusparseSpMatGetAttribute") #else function hipsparseSpMatGetAttribute_(spMatDescr,attribute,myData,dataSize) bind(c, name="hipsparseSpMatGetAttribute") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatGetAttribute_ type(c_ptr),value :: spMatDescr integer(kind(HIPSPARSE_SPMAT_FILL_MODE)),value :: attribute type(c_ptr),value :: myData integer(c_size_t),value :: dataSize end function end interface interface hipsparseSpMatSetAttribute #ifdef USE_CUDA_NAMES function hipsparseSpMatSetAttribute_(spMatDescr,attribute,myData,dataSize) bind(c, name="cusparseSpMatSetAttribute") #else function hipsparseSpMatSetAttribute_(spMatDescr,attribute,myData,dataSize) bind(c, name="hipsparseSpMatSetAttribute") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMatSetAttribute_ type(c_ptr),value :: spMatDescr integer(kind(HIPSPARSE_SPMAT_FILL_MODE)),value :: attribute type(c_ptr),value :: myData integer(c_size_t),value :: dataSize end function end interface interface hipsparseAxpby #ifdef USE_CUDA_NAMES function hipsparseAxpby_(handle,alpha,vecX,beta,vecY) bind(c, name="cusparseAxpby") #else function hipsparseAxpby_(handle,alpha,vecX,beta,vecY) bind(c, name="hipsparseAxpby") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseAxpby_ type(c_ptr),value :: handle type(c_ptr),value :: alpha type(c_ptr),value :: vecX type(c_ptr),value :: beta type(c_ptr),value :: vecY end function end interface interface hipsparseGather #ifdef USE_CUDA_NAMES function hipsparseGather_(handle,vecY,vecX) bind(c, name="cusparseGather") #else function hipsparseGather_(handle,vecY,vecX) bind(c, name="hipsparseGather") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseGather_ type(c_ptr),value :: handle type(c_ptr),value :: vecY type(c_ptr),value :: vecX end function end interface interface hipsparseScatter #ifdef USE_CUDA_NAMES function hipsparseScatter_(handle,vecX,vecY) bind(c, name="cusparseScatter") #else function hipsparseScatter_(handle,vecX,vecY) bind(c, name="hipsparseScatter") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScatter_ type(c_ptr),value :: handle type(c_ptr),value :: vecX type(c_ptr),value :: vecY end function end interface interface hipsparseRot #ifdef USE_CUDA_NAMES function hipsparseRot_(handle,c_coeff,s_coeff,vecX,vecY) bind(c, name="cusparseRot") #else function hipsparseRot_(handle,c_coeff,s_coeff,vecX,vecY) bind(c, name="hipsparseRot") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseRot_ type(c_ptr),value :: handle type(c_ptr),value :: c_coeff type(c_ptr),value :: s_coeff type(c_ptr),value :: vecX type(c_ptr),value :: vecY end function end interface interface hipsparseSparseToDense_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSparseToDense_bufferSize_(handle,matA,matB,alg,bufferSize) bind(c, name="cusparseSparseToDense_bufferSize") #else function hipsparseSparseToDense_bufferSize_(handle,matA,matB,alg,bufferSize) bind(c, name="hipsparseSparseToDense_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSparseToDense_bufferSize_ type(c_ptr),value :: handle type(c_ptr),value :: matA type(c_ptr),value :: matB integer(kind(HIPSPARSE_SPARSETODENSE_ALG_DEFAULT)),value :: alg type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseSparseToDense_bufferSize_rank_0,& hipsparseSparseToDense_bufferSize_rank_1 #endif end interface interface hipsparseSparseToDense #ifdef USE_CUDA_NAMES function hipsparseSparseToDense_(handle,matA,matB,alg,externalBuffer) bind(c, name="cusparseSparseToDense") #else function hipsparseSparseToDense_(handle,matA,matB,alg,externalBuffer) bind(c, name="hipsparseSparseToDense") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSparseToDense_ type(c_ptr),value :: handle type(c_ptr),value :: matA type(c_ptr),value :: matB integer(kind(HIPSPARSE_SPARSETODENSE_ALG_DEFAULT)),value :: alg type(c_ptr),value :: externalBuffer end function end interface interface hipsparseDenseToSparse_bufferSize #ifdef USE_CUDA_NAMES function hipsparseDenseToSparse_bufferSize_(handle,matA,matB,alg,bufferSize) bind(c, name="cusparseDenseToSparse_bufferSize") #else function hipsparseDenseToSparse_bufferSize_(handle,matA,matB,alg,bufferSize) bind(c, name="hipsparseDenseToSparse_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDenseToSparse_bufferSize_ type(c_ptr),value :: handle type(c_ptr),value :: matA type(c_ptr),value :: matB integer(kind(HIPSPARSE_DENSETOSPARSE_ALG_DEFAULT)),value :: alg type(c_ptr),value :: bufferSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsparseDenseToSparse_bufferSize_rank_0,& hipsparseDenseToSparse_bufferSize_rank_1 #endif end interface interface hipsparseDenseToSparse_analysis #ifdef USE_CUDA_NAMES function hipsparseDenseToSparse_analysis_(handle,matA,matB,alg,externalBuffer) bind(c, name="cusparseDenseToSparse_analysis") #else function hipsparseDenseToSparse_analysis_(handle,matA,matB,alg,externalBuffer) bind(c, name="hipsparseDenseToSparse_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDenseToSparse_analysis_ type(c_ptr),value :: handle type(c_ptr),value :: matA type(c_ptr),value :: matB integer(kind(HIPSPARSE_DENSETOSPARSE_ALG_DEFAULT)),value :: alg type(c_ptr),value :: externalBuffer end function end interface interface hipsparseDenseToSparse_convert #ifdef USE_CUDA_NAMES function hipsparseDenseToSparse_convert_(handle,matA,matB,alg,externalBuffer) bind(c, name="cusparseDenseToSparse_convert") #else function hipsparseDenseToSparse_convert_(handle,matA,matB,alg,externalBuffer) bind(c, name="hipsparseDenseToSparse_convert") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDenseToSparse_convert_ type(c_ptr),value :: handle type(c_ptr),value :: matA type(c_ptr),value :: matB integer(kind(HIPSPARSE_DENSETOSPARSE_ALG_DEFAULT)),value :: alg type(c_ptr),value :: externalBuffer end function end interface interface hipsparseSpVV_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpVV_bufferSize_(handle,opX,vecX,vecY,myResult,computeType,bufferSize) bind(c, name="cusparseSpVV_bufferSize") #else function hipsparseSpVV_bufferSize_(handle,opX,vecX,vecY,myResult,computeType,bufferSize) bind(c, name="hipsparseSpVV_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpVV_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opX type(c_ptr),value :: vecX type(c_ptr),value :: vecY type(c_ptr),value :: myResult integer(kind(HIP_R_16F)),value :: computeType type(c_ptr),value :: bufferSize end function end interface interface hipsparseSpVV #ifdef USE_CUDA_NAMES function hipsparseSpVV_(handle,opX,vecX,vecY,myResult,computeType,externalBuffer) bind(c, name="cusparseSpVV") #else function hipsparseSpVV_(handle,opX,vecX,vecY,myResult,computeType,externalBuffer) bind(c, name="hipsparseSpVV") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpVV_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opX type(c_ptr),value :: vecX type(c_ptr),value :: vecY type(c_ptr),value :: myResult integer(kind(HIP_R_16F)),value :: computeType type(c_ptr),value :: externalBuffer end function end interface interface hipsparseSpMV_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpMV_bufferSize_(handle,opA,alpha,matA,vecX,beta,vecY,computeType,alg,bufferSize) bind(c, name="cusparseSpMV_bufferSize") #else function hipsparseSpMV_bufferSize_(handle,opA,alpha,matA,vecX,beta,vecY,computeType,alg,bufferSize) bind(c, name="hipsparseSpMV_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMV_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: vecX type(c_ptr),value :: beta type(c_ptr),value :: vecY integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_MV_ALG_DEFAULT)),value :: alg type(c_ptr),value :: bufferSize end function end interface interface hipsparseSpMV #ifdef USE_CUDA_NAMES function hipsparseSpMV_(handle,opA,alpha,matA,vecX,beta,vecY,computeType,alg,externalBuffer) bind(c, name="cusparseSpMV") #else function hipsparseSpMV_(handle,opA,alpha,matA,vecX,beta,vecY,computeType,alg,externalBuffer) bind(c, name="hipsparseSpMV") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMV_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: vecX type(c_ptr),value :: beta type(c_ptr),value :: vecY integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_MV_ALG_DEFAULT)),value :: alg type(c_ptr),value :: externalBuffer end function end interface interface hipsparseSpMM_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpMM_bufferSize_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,bufferSize) bind(c, name="cusparseSpMM_bufferSize") #else function hipsparseSpMM_bufferSize_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,bufferSize) bind(c, name="hipsparseSpMM_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMM_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: beta type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_MM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: bufferSize end function end interface !> Description: Preprocess step of the sparse matrix multiplication with a dense matrix. interface hipsparseSpMM_preprocess #ifdef USE_CUDA_NAMES function hipsparseSpMM_preprocess_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,externalBuffer) bind(c, name="cusparseSpMM_preprocess") #else function hipsparseSpMM_preprocess_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,externalBuffer) bind(c, name="hipsparseSpMM_preprocess") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMM_preprocess_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: beta type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_MM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: externalBuffer end function end interface !> Description: Compute the sparse matrix multiplication with a dense matrix interface hipsparseSpMM #ifdef USE_CUDA_NAMES function hipsparseSpMM_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,externalBuffer) bind(c, name="cusparseSpMM") #else function hipsparseSpMM_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,externalBuffer) bind(c, name="hipsparseSpMM") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpMM_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: beta type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_MM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: externalBuffer end function end interface interface hipsparseSpGEMM_createDescr #ifdef USE_CUDA_NAMES function hipsparseSpGEMM_createDescr_(descr) bind(c, name="cusparseSpGEMM_createDescr") #else function hipsparseSpGEMM_createDescr_(descr) bind(c, name="hipsparseSpGEMM_createDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpGEMM_createDescr_ type(c_ptr) :: descr end function end interface interface hipsparseSpGEMM_destroyDescr #ifdef USE_CUDA_NAMES function hipsparseSpGEMM_destroyDescr_(descr) bind(c, name="cusparseSpGEMM_destroyDescr") #else function hipsparseSpGEMM_destroyDescr_(descr) bind(c, name="hipsparseSpGEMM_destroyDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpGEMM_destroyDescr_ type(c_ptr),value :: descr end function end interface interface hipsparseSpGEMM_workEstimation #ifdef USE_CUDA_NAMES function hipsparseSpGEMM_workEstimation_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,spgemmDescr,bufferSize1,externalBuffer1) bind(c, name="cusparseSpGEMM_workEstimation") #else function hipsparseSpGEMM_workEstimation_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,spgemmDescr,bufferSize1,externalBuffer1) bind(c, name="hipsparseSpGEMM_workEstimation") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpGEMM_workEstimation_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: beta type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPGEMM_DEFAULT)),value :: alg type(c_ptr),value :: spgemmDescr type(c_ptr),value :: bufferSize1 type(c_ptr),value :: externalBuffer1 end function end interface interface hipsparseSpGEMM_compute #ifdef USE_CUDA_NAMES function hipsparseSpGEMM_compute_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,spgemmDescr,bufferSize2,externalBuffer2) bind(c, name="cusparseSpGEMM_compute") #else function hipsparseSpGEMM_compute_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,spgemmDescr,bufferSize2,externalBuffer2) bind(c, name="hipsparseSpGEMM_compute") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpGEMM_compute_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: beta type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPGEMM_DEFAULT)),value :: alg type(c_ptr),value :: spgemmDescr type(c_ptr),value :: bufferSize2 type(c_ptr),value :: externalBuffer2 end function end interface interface hipsparseSpGEMM_copy #ifdef USE_CUDA_NAMES function hipsparseSpGEMM_copy_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,spgemmDescr) bind(c, name="cusparseSpGEMM_copy") #else function hipsparseSpGEMM_copy_(handle,opA,opB,alpha,matA,matB,beta,matC,computeType,alg,spgemmDescr) bind(c, name="hipsparseSpGEMM_copy") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpGEMM_copy_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: beta type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPGEMM_DEFAULT)),value :: alg type(c_ptr),value :: spgemmDescr end function end interface interface hipsparseSDDMM #ifdef USE_CUDA_NAMES function hipsparseSDDMM_(handle,opA,opB,alpha,A,B,beta,C,computeType,alg,tempBuffer) bind(c, name="cusparseSDDMM") #else function hipsparseSDDMM_(handle,opA,opB,alpha,A,B,beta,C,computeType,alg,tempBuffer) bind(c, name="hipsparseSDDMM") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSDDMM_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: C integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SDDMM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: tempBuffer end function end interface interface hipsparseSDDMM_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSDDMM_bufferSize_(handle,opA,opB,alpha,A,B,beta,C,computeType,alg,bufferSize) bind(c, name="cusparseSDDMM_bufferSize") #else function hipsparseSDDMM_bufferSize_(handle,opA,opB,alpha,A,B,beta,C,computeType,alg,bufferSize) bind(c, name="hipsparseSDDMM_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSDDMM_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: C integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SDDMM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: bufferSize end function end interface interface hipsparseSDDMM_preprocess #ifdef USE_CUDA_NAMES function hipsparseSDDMM_preprocess_(handle,opA,opB,alpha,A,B,beta,C,computeType,alg,tempBuffer) bind(c, name="cusparseSDDMM_preprocess") #else function hipsparseSDDMM_preprocess_(handle,opA,opB,alpha,A,B,beta,C,computeType,alg,tempBuffer) bind(c, name="hipsparseSDDMM_preprocess") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSDDMM_preprocess_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: C integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SDDMM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: tempBuffer end function end interface interface hipsparseSpSV_createDescr #ifdef USE_CUDA_NAMES function hipsparseSpSV_createDescr_(descr) bind(c, name="cusparseSpSV_createDescr") #else function hipsparseSpSV_createDescr_(descr) bind(c, name="hipsparseSpSV_createDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSV_createDescr_ type(c_ptr) :: descr end function end interface interface hipsparseSpSV_destroyDescr #ifdef USE_CUDA_NAMES function hipsparseSpSV_destroyDescr_(descr) bind(c, name="cusparseSpSV_destroyDescr") #else function hipsparseSpSV_destroyDescr_(descr) bind(c, name="hipsparseSpSV_destroyDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSV_destroyDescr_ type(c_ptr),value :: descr end function end interface interface hipsparseSpSV_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpSV_bufferSize_(handle,opA,alpha,matA,x,y,computeType,alg,spsvDescr,bufferSize) bind(c, name="cusparseSpSV_bufferSize") #else function hipsparseSpSV_bufferSize_(handle,opA,alpha,matA,x,y,computeType,alg,spsvDescr,bufferSize) bind(c, name="hipsparseSpSV_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSV_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPSV_ALG_DEFAULT)),value :: alg type(c_ptr),value :: spsvDescr type(c_ptr),value :: bufferSize end function end interface !> Description: Analysis step of solution of triangular linear system op(A) * Y = alpha * X, !> where A is a sparse matrix in CSR storage format, x and Y are dense vectors. interface hipsparseSpSV_analysis #ifdef USE_CUDA_NAMES function hipsparseSpSV_analysis_(handle,opA,alpha,matA,x,y,computeType,alg,spsvDescr,externalBuffer) bind(c, name="cusparseSpSV_analysis") #else function hipsparseSpSV_analysis_(handle,opA,alpha,matA,x,y,computeType,alg,spsvDescr,externalBuffer) bind(c, name="hipsparseSpSV_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSV_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPSV_ALG_DEFAULT)),value :: alg type(c_ptr),value :: spsvDescr type(c_ptr),value :: externalBuffer end function end interface !> Description: Solve step of solution of triangular linear system op(A) * Y = alpha * X, !> where A is a sparse matrix in CSR storage format, x and Y are dense vectors. interface hipsparseSpSV_solve #ifdef USE_CUDA_NAMES function hipsparseSpSV_solve_(handle,opA,alpha,matA,x,y,computeType,alg,spsvDescr,externalBuffer) bind(c, name="cusparseSpSV_solve") #else function hipsparseSpSV_solve_(handle,opA,alpha,matA,x,y,computeType,alg,spsvDescr,externalBuffer) bind(c, name="hipsparseSpSV_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSV_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPSV_ALG_DEFAULT)),value :: alg type(c_ptr),value :: spsvDescr type(c_ptr),value :: externalBuffer end function end interface interface hipsparseSpSM_createDescr #ifdef USE_CUDA_NAMES function hipsparseSpSM_createDescr_(descr) bind(c, name="cusparseSpSM_createDescr") #else function hipsparseSpSM_createDescr_(descr) bind(c, name="hipsparseSpSM_createDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSM_createDescr_ type(c_ptr) :: descr end function end interface interface hipsparseSpSM_destroyDescr #ifdef USE_CUDA_NAMES function hipsparseSpSM_destroyDescr_(descr) bind(c, name="cusparseSpSM_destroyDescr") #else function hipsparseSpSM_destroyDescr_(descr) bind(c, name="hipsparseSpSM_destroyDescr") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSM_destroyDescr_ type(c_ptr),value :: descr end function end interface interface hipsparseSpSM_bufferSize #ifdef USE_CUDA_NAMES function hipsparseSpSM_bufferSize_(handle,opA,opB,alpha,matA,matB,matC,computeType,alg,spsmDescr,bufferSize) bind(c, name="cusparseSpSM_bufferSize") #else function hipsparseSpSM_bufferSize_(handle,opA,opB,alpha,matA,matB,matC,computeType,alg,spsmDescr,bufferSize) bind(c, name="hipsparseSpSM_bufferSize") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSM_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPSM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: spsmDescr type(c_ptr),value :: bufferSize end function end interface !> Description: Analysis step of solution of triangular linear system op(A) * C = alpha * op(B), !> where A is a sparse matrix in CSR storage format, B and C are dense vectors. interface hipsparseSpSM_analysis #ifdef USE_CUDA_NAMES function hipsparseSpSM_analysis_(handle,opA,opB,alpha,matA,matB,matC,computeType,alg,spsmDescr,externalBuffer) bind(c, name="cusparseSpSM_analysis") #else function hipsparseSpSM_analysis_(handle,opA,opB,alpha,matA,matB,matC,computeType,alg,spsmDescr,externalBuffer) bind(c, name="hipsparseSpSM_analysis") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSM_analysis_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPSM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: spsmDescr type(c_ptr),value :: externalBuffer end function end interface !> Description: Solve step of solution of triangular linear system op(A) * C = alpha * op(B), !> where A is a sparse matrix in CSR storage format, B and C are dense vectors. interface hipsparseSpSM_solve #ifdef USE_CUDA_NAMES function hipsparseSpSM_solve_(handle,opA,opB,alpha,matA,matB,matC,computeType,alg,spsmDescr,externalBuffer) bind(c, name="cusparseSpSM_solve") #else function hipsparseSpSM_solve_(handle,opA,opB,alpha,matA,matB,matC,computeType,alg,spsmDescr,externalBuffer) bind(c, name="hipsparseSpSM_solve") #endif use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpSM_solve_ type(c_ptr),value :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: matC integer(kind(HIP_R_16F)),value :: computeType integer(kind(HIPSPARSE_SPSM_ALG_DEFAULT)),value :: alg type(c_ptr),value :: spsmDescr type(c_ptr),value :: externalBuffer end function end interface #ifdef USE_FPOINTER_INTERFACES contains function hipsparseSaxpyi_rank_0(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSaxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target :: xVal integer(c_int),target :: xInd real(c_float),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSaxpyi_rank_0 = hipsparseSaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseSaxpyi_rank_1(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSaxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_float),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSaxpyi_rank_1 = hipsparseSaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseDaxpyi_rank_0(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDaxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target :: xVal integer(c_int),target :: xInd real(c_double),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDaxpyi_rank_0 = hipsparseDaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseDaxpyi_rank_1(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDaxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_double),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDaxpyi_rank_1 = hipsparseDaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseCaxpyi_rank_0(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCaxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target :: xVal integer(c_int),target :: xInd complex(c_float_complex),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCaxpyi_rank_0 = hipsparseCaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseCaxpyi_rank_1(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCaxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_float_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCaxpyi_rank_1 = hipsparseCaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseZaxpyi_rank_0(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZaxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target :: xVal integer(c_int),target :: xInd complex(c_double_complex),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZaxpyi_rank_0 = hipsparseZaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseZaxpyi_rank_1(handle,nnz,alpha,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZaxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_double_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZaxpyi_rank_1 = hipsparseZaxpyi_(handle,nnz,alpha,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseSdoti_rank_0(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: xVal integer(c_int),target :: xInd real(c_float),target :: y real(c_float),target :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSdoti_rank_0 = hipsparseSdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseSdoti_rank_1(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_float),target,dimension(:) :: y real(c_float),target,dimension(:) :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSdoti_rank_1 = hipsparseSdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseDdoti_rank_0(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: xVal integer(c_int),target :: xInd real(c_double),target :: y real(c_double),target :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDdoti_rank_0 = hipsparseDdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseDdoti_rank_1(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_double),target,dimension(:) :: y real(c_double),target,dimension(:) :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDdoti_rank_1 = hipsparseDdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseCdoti_rank_0(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: xVal integer(c_int),target :: xInd complex(c_float_complex),target :: y complex(c_float_complex),target :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCdoti_rank_0 = hipsparseCdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseCdoti_rank_1(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCdoti_rank_1 = hipsparseCdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseZdoti_rank_0(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: xVal integer(c_int),target :: xInd complex(c_double_complex),target :: y complex(c_double_complex),target :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZdoti_rank_0 = hipsparseZdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseZdoti_rank_1(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZdoti_rank_1 = hipsparseZdoti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseCdotci_rank_0(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdotci_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: xVal integer(c_int),target :: xInd complex(c_float_complex),target :: y complex(c_float_complex),target :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCdotci_rank_0 = hipsparseCdotci_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseCdotci_rank_1(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdotci_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCdotci_rank_1 = hipsparseCdotci_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseZdotci_rank_0(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdotci_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: xVal integer(c_int),target :: xInd complex(c_double_complex),target :: y complex(c_double_complex),target :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZdotci_rank_0 = hipsparseZdotci_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseZdotci_rank_1(handle,nnz,xVal,xInd,y,myResult,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdotci_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: myResult integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZdotci_rank_1 = hipsparseZdotci_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c_loc(myResult),idxBase) end function function hipsparseSgthr_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: y real(c_float),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSgthr_rank_0 = hipsparseSgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseSgthr_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: y real(c_float),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSgthr_rank_1 = hipsparseSgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseDgthr_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: y real(c_double),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDgthr_rank_0 = hipsparseDgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseDgthr_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: y real(c_double),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDgthr_rank_1 = hipsparseDgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseCgthr_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: y complex(c_float_complex),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCgthr_rank_0 = hipsparseCgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseCgthr_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCgthr_rank_1 = hipsparseCgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseZgthr_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: y complex(c_double_complex),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZgthr_rank_0 = hipsparseZgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseZgthr_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZgthr_rank_1 = hipsparseZgthr_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseSgthrz_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: y real(c_float),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSgthrz_rank_0 = hipsparseSgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseSgthrz_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: y real(c_float),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSgthrz_rank_1 = hipsparseSgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseDgthrz_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: y real(c_double),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDgthrz_rank_0 = hipsparseDgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseDgthrz_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: y real(c_double),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDgthrz_rank_1 = hipsparseDgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseCgthrz_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: y complex(c_float_complex),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCgthrz_rank_0 = hipsparseCgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseCgthrz_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCgthrz_rank_1 = hipsparseCgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseZgthrz_rank_0(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: y complex(c_double_complex),target :: xVal integer(c_int),target :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZgthrz_rank_0 = hipsparseZgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseZgthrz_rank_1(handle,nnz,y,xVal,xInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZgthrz_rank_1 = hipsparseZgthrz_(handle,nnz,c_loc(y),c_loc(xVal),c_loc(xInd),idxBase) end function function hipsparseSroti_rank_0(handle,nnz,xVal,xInd,y,c,s,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSroti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: xVal integer(c_int),target :: xInd real(c_float),target :: y real(c_float) :: c real(c_float) :: s integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSroti_rank_0 = hipsparseSroti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c,s,idxBase) end function function hipsparseSroti_rank_1(handle,nnz,xVal,xInd,y,c,s,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSroti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_float),target,dimension(:) :: y real(c_float) :: c real(c_float) :: s integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSroti_rank_1 = hipsparseSroti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c,s,idxBase) end function function hipsparseDroti_rank_0(handle,nnz,xVal,xInd,y,c,s,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDroti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: xVal integer(c_int),target :: xInd real(c_double),target :: y real(c_double) :: c real(c_double) :: s integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDroti_rank_0 = hipsparseDroti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c,s,idxBase) end function function hipsparseDroti_rank_1(handle,nnz,xVal,xInd,y,c,s,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDroti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_double),target,dimension(:) :: y real(c_double) :: c real(c_double) :: s integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDroti_rank_1 = hipsparseDroti_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),c,s,idxBase) end function function hipsparseSsctr_rank_0(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSsctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: xVal integer(c_int),target :: xInd real(c_float),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSsctr_rank_0 = hipsparseSsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseSsctr_rank_1(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSsctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_float),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseSsctr_rank_1 = hipsparseSsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseDsctr_rank_0(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDsctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: xVal integer(c_int),target :: xInd real(c_double),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDsctr_rank_0 = hipsparseDsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseDsctr_rank_1(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDsctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd real(c_double),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDsctr_rank_1 = hipsparseDsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseCsctr_rank_0(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCsctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: xVal integer(c_int),target :: xInd complex(c_float_complex),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCsctr_rank_0 = hipsparseCsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseCsctr_rank_1(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCsctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_float_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCsctr_rank_1 = hipsparseCsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseZsctr_rank_0(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZsctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: xVal integer(c_int),target :: xInd complex(c_double_complex),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZsctr_rank_0 = hipsparseZsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseZsctr_rank_1(handle,nnz,xVal,xInd,y,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZsctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: xVal integer(c_int),target,dimension(:) :: xInd complex(c_double_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZsctr_rank_1 = hipsparseZsctr_(handle,nnz,c_loc(xVal),c_loc(xInd),c_loc(y),idxBase) end function function hipsparseScsrmv_rank_0(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! hipsparseScsrmv_rank_0 = hipsparseScsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseScsrmv_rank_1(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! hipsparseScsrmv_rank_1 = hipsparseScsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseDcsrmv_rank_0(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! hipsparseDcsrmv_rank_0 = hipsparseDcsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseDcsrmv_rank_1(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! hipsparseDcsrmv_rank_1 = hipsparseDcsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseCcsrmv_rank_0(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! hipsparseCcsrmv_rank_0 = hipsparseCcsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseCcsrmv_rank_1(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! hipsparseCcsrmv_rank_1 = hipsparseCcsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseZcsrmv_rank_0(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! hipsparseZcsrmv_rank_0 = hipsparseZcsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseZcsrmv_rank_1(handle,transA,m,n,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! hipsparseZcsrmv_rank_1 = hipsparseZcsrmv_(handle,transA,m,n,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(x),beta,c_loc(y)) end function function hipsparseScsrsv2_bufferSize_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseScsrsv2_bufferSize_rank_0 = hipsparseScsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseScsrsv2_bufferSize_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseScsrsv2_bufferSize_rank_1 = hipsparseScsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseDcsrsv2_bufferSize_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDcsrsv2_bufferSize_rank_0 = hipsparseDcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseDcsrsv2_bufferSize_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDcsrsv2_bufferSize_rank_1 = hipsparseDcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseCcsrsv2_bufferSize_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCcsrsv2_bufferSize_rank_0 = hipsparseCcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseCcsrsv2_bufferSize_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCcsrsv2_bufferSize_rank_1 = hipsparseCcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseZcsrsv2_bufferSize_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZcsrsv2_bufferSize_rank_0 = hipsparseZcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseZcsrsv2_bufferSize_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZcsrsv2_bufferSize_rank_1 = hipsparseZcsrsv2_bufferSize_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseScsrsv2_bufferSizeExt_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseScsrsv2_bufferSizeExt_rank_0 = hipsparseScsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseScsrsv2_bufferSizeExt_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseScsrsv2_bufferSizeExt_rank_1 = hipsparseScsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseDcsrsv2_bufferSizeExt_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDcsrsv2_bufferSizeExt_rank_0 = hipsparseDcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseDcsrsv2_bufferSizeExt_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDcsrsv2_bufferSizeExt_rank_1 = hipsparseDcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseCcsrsv2_bufferSizeExt_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCcsrsv2_bufferSizeExt_rank_0 = hipsparseCcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseCcsrsv2_bufferSizeExt_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCcsrsv2_bufferSizeExt_rank_1 = hipsparseCcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseZcsrsv2_bufferSizeExt_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZcsrsv2_bufferSizeExt_rank_0 = hipsparseZcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseZcsrsv2_bufferSizeExt_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZcsrsv2_bufferSizeExt_rank_1 = hipsparseZcsrsv2_bufferSizeExt_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseScsrsv2_analysis_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsv2_analysis_rank_0 = hipsparseScsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsrsv2_analysis_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsv2_analysis_rank_1 = hipsparseScsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsrsv2_analysis_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsv2_analysis_rank_0 = hipsparseDcsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsrsv2_analysis_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsv2_analysis_rank_1 = hipsparseDcsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsrsv2_analysis_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsv2_analysis_rank_0 = hipsparseCcsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsrsv2_analysis_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsv2_analysis_rank_1 = hipsparseCcsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsrsv2_analysis_rank_0(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsv2_analysis_rank_0 = hipsparseZcsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsrsv2_analysis_rank_1(handle,transA,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsv2_analysis_rank_1 = hipsparseZcsrsv2_analysis_(handle,transA,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsrsv2_solve_rank_0(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo real(c_float),target :: f real(c_float),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsv2_solve_rank_0 = hipsparseScsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseScsrsv2_solve_rank_1(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: f real(c_float),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsv2_solve_rank_1 = hipsparseScsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseDcsrsv2_solve_rank_0(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo real(c_double),target :: f real(c_double),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsv2_solve_rank_0 = hipsparseDcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseDcsrsv2_solve_rank_1(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: f real(c_double),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsv2_solve_rank_1 = hipsparseDcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseCcsrsv2_solve_rank_0(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo complex(c_float_complex),target :: f complex(c_float_complex),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsv2_solve_rank_0 = hipsparseCcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseCcsrsv2_solve_rank_1(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: f complex(c_float_complex),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsv2_solve_rank_1 = hipsparseCcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseZcsrsv2_solve_rank_0(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo complex(c_double_complex),target :: f complex(c_double_complex),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsv2_solve_rank_0 = hipsparseZcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseZcsrsv2_solve_rank_1(handle,transA,m,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: f complex(c_double_complex),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsv2_solve_rank_1 = hipsparseZcsrsv2_solve_(handle,transA,m,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseShybmv_rank_0(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseShybmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA real(c_float) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! hipsparseShybmv_rank_0 = hipsparseShybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseShybmv_rank_1(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseShybmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA real(c_float) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! hipsparseShybmv_rank_1 = hipsparseShybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseDhybmv_rank_0(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDhybmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA real(c_double) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! hipsparseDhybmv_rank_0 = hipsparseDhybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseDhybmv_rank_1(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDhybmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA real(c_double) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! hipsparseDhybmv_rank_1 = hipsparseDhybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseChybmv_rank_0(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseChybmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA complex(c_float_complex) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! hipsparseChybmv_rank_0 = hipsparseChybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseChybmv_rank_1(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseChybmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA complex(c_float_complex) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! hipsparseChybmv_rank_1 = hipsparseChybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseZhybmv_rank_0(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZhybmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA complex(c_double_complex) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! hipsparseZhybmv_rank_0 = hipsparseZhybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseZhybmv_rank_1(handle,transA,alpha,descrA,hybA,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZhybmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA complex(c_double_complex) :: alpha type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! hipsparseZhybmv_rank_1 = hipsparseZhybmv_(handle,transA,alpha,descrA,hybA,c_loc(x),beta,c_loc(y)) end function function hipsparseSbsrmv_rank_0(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! hipsparseSbsrmv_rank_0 = hipsparseSbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseSbsrmv_rank_1(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! hipsparseSbsrmv_rank_1 = hipsparseSbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseDbsrmv_rank_0(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! hipsparseDbsrmv_rank_0 = hipsparseDbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseDbsrmv_rank_1(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! hipsparseDbsrmv_rank_1 = hipsparseDbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseCbsrmv_rank_0(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! hipsparseCbsrmv_rank_0 = hipsparseCbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseCbsrmv_rank_1(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! hipsparseCbsrmv_rank_1 = hipsparseCbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseZbsrmv_rank_0(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! hipsparseZbsrmv_rank_0 = hipsparseZbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseZbsrmv_rank_1(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! hipsparseZbsrmv_rank_1 = hipsparseZbsrmv_(handle,dirA,transA,mb,nb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseSbsrxmv_rank_0(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! hipsparseSbsrxmv_rank_0 = hipsparseSbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseSbsrxmv_rank_1(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! hipsparseSbsrxmv_rank_1 = hipsparseSbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseDbsrxmv_rank_0(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! hipsparseDbsrxmv_rank_0 = hipsparseDbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseDbsrxmv_rank_1(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! hipsparseDbsrxmv_rank_1 = hipsparseDbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseCbsrxmv_rank_0(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! hipsparseCbsrxmv_rank_0 = hipsparseCbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseCbsrxmv_rank_1(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! hipsparseCbsrxmv_rank_1 = hipsparseCbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseZbsrxmv_rank_0(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! hipsparseZbsrxmv_rank_0 = hipsparseZbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseZbsrxmv_rank_1(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,x,beta,y) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: trans integer(c_int) :: sizeOfMask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: bsrVal type(c_ptr) :: bsrMaskPtr type(c_ptr) :: bsrRowPtr type(c_ptr) :: bsrEndPtr type(c_ptr) :: bsrColInd integer(c_int) :: blockDim complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! hipsparseZbsrxmv_rank_1 = hipsparseZbsrxmv_(handle,dir,trans,sizeOfMask,mb,nb,nnzb,alpha,descr,bsrVal,bsrMaskPtr,bsrRowPtr,bsrEndPtr,bsrColInd,blockDim,c_loc(x),beta,c_loc(y)) end function function hipsparseSbsrsv2_bufferSize_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsrsv2_bufferSize_rank_0 = hipsparseSbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsrsv2_bufferSize_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsrsv2_bufferSize_rank_1 = hipsparseSbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsrsv2_bufferSize_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsrsv2_bufferSize_rank_0 = hipsparseDbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsrsv2_bufferSize_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsrsv2_bufferSize_rank_1 = hipsparseDbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsrsv2_bufferSize_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsrsv2_bufferSize_rank_0 = hipsparseCbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsrsv2_bufferSize_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsrsv2_bufferSize_rank_1 = hipsparseCbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsrsv2_bufferSize_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsrsv2_bufferSize_rank_0 = hipsparseZbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsrsv2_bufferSize_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsrsv2_bufferSize_rank_1 = hipsparseZbsrsv2_bufferSize_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsrsv2_bufferSizeExt_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseSbsrsv2_bufferSizeExt_rank_0 = hipsparseSbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseSbsrsv2_bufferSizeExt_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseSbsrsv2_bufferSizeExt_rank_1 = hipsparseSbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseDbsrsv2_bufferSizeExt_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDbsrsv2_bufferSizeExt_rank_0 = hipsparseDbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseDbsrsv2_bufferSizeExt_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDbsrsv2_bufferSizeExt_rank_1 = hipsparseDbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseCbsrsv2_bufferSizeExt_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCbsrsv2_bufferSizeExt_rank_0 = hipsparseCbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseCbsrsv2_bufferSizeExt_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCbsrsv2_bufferSizeExt_rank_1 = hipsparseCbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseZbsrsv2_bufferSizeExt_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZbsrsv2_bufferSizeExt_rank_0 = hipsparseZbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseZbsrsv2_bufferSizeExt_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZbsrsv2_bufferSizeExt_rank_1 = hipsparseZbsrsv2_bufferSizeExt_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSize) end function function hipsparseSbsrsv2_analysis_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsv2_analysis_rank_0 = hipsparseSbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrsv2_analysis_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsv2_analysis_rank_1 = hipsparseSbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrsv2_analysis_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsv2_analysis_rank_0 = hipsparseDbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrsv2_analysis_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsv2_analysis_rank_1 = hipsparseDbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrsv2_analysis_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsv2_analysis_rank_0 = hipsparseCbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrsv2_analysis_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsv2_analysis_rank_1 = hipsparseCbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrsv2_analysis_rank_0(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsv2_analysis_rank_0 = hipsparseZbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrsv2_analysis_rank_1(handle,dirA,transA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsv2_analysis_rank_1 = hipsparseZbsrsv2_analysis_(handle,dirA,transA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrsv2_solve_rank_0(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_float),target :: f real(c_float),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsv2_solve_rank_0 = hipsparseSbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseSbsrsv2_solve_rank_1(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: f real(c_float),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsv2_solve_rank_1 = hipsparseSbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseDbsrsv2_solve_rank_0(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_double),target :: f real(c_double),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsv2_solve_rank_0 = hipsparseDbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseDbsrsv2_solve_rank_1(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: f real(c_double),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsv2_solve_rank_1 = hipsparseDbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseCbsrsv2_solve_rank_0(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_float_complex),target :: f complex(c_float_complex),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsv2_solve_rank_0 = hipsparseCbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseCbsrsv2_solve_rank_1(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: f complex(c_float_complex),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsv2_solve_rank_1 = hipsparseCbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseZbsrsv2_solve_rank_0(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_double_complex),target :: f complex(c_double_complex),target :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsv2_solve_rank_0 = hipsparseZbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseZbsrsv2_solve_rank_1(handle,dirA,transA,mb,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,f,x,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsv2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: mb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: f complex(c_double_complex),target,dimension(:) :: x integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsv2_solve_rank_1 = hipsparseZbsrsv2_solve_(handle,dirA,transA,mb,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(f),c_loc(x),policy,pBuffer) end function function hipsparseSgemvi_full_rank(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemvi_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_float),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseSgemvi_full_rank = hipsparseSgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseSgemvi_rank_0(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemvi_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_float),target :: x integer(c_int),target :: xInd real(c_float) :: beta real(c_float),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseSgemvi_rank_0 = hipsparseSgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseSgemvi_rank_1(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemvi_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_float),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseSgemvi_rank_1 = hipsparseSgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseDgemvi_full_rank(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemvi_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_double),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseDgemvi_full_rank = hipsparseDgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseDgemvi_rank_0(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemvi_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_double),target :: x integer(c_int),target :: xInd real(c_double) :: beta real(c_double),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseDgemvi_rank_0 = hipsparseDgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseDgemvi_rank_1(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemvi_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_double),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseDgemvi_rank_1 = hipsparseDgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseCgemvi_full_rank(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemvi_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseCgemvi_full_rank = hipsparseCgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseCgemvi_rank_0(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemvi_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_float_complex),target :: x integer(c_int),target :: xInd complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseCgemvi_rank_0 = hipsparseCgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseCgemvi_rank_1(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemvi_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseCgemvi_rank_1 = hipsparseCgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseZgemvi_full_rank(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemvi_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseZgemvi_full_rank = hipsparseZgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseZgemvi_rank_0(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemvi_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_double_complex),target :: x integer(c_int),target :: xInd complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseZgemvi_rank_0 = hipsparseZgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseZgemvi_rank_1(handle,transA,m,n,alpha,A,lda,nnz,x,xInd,beta,y,idxBase,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemvi_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x integer(c_int),target,dimension(:) :: xInd complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase type(c_ptr) :: pBuffer ! hipsparseZgemvi_rank_1 = hipsparseZgemvi_(handle,transA,m,n,alpha,c_loc(A),lda,nnz,c_loc(x),c_loc(xInd),beta,c_loc(y),idxBase,pBuffer) end function function hipsparseSbsrmm_full_rank(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseSbsrmm_full_rank = hipsparseSbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseSbsrmm_rank_0(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipsparseSbsrmm_rank_0 = hipsparseSbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseSbsrmm_rank_1(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseSbsrmm_rank_1 = hipsparseSbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDbsrmm_full_rank(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseDbsrmm_full_rank = hipsparseDbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDbsrmm_rank_0(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipsparseDbsrmm_rank_0 = hipsparseDbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDbsrmm_rank_1(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseDbsrmm_rank_1 = hipsparseDbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCbsrmm_full_rank(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseCbsrmm_full_rank = hipsparseCbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCbsrmm_rank_0(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipsparseCbsrmm_rank_0 = hipsparseCbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCbsrmm_rank_1(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseCbsrmm_rank_1 = hipsparseCbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZbsrmm_full_rank(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseZbsrmm_full_rank = hipsparseZbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZbsrmm_rank_0(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipsparseZbsrmm_rank_0 = hipsparseZbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZbsrmm_rank_1(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseZbsrmm_rank_1 = hipsparseZbsrmm_(handle,dirA,transA,transB,mb,n,kb,nnzb,alpha,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseScsrmm_full_rank(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseScsrmm_full_rank = hipsparseScsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseScsrmm_rank_0(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipsparseScsrmm_rank_0 = hipsparseScsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseScsrmm_rank_1(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseScsrmm_rank_1 = hipsparseScsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDcsrmm_full_rank(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseDcsrmm_full_rank = hipsparseDcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDcsrmm_rank_0(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipsparseDcsrmm_rank_0 = hipsparseDcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDcsrmm_rank_1(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseDcsrmm_rank_1 = hipsparseDcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCcsrmm_full_rank(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseCcsrmm_full_rank = hipsparseCcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCcsrmm_rank_0(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipsparseCcsrmm_rank_0 = hipsparseCcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCcsrmm_rank_1(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseCcsrmm_rank_1 = hipsparseCcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZcsrmm_full_rank(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseZcsrmm_full_rank = hipsparseZcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZcsrmm_rank_0(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipsparseZcsrmm_rank_0 = hipsparseZcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZcsrmm_rank_1(handle,transA,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseZcsrmm_rank_1 = hipsparseZcsrmm_(handle,transA,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseScsrmm2_full_rank(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm2_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseScsrmm2_full_rank = hipsparseScsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseScsrmm2_rank_0(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm2_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipsparseScsrmm2_rank_0 = hipsparseScsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseScsrmm2_rank_1(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrmm2_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseScsrmm2_rank_1 = hipsparseScsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDcsrmm2_full_rank(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm2_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseDcsrmm2_full_rank = hipsparseDcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDcsrmm2_rank_0(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm2_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipsparseDcsrmm2_rank_0 = hipsparseDcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseDcsrmm2_rank_1(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrmm2_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseDcsrmm2_rank_1 = hipsparseDcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCcsrmm2_full_rank(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm2_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseCcsrmm2_full_rank = hipsparseCcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCcsrmm2_rank_0(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm2_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipsparseCcsrmm2_rank_0 = hipsparseCcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseCcsrmm2_rank_1(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrmm2_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseCcsrmm2_rank_1 = hipsparseCcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZcsrmm2_full_rank(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm2_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseZcsrmm2_full_rank = hipsparseZcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZcsrmm2_rank_0(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm2_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipsparseZcsrmm2_rank_0 = hipsparseZcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseZcsrmm2_rank_1(handle,transA,transB,m,n,k,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrmm2_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseZcsrmm2_rank_1 = hipsparseZcsrmm2_(handle,transA,transB,m,n,k,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipsparseSbsrsm2_bufferSize_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsrsm2_bufferSize_rank_0 = hipsparseSbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsrsm2_bufferSize_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsrsm2_bufferSize_rank_1 = hipsparseSbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsrsm2_bufferSize_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsrsm2_bufferSize_rank_0 = hipsparseDbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsrsm2_bufferSize_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsrsm2_bufferSize_rank_1 = hipsparseDbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsrsm2_bufferSize_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsrsm2_bufferSize_rank_0 = hipsparseCbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsrsm2_bufferSize_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsrsm2_bufferSize_rank_1 = hipsparseCbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsrsm2_bufferSize_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsrsm2_bufferSize_rank_0 = hipsparseZbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsrsm2_bufferSize_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsrsm2_bufferSize_rank_1 = hipsparseZbsrsm2_bufferSize_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsrsm2_analysis_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsm2_analysis_rank_0 = hipsparseSbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrsm2_analysis_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsm2_analysis_rank_1 = hipsparseSbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrsm2_analysis_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsm2_analysis_rank_0 = hipsparseDbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrsm2_analysis_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsm2_analysis_rank_1 = hipsparseDbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrsm2_analysis_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsm2_analysis_rank_0 = hipsparseCbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrsm2_analysis_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsm2_analysis_rank_1 = hipsparseCbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrsm2_analysis_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsm2_analysis_rank_0 = hipsparseZbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrsm2_analysis_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsm2_analysis_rank_1 = hipsparseZbsrsm2_analysis_(handle,dirA,transA,transX,mb,nrhs,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrsm2_solve_full_rank(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_solve_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsm2_solve_full_rank = hipsparseSbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseSbsrsm2_solve_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsm2_solve_rank_0 = hipsparseSbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseSbsrsm2_solve_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrsm2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrsm2_solve_rank_1 = hipsparseSbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseDbsrsm2_solve_full_rank(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_solve_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsm2_solve_full_rank = hipsparseDbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseDbsrsm2_solve_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsm2_solve_rank_0 = hipsparseDbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseDbsrsm2_solve_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrsm2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrsm2_solve_rank_1 = hipsparseDbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseCbsrsm2_solve_full_rank(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_solve_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsm2_solve_full_rank = hipsparseCbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseCbsrsm2_solve_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsm2_solve_rank_0 = hipsparseCbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseCbsrsm2_solve_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrsm2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrsm2_solve_rank_1 = hipsparseCbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseZbsrsm2_solve_full_rank(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_solve_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsm2_solve_full_rank = hipsparseZbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseZbsrsm2_solve_rank_0(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_solve_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsm2_solve_rank_0 = hipsparseZbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseZbsrsm2_solve_rank_1(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,B,ldb,X,ldx,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrsm2_solve_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transX integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrsm2_solve_rank_1 = hipsparseZbsrsm2_solve_(handle,dirA,transA,transX,mb,nrhs,nnzb,alpha,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,c_loc(B),ldb,X,ldx,policy,pBuffer) end function function hipsparseScsrsm2_bufferSizeExt_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseScsrsm2_bufferSizeExt_full_rank = hipsparseScsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseScsrsm2_bufferSizeExt_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseScsrsm2_bufferSizeExt_rank_0 = hipsparseScsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseScsrsm2_bufferSizeExt_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseScsrsm2_bufferSizeExt_rank_1 = hipsparseScsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseDcsrsm2_bufferSizeExt_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseDcsrsm2_bufferSizeExt_full_rank = hipsparseDcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseDcsrsm2_bufferSizeExt_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseDcsrsm2_bufferSizeExt_rank_0 = hipsparseDcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseDcsrsm2_bufferSizeExt_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseDcsrsm2_bufferSizeExt_rank_1 = hipsparseDcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseCcsrsm2_bufferSizeExt_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseCcsrsm2_bufferSizeExt_full_rank = hipsparseCcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseCcsrsm2_bufferSizeExt_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseCcsrsm2_bufferSizeExt_rank_0 = hipsparseCcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseCcsrsm2_bufferSizeExt_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseCcsrsm2_bufferSizeExt_rank_1 = hipsparseCcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseZcsrsm2_bufferSizeExt_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseZcsrsm2_bufferSizeExt_full_rank = hipsparseZcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseZcsrsm2_bufferSizeExt_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseZcsrsm2_bufferSizeExt_rank_0 = hipsparseZcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseZcsrsm2_bufferSizeExt_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy integer(c_size_t) :: pBufferSize ! hipsparseZcsrsm2_bufferSizeExt_rank_1 = hipsparseZcsrsm2_bufferSizeExt_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBufferSize) end function function hipsparseScsrsm2_analysis_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_analysis_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsm2_analysis_full_rank = hipsparseScsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseScsrsm2_analysis_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsm2_analysis_rank_0 = hipsparseScsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseScsrsm2_analysis_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsm2_analysis_rank_1 = hipsparseScsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseDcsrsm2_analysis_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_analysis_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsm2_analysis_full_rank = hipsparseDcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseDcsrsm2_analysis_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsm2_analysis_rank_0 = hipsparseDcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseDcsrsm2_analysis_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsm2_analysis_rank_1 = hipsparseDcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseCcsrsm2_analysis_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_analysis_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsm2_analysis_full_rank = hipsparseCcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseCcsrsm2_analysis_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsm2_analysis_rank_0 = hipsparseCcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseCcsrsm2_analysis_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsm2_analysis_rank_1 = hipsparseCcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseZcsrsm2_analysis_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_analysis_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsm2_analysis_full_rank = hipsparseZcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseZcsrsm2_analysis_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsm2_analysis_rank_0 = hipsparseZcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseZcsrsm2_analysis_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsm2_analysis_rank_1 = hipsparseZcsrsm2_analysis_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseScsrsm2_solve_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_solve_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsm2_solve_full_rank = hipsparseScsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseScsrsm2_solve_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_solve_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsm2_solve_rank_0 = hipsparseScsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseScsrsm2_solve_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrsm2_solve_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrsm2_solve_rank_1 = hipsparseScsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseDcsrsm2_solve_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_solve_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsm2_solve_full_rank = hipsparseDcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseDcsrsm2_solve_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_solve_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsm2_solve_rank_0 = hipsparseDcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseDcsrsm2_solve_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrsm2_solve_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrsm2_solve_rank_1 = hipsparseDcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseCcsrsm2_solve_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_solve_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsm2_solve_full_rank = hipsparseCcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseCcsrsm2_solve_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_solve_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsm2_solve_rank_0 = hipsparseCcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseCcsrsm2_solve_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrsm2_solve_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrsm2_solve_rank_1 = hipsparseCcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseZcsrsm2_solve_full_rank(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_solve_full_rank type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsm2_solve_full_rank = hipsparseZcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseZcsrsm2_solve_rank_0(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_solve_rank_0 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsm2_solve_rank_0 = hipsparseZcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseZcsrsm2_solve_rank_1(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,B,ldb,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrsm2_solve_rank_1 type(c_ptr) :: handle integer(c_int) :: algo integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrsm2_solve_rank_1 = hipsparseZcsrsm2_solve_(handle,algo,transA,transB,m,nrhs,nnz,alpha,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),c_loc(B),ldb,myInfo,policy,pBuffer) end function function hipsparseSgemmi_full_rank(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemmi_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseSgemmi_full_rank = hipsparseSgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseSgemmi_rank_0(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemmi_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: cscValB integer(c_int),target :: cscColPtrB integer(c_int),target :: cscRowIndB real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipsparseSgemmi_rank_0 = hipsparseSgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseSgemmi_rank_1(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgemmi_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseSgemmi_rank_1 = hipsparseSgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseDgemmi_full_rank(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemmi_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseDgemmi_full_rank = hipsparseDgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseDgemmi_rank_0(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemmi_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: cscValB integer(c_int),target :: cscColPtrB integer(c_int),target :: cscRowIndB real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipsparseDgemmi_rank_0 = hipsparseDgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseDgemmi_rank_1(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgemmi_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseDgemmi_rank_1 = hipsparseDgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseCgemmi_full_rank(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemmi_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseCgemmi_full_rank = hipsparseCgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseCgemmi_rank_0(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemmi_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: cscValB integer(c_int),target :: cscColPtrB integer(c_int),target :: cscRowIndB complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipsparseCgemmi_rank_0 = hipsparseCgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseCgemmi_rank_1(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgemmi_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseCgemmi_rank_1 = hipsparseCgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseZgemmi_full_rank(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemmi_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipsparseZgemmi_full_rank = hipsparseZgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseZgemmi_rank_0(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemmi_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: cscValB integer(c_int),target :: cscColPtrB integer(c_int),target :: cscRowIndB complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipsparseZgemmi_rank_0 = hipsparseZgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseZgemmi_rank_1(handle,m,n,k,nnz,alpha,A,lda,cscValB,cscColPtrB,cscRowIndB,beta,C,ldc) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgemmi_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: cscValB integer(c_int),target,dimension(:) :: cscColPtrB integer(c_int),target,dimension(:) :: cscRowIndB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipsparseZgemmi_rank_1 = hipsparseZgemmi_(handle,m,n,k,nnz,alpha,c_loc(A),lda,c_loc(cscValB),c_loc(cscColPtrB),c_loc(cscRowIndB),beta,c_loc(C),ldc) end function function hipsparseXcsrgeamNnz_rank_0(handle,m,n,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgeamNnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr ! hipsparseXcsrgeamNnz_rank_0 = hipsparseXcsrgeamNnz_(handle,m,n,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr) end function function hipsparseXcsrgeamNnz_rank_1(handle,m,n,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgeamNnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr ! hipsparseXcsrgeamNnz_rank_1 = hipsparseXcsrgeamNnz_(handle,m,n,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr) end function function hipsparseScsrgeam_rank_0(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseScsrgeam_rank_0 = hipsparseScsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseScsrgeam_rank_1(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseScsrgeam_rank_1 = hipsparseScsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDcsrgeam_rank_0(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseDcsrgeam_rank_0 = hipsparseDcsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDcsrgeam_rank_1(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseDcsrgeam_rank_1 = hipsparseDcsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCcsrgeam_rank_0(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA complex(c_float_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC complex(c_float_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseCcsrgeam_rank_0 = hipsparseCcsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCcsrgeam_rank_1(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA complex(c_float_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseCcsrgeam_rank_1 = hipsparseCcsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZcsrgeam_rank_0(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA complex(c_double_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC complex(c_double_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseZcsrgeam_rank_0 = hipsparseZcsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZcsrgeam_rank_1(handle,m,n,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,beta,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA complex(c_double_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseZcsrgeam_rank_1 = hipsparseZcsrgeam_(handle,m,n,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),beta,descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseScsrgeam2_bufferSizeExt_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC real(c_float),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseScsrgeam2_bufferSizeExt_rank_0 = hipsparseScsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseScsrgeam2_bufferSizeExt_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseScsrgeam2_bufferSizeExt_rank_1 = hipsparseScsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseDcsrgeam2_bufferSizeExt_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC real(c_double),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDcsrgeam2_bufferSizeExt_rank_0 = hipsparseDcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseDcsrgeam2_bufferSizeExt_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDcsrgeam2_bufferSizeExt_rank_1 = hipsparseDcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseCcsrgeam2_bufferSizeExt_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC complex(c_float_complex),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCcsrgeam2_bufferSizeExt_rank_0 = hipsparseCcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseCcsrgeam2_bufferSizeExt_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCcsrgeam2_bufferSizeExt_rank_1 = hipsparseCcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseZcsrgeam2_bufferSizeExt_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC complex(c_double_complex),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZcsrgeam2_bufferSizeExt_rank_0 = hipsparseZcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseZcsrgeam2_bufferSizeExt_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZcsrgeam2_bufferSizeExt_rank_1 = hipsparseZcsrgeam2_bufferSizeExt_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBufferSizeInBytes) end function function hipsparseXcsrgeam2Nnz_rank_0(handle,m,n,descrA,nnzA,csrSortedRowPtrA,csrSortedColIndA,descrB,nnzB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedRowPtrC,nnzTotalDevHostPtr,workspace) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgeam2Nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC integer(c_int),target :: csrSortedRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: workspace ! hipsparseXcsrgeam2Nnz_rank_0 = hipsparseXcsrgeam2Nnz_(handle,m,n,descrA,nnzA,c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),descrB,nnzB,c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedRowPtrC),nnzTotalDevHostPtr,workspace) end function function hipsparseXcsrgeam2Nnz_rank_1(handle,m,n,descrA,nnzA,csrSortedRowPtrA,csrSortedColIndA,descrB,nnzB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedRowPtrC,nnzTotalDevHostPtr,workspace) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgeam2Nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: workspace ! hipsparseXcsrgeam2Nnz_rank_1 = hipsparseXcsrgeam2Nnz_(handle,m,n,descrA,nnzA,c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),descrB,nnzB,c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedRowPtrC),nnzTotalDevHostPtr,workspace) end function function hipsparseScsrgeam2_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_float) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC real(c_float),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseScsrgeam2_rank_0 = hipsparseScsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseScsrgeam2_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgeam2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_float) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseScsrgeam2_rank_1 = hipsparseScsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseDcsrgeam2_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA real(c_double) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC real(c_double),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseDcsrgeam2_rank_0 = hipsparseDcsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseDcsrgeam2_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgeam2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA real(c_double) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseDcsrgeam2_rank_1 = hipsparseDcsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseCcsrgeam2_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_float_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC complex(c_float_complex),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseCcsrgeam2_rank_0 = hipsparseCcsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseCcsrgeam2_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgeam2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_float_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseCcsrgeam2_rank_1 = hipsparseCcsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseZcsrgeam2_rank_0(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA complex(c_double_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target :: csrSortedValB integer(c_int),target :: csrSortedRowPtrB integer(c_int),target :: csrSortedColIndB type(c_ptr) :: descrC complex(c_double_complex),target :: csrSortedValC integer(c_int),target :: csrSortedRowPtrC integer(c_int),target :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseZcsrgeam2_rank_0 = hipsparseZcsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseZcsrgeam2_rank_1(handle,m,n,alpha,descrA,nnzA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,beta,descrB,nnzB,csrSortedValB,csrSortedRowPtrB,csrSortedColIndB,descrC,csrSortedValC,csrSortedRowPtrC,csrSortedColIndC,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgeam2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA complex(c_double_complex) :: beta type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target,dimension(:) :: csrSortedValB integer(c_int),target,dimension(:) :: csrSortedRowPtrB integer(c_int),target,dimension(:) :: csrSortedColIndB type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrSortedValC integer(c_int),target,dimension(:) :: csrSortedRowPtrC integer(c_int),target,dimension(:) :: csrSortedColIndC type(c_ptr) :: pBuffer ! hipsparseZcsrgeam2_rank_1 = hipsparseZcsrgeam2_(handle,m,n,alpha,descrA,nnzA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),beta,descrB,nnzB,c_loc(csrSortedValB),c_loc(csrSortedRowPtrB),c_loc(csrSortedColIndB),descrC,c_loc(csrSortedValC),c_loc(csrSortedRowPtrC),c_loc(csrSortedColIndC),pBuffer) end function function hipsparseXcsrgemmNnz_rank_0(handle,transA,transB,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgemmNnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr ! hipsparseXcsrgemmNnz_rank_0 = hipsparseXcsrgemmNnz_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr) end function function hipsparseXcsrgemmNnz_rank_1(handle,transA,transB,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrC,csrRowPtrC,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgemmNnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr ! hipsparseXcsrgemmNnz_rank_1 = hipsparseXcsrgemmNnz_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr) end function function hipsparseScsrgemm_rank_0(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseScsrgemm_rank_0 = hipsparseScsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseScsrgemm_rank_1(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseScsrgemm_rank_1 = hipsparseScsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDcsrgemm_rank_0(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseDcsrgemm_rank_0 = hipsparseDcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDcsrgemm_rank_1(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseDcsrgemm_rank_1 = hipsparseDcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCcsrgemm_rank_0(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC complex(c_float_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseCcsrgemm_rank_0 = hipsparseCcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCcsrgemm_rank_1(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseCcsrgemm_rank_1 = hipsparseCcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZcsrgemm_rank_0(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrC complex(c_double_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseZcsrgemm_rank_0 = hipsparseZcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZcsrgemm_rank_1(handle,transA,transB,m,n,k,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transA integer(kind(HIPSPARSE_OPERATION_NON_TRANSPOSE)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseZcsrgemm_rank_1 = hipsparseZcsrgemm_(handle,transA,transB,m,n,k,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseScsrgemm2_bufferSizeExt_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB real(c_float) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseScsrgemm2_bufferSizeExt_rank_0 = hipsparseScsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseScsrgemm2_bufferSizeExt_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB real(c_float) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseScsrgemm2_bufferSizeExt_rank_1 = hipsparseScsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseDcsrgemm2_bufferSizeExt_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB real(c_double) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDcsrgemm2_bufferSizeExt_rank_0 = hipsparseDcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseDcsrgemm2_bufferSizeExt_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB real(c_double) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDcsrgemm2_bufferSizeExt_rank_1 = hipsparseDcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseCcsrgemm2_bufferSizeExt_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB complex(c_float_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCcsrgemm2_bufferSizeExt_rank_0 = hipsparseCcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseCcsrgemm2_bufferSizeExt_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB complex(c_float_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCcsrgemm2_bufferSizeExt_rank_1 = hipsparseCcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseZcsrgemm2_bufferSizeExt_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB complex(c_double_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZcsrgemm2_bufferSizeExt_rank_0 = hipsparseZcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseZcsrgemm2_bufferSizeExt_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrRowPtrD,csrColIndD,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB complex(c_double_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZcsrgemm2_bufferSizeExt_rank_1 = hipsparseZcsrgemm2_bufferSizeExt_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),myInfo,pBufferSizeInBytes) end function function hipsparseXcsrgemm2Nnz_rank_0(handle,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrD,nnzD,csrRowPtrD,csrColIndD,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgemm2Nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseXcsrgemm2Nnz_rank_0 = hipsparseXcsrgemm2Nnz_(handle,m,n,k,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,myInfo,pBuffer) end function function hipsparseXcsrgemm2Nnz_rank_1(handle,m,n,k,descrA,nnzA,csrRowPtrA,csrColIndA,descrB,nnzB,csrRowPtrB,csrColIndB,descrD,nnzD,csrRowPtrD,csrColIndD,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrgemm2Nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB type(c_ptr) :: descrD integer(c_int) :: nnzD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseXcsrgemm2Nnz_rank_1 = hipsparseXcsrgemm2Nnz_(handle,m,n,k,descrA,nnzA,c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrRowPtrB),c_loc(csrColIndB),descrD,nnzD,c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,myInfo,pBuffer) end function function hipsparseScsrgemm2_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB real(c_float) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD real(c_float),target :: csrValD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseScsrgemm2_rank_0 = hipsparseScsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseScsrgemm2_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrgemm2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_float),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB real(c_float) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD real(c_float),target,dimension(:) :: csrValD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseScsrgemm2_rank_1 = hipsparseScsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseDcsrgemm2_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB real(c_double) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD real(c_double),target :: csrValD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseDcsrgemm2_rank_0 = hipsparseDcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseDcsrgemm2_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrgemm2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB real(c_double),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB real(c_double) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD real(c_double),target,dimension(:) :: csrValD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseDcsrgemm2_rank_1 = hipsparseDcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseCcsrgemm2_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB complex(c_float_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD complex(c_float_complex),target :: csrValD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: descrC complex(c_float_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseCcsrgemm2_rank_0 = hipsparseCcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseCcsrgemm2_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrgemm2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_float_complex),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB complex(c_float_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD complex(c_float_complex),target,dimension(:) :: csrValD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseCcsrgemm2_rank_1 = hipsparseCcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseZcsrgemm2_rank_0(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target :: csrValB integer(c_int),target :: csrRowPtrB integer(c_int),target :: csrColIndB complex(c_double_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD complex(c_double_complex),target :: csrValD integer(c_int),target :: csrRowPtrD integer(c_int),target :: csrColIndD type(c_ptr) :: descrC complex(c_double_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseZcsrgemm2_rank_0 = hipsparseZcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseZcsrgemm2_rank_1(handle,m,n,k,alpha,descrA,nnzA,csrValA,csrRowPtrA,csrColIndA,descrB,nnzB,csrValB,csrRowPtrB,csrColIndB,beta,descrD,nnzD,csrValD,csrRowPtrD,csrColIndD,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrgemm2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descrA integer(c_int) :: nnzA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: descrB integer(c_int) :: nnzB complex(c_double_complex),target,dimension(:) :: csrValB integer(c_int),target,dimension(:) :: csrRowPtrB integer(c_int),target,dimension(:) :: csrColIndB complex(c_double_complex) :: beta type(c_ptr) :: descrD integer(c_int) :: nnzD complex(c_double_complex),target,dimension(:) :: csrValD integer(c_int),target,dimension(:) :: csrRowPtrD integer(c_int),target,dimension(:) :: csrColIndD type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseZcsrgemm2_rank_1 = hipsparseZcsrgemm2_(handle,m,n,k,alpha,descrA,nnzA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),descrB,nnzB,c_loc(csrValB),c_loc(csrRowPtrB),c_loc(csrColIndB),beta,descrD,nnzD,c_loc(csrValD),c_loc(csrRowPtrD),c_loc(csrColIndD),descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,pBuffer) end function function hipsparseSbsrilu02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsrilu02_bufferSize_rank_0 = hipsparseSbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsrilu02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsrilu02_bufferSize_rank_1 = hipsparseSbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsrilu02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsrilu02_bufferSize_rank_0 = hipsparseDbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsrilu02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsrilu02_bufferSize_rank_1 = hipsparseDbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsrilu02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsrilu02_bufferSize_rank_0 = hipsparseCbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsrilu02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsrilu02_bufferSize_rank_1 = hipsparseCbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsrilu02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsrilu02_bufferSize_rank_0 = hipsparseZbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsrilu02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsrilu02_bufferSize_rank_1 = hipsparseZbsrilu02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsrilu02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrilu02_analysis_rank_0 = hipsparseSbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrilu02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrilu02_analysis_rank_1 = hipsparseSbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrilu02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrilu02_analysis_rank_0 = hipsparseDbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrilu02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrilu02_analysis_rank_1 = hipsparseDbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrilu02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrilu02_analysis_rank_0 = hipsparseCbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrilu02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrilu02_analysis_rank_1 = hipsparseCbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrilu02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrilu02_analysis_rank_0 = hipsparseZbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrilu02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrilu02_analysis_rank_1 = hipsparseZbsrilu02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrilu02_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrSortedValA_valM integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrilu02_rank_0 = hipsparseSbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsrilu02_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsrilu02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrSortedValA_valM integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsrilu02_rank_1 = hipsparseSbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrilu02_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrSortedValA_valM integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrilu02_rank_0 = hipsparseDbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsrilu02_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsrilu02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrSortedValA_valM integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsrilu02_rank_1 = hipsparseDbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrilu02_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrSortedValA_valM integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrilu02_rank_0 = hipsparseCbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsrilu02_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsrilu02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrSortedValA_valM integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsrilu02_rank_1 = hipsparseCbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrilu02_rank_0(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrSortedValA_valM integer(c_int),target :: bsrSortedRowPtrA integer(c_int),target :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrilu02_rank_0 = hipsparseZbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsrilu02_rank_1(handle,dirA,mb,nnzb,descrA,bsrSortedValA_valM,bsrSortedRowPtrA,bsrSortedColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsrilu02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrSortedValA_valM integer(c_int),target,dimension(:) :: bsrSortedRowPtrA integer(c_int),target,dimension(:) :: bsrSortedColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsrilu02_rank_1 = hipsparseZbsrilu02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrSortedValA_valM),c_loc(bsrSortedRowPtrA),c_loc(bsrSortedColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseScsrilu02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseScsrilu02_bufferSize_rank_0 = hipsparseScsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseScsrilu02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseScsrilu02_bufferSize_rank_1 = hipsparseScsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseDcsrilu02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDcsrilu02_bufferSize_rank_0 = hipsparseDcsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseDcsrilu02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDcsrilu02_bufferSize_rank_1 = hipsparseDcsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseCcsrilu02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCcsrilu02_bufferSize_rank_0 = hipsparseCcsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseCcsrilu02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCcsrilu02_bufferSize_rank_1 = hipsparseCcsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseZcsrilu02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZcsrilu02_bufferSize_rank_0 = hipsparseZcsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseZcsrilu02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZcsrilu02_bufferSize_rank_1 = hipsparseZcsrilu02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseScsrilu02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseScsrilu02_bufferSizeExt_rank_0 = hipsparseScsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseScsrilu02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseScsrilu02_bufferSizeExt_rank_1 = hipsparseScsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseDcsrilu02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDcsrilu02_bufferSizeExt_rank_0 = hipsparseDcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseDcsrilu02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDcsrilu02_bufferSizeExt_rank_1 = hipsparseDcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseCcsrilu02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCcsrilu02_bufferSizeExt_rank_0 = hipsparseCcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseCcsrilu02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCcsrilu02_bufferSizeExt_rank_1 = hipsparseCcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseZcsrilu02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZcsrilu02_bufferSizeExt_rank_0 = hipsparseZcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseZcsrilu02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZcsrilu02_bufferSizeExt_rank_1 = hipsparseZcsrilu02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseScsrilu02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrilu02_analysis_rank_0 = hipsparseScsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsrilu02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrilu02_analysis_rank_1 = hipsparseScsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsrilu02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrilu02_analysis_rank_0 = hipsparseDcsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsrilu02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrilu02_analysis_rank_1 = hipsparseDcsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsrilu02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrilu02_analysis_rank_0 = hipsparseCcsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsrilu02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrilu02_analysis_rank_1 = hipsparseCcsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsrilu02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrilu02_analysis_rank_0 = hipsparseZcsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsrilu02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrilu02_analysis_rank_1 = hipsparseZcsrilu02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsrilu02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrilu02_rank_0 = hipsparseScsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsrilu02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrilu02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsrilu02_rank_1 = hipsparseScsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsrilu02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrilu02_rank_0 = hipsparseDcsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsrilu02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrilu02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsrilu02_rank_1 = hipsparseDcsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsrilu02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrilu02_rank_0 = hipsparseCcsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsrilu02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrilu02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsrilu02_rank_1 = hipsparseCcsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsrilu02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrilu02_rank_0 = hipsparseZcsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsrilu02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrilu02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsrilu02_rank_1 = hipsparseZcsrilu02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseSbsric02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsric02_bufferSize_rank_0 = hipsparseSbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsric02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseSbsric02_bufferSize_rank_1 = hipsparseSbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsric02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsric02_bufferSize_rank_0 = hipsparseDbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseDbsric02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDbsric02_bufferSize_rank_1 = hipsparseDbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsric02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsric02_bufferSize_rank_0 = hipsparseCbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseCbsric02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCbsric02_bufferSize_rank_1 = hipsparseCbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsric02_bufferSize_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsric02_bufferSize_rank_0 = hipsparseZbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseZbsric02_bufferSize_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZbsric02_bufferSize_rank_1 = hipsparseZbsric02_bufferSize_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,pBufferSizeInBytes) end function function hipsparseSbsric02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsric02_analysis_rank_0 = hipsparseSbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsric02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsric02_analysis_rank_1 = hipsparseSbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsric02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsric02_analysis_rank_0 = hipsparseDbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsric02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsric02_analysis_rank_1 = hipsparseDbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsric02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsric02_analysis_rank_0 = hipsparseCbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsric02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsric02_analysis_rank_1 = hipsparseCbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsric02_analysis_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_analysis_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsric02_analysis_rank_0 = hipsparseZbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsric02_analysis_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_analysis_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsric02_analysis_rank_1 = hipsparseZbsric02_analysis_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsric02_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsric02_rank_0 = hipsparseSbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseSbsric02_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsric02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseSbsric02_rank_1 = hipsparseSbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsric02_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsric02_rank_0 = hipsparseDbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseDbsric02_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsric02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDbsric02_rank_1 = hipsparseDbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsric02_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsric02_rank_0 = hipsparseCbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseCbsric02_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsric02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCbsric02_rank_1 = hipsparseCbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsric02_rank_0(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsric02_rank_0 = hipsparseZbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseZbsric02_rank_1(handle,dirA,mb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsric02_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZbsric02_rank_1 = hipsparseZbsric02_(handle,dirA,mb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,myInfo,policy,pBuffer) end function function hipsparseScsric02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseScsric02_bufferSize_rank_0 = hipsparseScsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseScsric02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseScsric02_bufferSize_rank_1 = hipsparseScsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseDcsric02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDcsric02_bufferSize_rank_0 = hipsparseDcsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseDcsric02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseDcsric02_bufferSize_rank_1 = hipsparseDcsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseCcsric02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCcsric02_bufferSize_rank_0 = hipsparseCcsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseCcsric02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseCcsric02_bufferSize_rank_1 = hipsparseCcsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseZcsric02_bufferSize_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZcsric02_bufferSize_rank_0 = hipsparseZcsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseZcsric02_bufferSize_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_int) :: pBufferSizeInBytes ! hipsparseZcsric02_bufferSize_rank_1 = hipsparseZcsric02_bufferSize_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSizeInBytes) end function function hipsparseScsric02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseScsric02_bufferSizeExt_rank_0 = hipsparseScsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseScsric02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseScsric02_bufferSizeExt_rank_1 = hipsparseScsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseDcsric02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDcsric02_bufferSizeExt_rank_0 = hipsparseDcsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseDcsric02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseDcsric02_bufferSizeExt_rank_1 = hipsparseDcsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseCcsric02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCcsric02_bufferSizeExt_rank_0 = hipsparseCcsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseCcsric02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseCcsric02_bufferSizeExt_rank_1 = hipsparseCcsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseZcsric02_bufferSizeExt_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZcsric02_bufferSizeExt_rank_0 = hipsparseZcsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseZcsric02_bufferSizeExt_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,pBufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSize ! hipsparseZcsric02_bufferSizeExt_rank_1 = hipsparseZcsric02_bufferSizeExt_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,pBufferSize) end function function hipsparseScsric02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsric02_analysis_rank_0 = hipsparseScsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsric02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsric02_analysis_rank_1 = hipsparseScsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsric02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsric02_analysis_rank_0 = hipsparseDcsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsric02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsric02_analysis_rank_1 = hipsparseDcsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsric02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsric02_analysis_rank_0 = hipsparseCcsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsric02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsric02_analysis_rank_1 = hipsparseCcsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsric02_analysis_rank_0(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsric02_analysis_rank_0 = hipsparseZcsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsric02_analysis_rank_1(handle,m,nnz,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsric02_analysis_rank_1 = hipsparseZcsric02_analysis_(handle,m,nnz,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsric02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsric02_rank_0 = hipsparseScsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseScsric02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsric02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseScsric02_rank_1 = hipsparseScsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsric02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsric02_rank_0 = hipsparseDcsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseDcsric02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsric02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseDcsric02_rank_1 = hipsparseDcsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsric02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsric02_rank_0 = hipsparseCcsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseCcsric02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsric02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseCcsric02_rank_1 = hipsparseCcsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsric02_rank_0(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA_valM integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsric02_rank_0 = hipsparseZcsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseZcsric02_rank_1(handle,m,nnz,descrA,csrSortedValA_valM,csrSortedRowPtrA,csrSortedColIndA,myInfo,policy,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsric02_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA_valM integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: myInfo integer(kind(HIPSPARSE_SOLVE_POLICY_NO_LEVEL)) :: policy type(c_ptr) :: pBuffer ! hipsparseZcsric02_rank_1 = hipsparseZcsric02_(handle,m,nnz,descrA,c_loc(csrSortedValA_valM),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),myInfo,policy,pBuffer) end function function hipsparseSgtsv2_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2_bufferSizeExt_full_rank = hipsparseSgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseSgtsv2_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2_bufferSizeExt_rank_0 = hipsparseSgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseSgtsv2_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2_bufferSizeExt_rank_1 = hipsparseSgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseDgtsv2_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: db integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2_bufferSizeExt_full_rank = hipsparseDgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),db,pBufferSizeInBytes) end function function hipsparseDgtsv2_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: db integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2_bufferSizeExt_rank_0 = hipsparseDgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),db,pBufferSizeInBytes) end function function hipsparseDgtsv2_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: db integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2_bufferSizeExt_rank_1 = hipsparseDgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),db,pBufferSizeInBytes) end function function hipsparseCgtsv2_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2_bufferSizeExt_full_rank = hipsparseCgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseCgtsv2_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2_bufferSizeExt_rank_0 = hipsparseCgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseCgtsv2_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2_bufferSizeExt_rank_1 = hipsparseCgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseZgtsv2_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2_bufferSizeExt_full_rank = hipsparseZgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseZgtsv2_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2_bufferSizeExt_rank_0 = hipsparseZgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseZgtsv2_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2_bufferSizeExt_rank_1 = hipsparseZgtsv2_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseSgtsv2_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseSgtsv2_full_rank = hipsparseSgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseSgtsv2_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseSgtsv2_rank_0 = hipsparseSgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseSgtsv2_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseSgtsv2_rank_1 = hipsparseSgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseDgtsv2_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseDgtsv2_full_rank = hipsparseDgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseDgtsv2_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseDgtsv2_rank_0 = hipsparseDgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseDgtsv2_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseDgtsv2_rank_1 = hipsparseDgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseCgtsv2_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseCgtsv2_full_rank = hipsparseCgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseCgtsv2_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseCgtsv2_rank_0 = hipsparseCgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseCgtsv2_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseCgtsv2_rank_1 = hipsparseCgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseZgtsv2_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseZgtsv2_full_rank = hipsparseZgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseZgtsv2_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseZgtsv2_rank_0 = hipsparseZgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseZgtsv2_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseZgtsv2_rank_1 = hipsparseZgtsv2_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseSgtsv2_nopivot_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2_nopivot_bufferSizeExt_full_rank = hipsparseSgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseSgtsv2_nopivot_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2_nopivot_bufferSizeExt_rank_0 = hipsparseSgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseSgtsv2_nopivot_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2_nopivot_bufferSizeExt_rank_1 = hipsparseSgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseDgtsv2_nopivot_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: db integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2_nopivot_bufferSizeExt_full_rank = hipsparseDgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),db,pBufferSizeInBytes) end function function hipsparseDgtsv2_nopivot_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: db integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2_nopivot_bufferSizeExt_rank_0 = hipsparseDgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),db,pBufferSizeInBytes) end function function hipsparseDgtsv2_nopivot_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,db,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: db integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2_nopivot_bufferSizeExt_rank_1 = hipsparseDgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),db,pBufferSizeInBytes) end function function hipsparseCgtsv2_nopivot_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2_nopivot_bufferSizeExt_full_rank = hipsparseCgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseCgtsv2_nopivot_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2_nopivot_bufferSizeExt_rank_0 = hipsparseCgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseCgtsv2_nopivot_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2_nopivot_bufferSizeExt_rank_1 = hipsparseCgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseZgtsv2_nopivot_bufferSizeExt_full_rank(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2_nopivot_bufferSizeExt_full_rank = hipsparseZgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseZgtsv2_nopivot_bufferSizeExt_rank_0(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2_nopivot_bufferSizeExt_rank_0 = hipsparseZgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseZgtsv2_nopivot_bufferSizeExt_rank_1(handle,m,n,dl,d,du,B,ldb,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2_nopivot_bufferSizeExt_rank_1 = hipsparseZgtsv2_nopivot_bufferSizeExt_(handle,m,n,dl,d,du,c_loc(B),ldb,pBufferSizeInBytes) end function function hipsparseSgtsv2_nopivot_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseSgtsv2_nopivot_full_rank = hipsparseSgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseSgtsv2_nopivot_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseSgtsv2_nopivot_rank_0 = hipsparseSgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseSgtsv2_nopivot_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2_nopivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseSgtsv2_nopivot_rank_1 = hipsparseSgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseDgtsv2_nopivot_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseDgtsv2_nopivot_full_rank = hipsparseDgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseDgtsv2_nopivot_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseDgtsv2_nopivot_rank_0 = hipsparseDgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseDgtsv2_nopivot_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2_nopivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseDgtsv2_nopivot_rank_1 = hipsparseDgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseCgtsv2_nopivot_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseCgtsv2_nopivot_full_rank = hipsparseCgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseCgtsv2_nopivot_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseCgtsv2_nopivot_rank_0 = hipsparseCgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseCgtsv2_nopivot_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2_nopivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseCgtsv2_nopivot_rank_1 = hipsparseCgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseZgtsv2_nopivot_full_rank(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseZgtsv2_nopivot_full_rank = hipsparseZgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseZgtsv2_nopivot_rank_0(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseZgtsv2_nopivot_rank_0 = hipsparseZgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseZgtsv2_nopivot_rank_1(handle,m,n,dl,d,du,B,ldb,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2_nopivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: pBuffer ! hipsparseZgtsv2_nopivot_rank_1 = hipsparseZgtsv2_nopivot_(handle,m,n,dl,d,du,c_loc(B),ldb,pBuffer) end function function hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_0 = hipsparseSgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseSgtsv2StridedBatch_bufferSizeExt_rank_1 = hipsparseSgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_0 = hipsparseDgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDgtsv2StridedBatch_bufferSizeExt_rank_1 = hipsparseDgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_0 = hipsparseCgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCgtsv2StridedBatch_bufferSizeExt_rank_1 = hipsparseCgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_0 = hipsparseZgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZgtsv2StridedBatch_bufferSizeExt_rank_1 = hipsparseZgtsv2StridedBatch_bufferSizeExt_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBufferSizeInBytes) end function function hipsparseSgtsv2StridedBatch_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2StridedBatch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseSgtsv2StridedBatch_rank_0 = hipsparseSgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseSgtsv2StridedBatch_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgtsv2StridedBatch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseSgtsv2StridedBatch_rank_1 = hipsparseSgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseDgtsv2StridedBatch_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2StridedBatch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseDgtsv2StridedBatch_rank_0 = hipsparseDgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseDgtsv2StridedBatch_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgtsv2StridedBatch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseDgtsv2StridedBatch_rank_1 = hipsparseDgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseCgtsv2StridedBatch_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2StridedBatch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseCgtsv2StridedBatch_rank_0 = hipsparseCgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseCgtsv2StridedBatch_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgtsv2StridedBatch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseCgtsv2StridedBatch_rank_1 = hipsparseCgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseZgtsv2StridedBatch_rank_0(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2StridedBatch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseZgtsv2StridedBatch_rank_0 = hipsparseZgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseZgtsv2StridedBatch_rank_1(handle,m,dl,d,du,x,batchCount,batchStride,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgtsv2StridedBatch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: batchCount integer(c_int) :: batchStride type(c_ptr) :: pBuffer ! hipsparseZgtsv2StridedBatch_rank_1 = hipsparseZgtsv2StridedBatch_(handle,m,dl,d,du,c_loc(x),batchCount,batchStride,pBuffer) end function function hipsparseSnnz_full_rank(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseSnnz_full_rank = hipsparseSnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseSnnz_rank_0(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseSnnz_rank_0 = hipsparseSnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseSnnz_rank_1(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseSnnz_rank_1 = hipsparseSnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseDnnz_full_rank(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseDnnz_full_rank = hipsparseDnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseDnnz_rank_0(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseDnnz_rank_0 = hipsparseDnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseDnnz_rank_1(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseDnnz_rank_1 = hipsparseDnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseCnnz_full_rank(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseCnnz_full_rank = hipsparseCnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseCnnz_rank_0(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseCnnz_rank_0 = hipsparseCnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseCnnz_rank_1(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseCnnz_rank_1 = hipsparseCnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseZnnz_full_rank(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_full_rank type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseZnnz_full_rank = hipsparseZnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseZnnz_rank_0(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseZnnz_rank_0 = hipsparseZnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseZnnz_rank_1(handle,dirA,m,n,descrA,A,lda,nnzPerRowColumn,nnzTotalDevHostPtr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: nnzPerRowColumn integer(c_int) :: nnzTotalDevHostPtr ! hipsparseZnnz_rank_1 = hipsparseZnnz_(handle,dirA,m,n,descrA,c_loc(A),lda,c_loc(nnzPerRowColumn),nnzTotalDevHostPtr) end function function hipsparseSdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseSdense2csr_full_rank = hipsparseSdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseSdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! hipsparseSdense2csr_rank_0 = hipsparseSdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseSdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseSdense2csr_rank_1 = hipsparseSdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseDdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseDdense2csr_full_rank = hipsparseDdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseDdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! hipsparseDdense2csr_rank_0 = hipsparseDdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseDdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseDdense2csr_rank_1 = hipsparseDdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseCdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseCdense2csr_full_rank = hipsparseCdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseCdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! hipsparseCdense2csr_rank_0 = hipsparseCdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseCdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseCdense2csr_rank_1 = hipsparseCdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseZdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseZdense2csr_full_rank = hipsparseZdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseZdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! hipsparseZdense2csr_rank_0 = hipsparseZdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseZdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! hipsparseZdense2csr_rank_1 = hipsparseZdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function hipsparseSpruneDense2csr_bufferSize_full_rank(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csr_bufferSize_full_rank = hipsparseSpruneDense2csr_bufferSize_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseSpruneDense2csr_bufferSize_rank_0(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd integer(c_size_t),target :: bufferSize ! hipsparseSpruneDense2csr_bufferSize_rank_0 = hipsparseSpruneDense2csr_bufferSize_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseSpruneDense2csr_bufferSize_rank_1(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csr_bufferSize_rank_1 = hipsparseSpruneDense2csr_bufferSize_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseDpruneDense2csr_bufferSize_full_rank(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csr_bufferSize_full_rank = hipsparseDpruneDense2csr_bufferSize_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseDpruneDense2csr_bufferSize_rank_0(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd integer(c_size_t),target :: bufferSize ! hipsparseDpruneDense2csr_bufferSize_rank_0 = hipsparseDpruneDense2csr_bufferSize_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseDpruneDense2csr_bufferSize_rank_1(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csr_bufferSize_rank_1 = hipsparseDpruneDense2csr_bufferSize_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseSpruneDense2csr_bufferSizeExt_full_rank(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csr_bufferSizeExt_full_rank = hipsparseSpruneDense2csr_bufferSizeExt_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseSpruneDense2csr_bufferSizeExt_rank_0(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd integer(c_size_t),target :: bufferSize ! hipsparseSpruneDense2csr_bufferSizeExt_rank_0 = hipsparseSpruneDense2csr_bufferSizeExt_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseSpruneDense2csr_bufferSizeExt_rank_1(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csr_bufferSizeExt_rank_1 = hipsparseSpruneDense2csr_bufferSizeExt_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseDpruneDense2csr_bufferSizeExt_full_rank(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csr_bufferSizeExt_full_rank = hipsparseDpruneDense2csr_bufferSizeExt_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseDpruneDense2csr_bufferSizeExt_rank_0(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd integer(c_size_t),target :: bufferSize ! hipsparseDpruneDense2csr_bufferSizeExt_rank_0 = hipsparseDpruneDense2csr_bufferSizeExt_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseDpruneDense2csr_bufferSizeExt_rank_1(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csr_bufferSizeExt_rank_1 = hipsparseDpruneDense2csr_bufferSizeExt_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),c_loc(bufferSize)) end function function hipsparseSpruneDense2csrNnz_full_rank(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnz_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseSpruneDense2csrNnz_full_rank = hipsparseSpruneDense2csrNnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,buffer) end function function hipsparseSpruneDense2csrNnz_rank_0(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr integer(c_int),target :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseSpruneDense2csrNnz_rank_0 = hipsparseSpruneDense2csrNnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,buffer) end function function hipsparseSpruneDense2csrNnz_rank_1(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseSpruneDense2csrNnz_rank_1 = hipsparseSpruneDense2csrNnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,buffer) end function function hipsparseDpruneDense2csrNnz_full_rank(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnz_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseDpruneDense2csrNnz_full_rank = hipsparseDpruneDense2csrNnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,buffer) end function function hipsparseDpruneDense2csrNnz_rank_0(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr integer(c_int),target :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseDpruneDense2csrNnz_rank_0 = hipsparseDpruneDense2csrNnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,buffer) end function function hipsparseDpruneDense2csrNnz_rank_1(handle,m,n,A,lda,threshold,descr,csrRowPtr,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseDpruneDense2csrNnz_rank_1 = hipsparseDpruneDense2csrNnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,buffer) end function function hipsparseSpruneDense2csr_full_rank(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: buffer ! hipsparseSpruneDense2csr_full_rank = hipsparseSpruneDense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),buffer) end function function hipsparseSpruneDense2csr_rank_0(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: buffer ! hipsparseSpruneDense2csr_rank_0 = hipsparseSpruneDense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),buffer) end function function hipsparseSpruneDense2csr_rank_1(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: buffer ! hipsparseSpruneDense2csr_rank_1 = hipsparseSpruneDense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),buffer) end function function hipsparseDpruneDense2csr_full_rank(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: buffer ! hipsparseDpruneDense2csr_full_rank = hipsparseDpruneDense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),buffer) end function function hipsparseDpruneDense2csr_rank_0(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: buffer ! hipsparseDpruneDense2csr_rank_0 = hipsparseDpruneDense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),buffer) end function function hipsparseDpruneDense2csr_rank_1(handle,m,n,A,lda,threshold,descr,csrVal,csrRowPtr,csrColInd,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: buffer ! hipsparseDpruneDense2csr_rank_1 = hipsparseDpruneDense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),buffer) end function function hipsparseSpruneDense2csrByPercentage_bufferSize_full_rank(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csrByPercentage_bufferSize_full_rank = hipsparseSpruneDense2csrByPercentage_bufferSize_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneDense2csrByPercentage_bufferSize_rank_0(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseSpruneDense2csrByPercentage_bufferSize_rank_0 = hipsparseSpruneDense2csrByPercentage_bufferSize_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneDense2csrByPercentage_bufferSize_rank_1(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csrByPercentage_bufferSize_rank_1 = hipsparseSpruneDense2csrByPercentage_bufferSize_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneDense2csrByPercentage_bufferSize_full_rank(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csrByPercentage_bufferSize_full_rank = hipsparseDpruneDense2csrByPercentage_bufferSize_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneDense2csrByPercentage_bufferSize_rank_0(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseDpruneDense2csrByPercentage_bufferSize_rank_0 = hipsparseDpruneDense2csrByPercentage_bufferSize_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneDense2csrByPercentage_bufferSize_rank_1(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csrByPercentage_bufferSize_rank_1 = hipsparseDpruneDense2csrByPercentage_bufferSize_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneDense2csrByPercentage_bufferSizeExt_full_rank(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csrByPercentage_bufferSizeExt_full_rank = hipsparseSpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_0(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_0 = hipsparseSpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_1(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneDense2csrByPercentage_bufferSizeExt_rank_1 = hipsparseSpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneDense2csrByPercentage_bufferSizeExt_full_rank(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSizeExt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csrByPercentage_bufferSizeExt_full_rank = hipsparseDpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_0(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_0 = hipsparseDpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_1(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneDense2csrByPercentage_bufferSizeExt_rank_1 = hipsparseDpruneDense2csrByPercentage_bufferSizeExt_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneDense2csrNnzByPercentage_full_rank(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnzByPercentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneDense2csrNnzByPercentage_full_rank = hipsparseSpruneDense2csrNnzByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseSpruneDense2csrNnzByPercentage_rank_0(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnzByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr integer(c_int),target :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneDense2csrNnzByPercentage_rank_0 = hipsparseSpruneDense2csrNnzByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseSpruneDense2csrNnzByPercentage_rank_1(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrNnzByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneDense2csrNnzByPercentage_rank_1 = hipsparseSpruneDense2csrNnzByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseDpruneDense2csrNnzByPercentage_full_rank(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnzByPercentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneDense2csrNnzByPercentage_full_rank = hipsparseDpruneDense2csrNnzByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseDpruneDense2csrNnzByPercentage_rank_0(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnzByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr integer(c_int),target :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneDense2csrNnzByPercentage_rank_0 = hipsparseDpruneDense2csrNnzByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseDpruneDense2csrNnzByPercentage_rank_1(handle,m,n,A,lda,percentage,descr,csrRowPtr,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrNnzByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneDense2csrNnzByPercentage_rank_1 = hipsparseDpruneDense2csrNnzByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrRowPtr),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseSpruneDense2csrByPercentage_full_rank(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneDense2csrByPercentage_full_rank = hipsparseSpruneDense2csrByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,buffer) end function function hipsparseSpruneDense2csrByPercentage_rank_0(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneDense2csrByPercentage_rank_0 = hipsparseSpruneDense2csrByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,buffer) end function function hipsparseSpruneDense2csrByPercentage_rank_1(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneDense2csrByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneDense2csrByPercentage_rank_1 = hipsparseSpruneDense2csrByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,buffer) end function function hipsparseDpruneDense2csrByPercentage_full_rank(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneDense2csrByPercentage_full_rank = hipsparseDpruneDense2csrByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,buffer) end function function hipsparseDpruneDense2csrByPercentage_rank_0(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneDense2csrByPercentage_rank_0 = hipsparseDpruneDense2csrByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,buffer) end function function hipsparseDpruneDense2csrByPercentage_rank_1(handle,m,n,A,lda,percentage,descr,csrVal,csrRowPtr,csrColInd,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneDense2csrByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneDense2csrByPercentage_rank_1 = hipsparseDpruneDense2csrByPercentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,buffer) end function function hipsparseSdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseSdense2csc_full_rank = hipsparseSdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseSdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns real(c_float),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr ! hipsparseSdense2csc_rank_0 = hipsparseSdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseSdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseSdense2csc_rank_1 = hipsparseSdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseDdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseDdense2csc_full_rank = hipsparseDdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseDdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns real(c_double),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr ! hipsparseDdense2csc_rank_0 = hipsparseDdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseDdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseDdense2csc_rank_1 = hipsparseDdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseCdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseCdense2csc_full_rank = hipsparseCdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseCdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns complex(c_float_complex),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr ! hipsparseCdense2csc_rank_0 = hipsparseCdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseCdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseCdense2csc_rank_1 = hipsparseCdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseZdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseZdense2csc_full_rank = hipsparseZdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseZdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns complex(c_double_complex),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr ! hipsparseZdense2csc_rank_0 = hipsparseZdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseZdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_row_ind,csc_col_ptr) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr ! hipsparseZdense2csc_rank_1 = hipsparseZdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr)) end function function hipsparseScsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseScsr2dense_full_rank = hipsparseScsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseScsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: A integer(c_int) :: ld ! hipsparseScsr2dense_rank_0 = hipsparseScsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseScsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseScsr2dense_rank_1 = hipsparseScsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseDcsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseDcsr2dense_full_rank = hipsparseDcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseDcsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: A integer(c_int) :: ld ! hipsparseDcsr2dense_rank_0 = hipsparseDcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseDcsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseDcsr2dense_rank_1 = hipsparseDcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseCcsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseCcsr2dense_full_rank = hipsparseCcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseCcsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: A integer(c_int) :: ld ! hipsparseCcsr2dense_rank_0 = hipsparseCcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseCcsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseCcsr2dense_rank_1 = hipsparseCcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseZcsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseZcsr2dense_full_rank = hipsparseZcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseZcsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: A integer(c_int) :: ld ! hipsparseZcsr2dense_rank_0 = hipsparseZcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseZcsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseZcsr2dense_rank_1 = hipsparseZcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function hipsparseScsc2dense_full_rank(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseScsc2dense_full_rank = hipsparseScsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseScsc2dense_rank_0(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr real(c_float),target :: A integer(c_int) :: ld ! hipsparseScsc2dense_rank_0 = hipsparseScsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseScsc2dense_rank_1(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr real(c_float),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseScsc2dense_rank_1 = hipsparseScsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseDcsc2dense_full_rank(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseDcsc2dense_full_rank = hipsparseDcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseDcsc2dense_rank_0(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr real(c_double),target :: A integer(c_int) :: ld ! hipsparseDcsc2dense_rank_0 = hipsparseDcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseDcsc2dense_rank_1(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr real(c_double),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseDcsc2dense_rank_1 = hipsparseDcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseCcsc2dense_full_rank(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseCcsc2dense_full_rank = hipsparseCcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseCcsc2dense_rank_0(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr complex(c_float_complex),target :: A integer(c_int) :: ld ! hipsparseCcsc2dense_rank_0 = hipsparseCcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseCcsc2dense_rank_1(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseCcsc2dense_rank_1 = hipsparseCcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseZcsc2dense_full_rank(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! hipsparseZcsc2dense_full_rank = hipsparseZcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseZcsc2dense_rank_0(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr complex(c_double_complex),target :: A integer(c_int) :: ld ! hipsparseZcsc2dense_rank_0 = hipsparseZcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseZcsc2dense_rank_1(handle,m,n,descr,csc_val,csc_row_ind,csc_col_ptr,A,ld) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld ! hipsparseZcsc2dense_rank_1 = hipsparseZcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),c_loc(A),ld) end function function hipsparseXcsr2bsrNnz_rank_0(handle,dirA,m,n,descrA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrRowPtrC,bsrNnzb) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2bsrNnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrNnzb ! hipsparseXcsr2bsrNnz_rank_0 = hipsparseXcsr2bsrNnz_(handle,dirA,m,n,descrA,c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrRowPtrC),c_loc(bsrNnzb)) end function function hipsparseXcsr2bsrNnz_rank_1(handle,dirA,m,n,descrA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrRowPtrC,bsrNnzb) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2bsrNnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrNnzb ! hipsparseXcsr2bsrNnz_rank_1 = hipsparseXcsr2bsrNnz_(handle,dirA,m,n,descrA,c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrRowPtrC),c_loc(bsrNnzb)) end function function hipsparseSnnz_compress_rank_0(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: nnzPerRow integer(c_int),target :: nnzC real(c_float) :: tol ! hipsparseSnnz_compress_rank_0 = hipsparseSnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseSnnz_compress_rank_1(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSnnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: nnzPerRow integer(c_int),target,dimension(:) :: nnzC real(c_float) :: tol ! hipsparseSnnz_compress_rank_1 = hipsparseSnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseDnnz_compress_rank_0(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: nnzPerRow integer(c_int),target :: nnzC real(c_double) :: tol ! hipsparseDnnz_compress_rank_0 = hipsparseDnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseDnnz_compress_rank_1(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDnnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: nnzPerRow integer(c_int),target,dimension(:) :: nnzC real(c_double) :: tol ! hipsparseDnnz_compress_rank_1 = hipsparseDnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseCnnz_compress_rank_0(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: nnzPerRow integer(c_int),target :: nnzC complex(c_float_complex) :: tol ! hipsparseCnnz_compress_rank_0 = hipsparseCnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseCnnz_compress_rank_1(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCnnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: nnzPerRow integer(c_int),target,dimension(:) :: nnzC complex(c_float_complex) :: tol ! hipsparseCnnz_compress_rank_1 = hipsparseCnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseZnnz_compress_rank_0(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: nnzPerRow integer(c_int),target :: nnzC complex(c_double_complex) :: tol ! hipsparseZnnz_compress_rank_0 = hipsparseZnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseZnnz_compress_rank_1(handle,m,descrA,csrValA,csrRowPtrA,nnzPerRow,nnzC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZnnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: nnzPerRow integer(c_int),target,dimension(:) :: nnzC complex(c_double_complex) :: tol ! hipsparseZnnz_compress_rank_1 = hipsparseZnnz_compress_(handle,m,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(nnzPerRow),c_loc(nnzC),tol) end function function hipsparseXcsr2coo_rank_0(handle,csrRowPtr,nnz,m,cooRowInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2coo_rank_0 type(c_ptr) :: handle integer(c_int),target :: csrRowPtr integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target :: cooRowInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseXcsr2coo_rank_0 = hipsparseXcsr2coo_(handle,c_loc(csrRowPtr),nnz,m,c_loc(cooRowInd),idxBase) end function function hipsparseXcsr2coo_rank_1(handle,csrRowPtr,nnz,m,cooRowInd,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2coo_rank_1 type(c_ptr) :: handle integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target,dimension(:) :: cooRowInd integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseXcsr2coo_rank_1 = hipsparseXcsr2coo_(handle,c_loc(csrRowPtr),nnz,m,c_loc(cooRowInd),idxBase) end function function hipsparseScsr2csc_rank_0(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float),target :: csrSortedVal integer(c_int),target :: csrSortedRowPtr integer(c_int),target :: csrSortedColInd real(c_float),target :: cscSortedVal integer(c_int),target :: cscSortedRowInd integer(c_int),target :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseScsr2csc_rank_0 = hipsparseScsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseScsr2csc_rank_1(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float),target,dimension(:) :: csrSortedVal integer(c_int),target,dimension(:) :: csrSortedRowPtr integer(c_int),target,dimension(:) :: csrSortedColInd real(c_float),target,dimension(:) :: cscSortedVal integer(c_int),target,dimension(:) :: cscSortedRowInd integer(c_int),target,dimension(:) :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseScsr2csc_rank_1 = hipsparseScsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseDcsr2csc_rank_0(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double),target :: csrSortedVal integer(c_int),target :: csrSortedRowPtr integer(c_int),target :: csrSortedColInd real(c_double),target :: cscSortedVal integer(c_int),target :: cscSortedRowInd integer(c_int),target :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDcsr2csc_rank_0 = hipsparseDcsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseDcsr2csc_rank_1(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double),target,dimension(:) :: csrSortedVal integer(c_int),target,dimension(:) :: csrSortedRowPtr integer(c_int),target,dimension(:) :: csrSortedColInd real(c_double),target,dimension(:) :: cscSortedVal integer(c_int),target,dimension(:) :: cscSortedRowInd integer(c_int),target,dimension(:) :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseDcsr2csc_rank_1 = hipsparseDcsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseCcsr2csc_rank_0(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex),target :: csrSortedVal integer(c_int),target :: csrSortedRowPtr integer(c_int),target :: csrSortedColInd complex(c_float_complex),target :: cscSortedVal integer(c_int),target :: cscSortedRowInd integer(c_int),target :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCcsr2csc_rank_0 = hipsparseCcsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseCcsr2csc_rank_1(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: csrSortedVal integer(c_int),target,dimension(:) :: csrSortedRowPtr integer(c_int),target,dimension(:) :: csrSortedColInd complex(c_float_complex),target,dimension(:) :: cscSortedVal integer(c_int),target,dimension(:) :: cscSortedRowInd integer(c_int),target,dimension(:) :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseCcsr2csc_rank_1 = hipsparseCcsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseZcsr2csc_rank_0(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex),target :: csrSortedVal integer(c_int),target :: csrSortedRowPtr integer(c_int),target :: csrSortedColInd complex(c_double_complex),target :: cscSortedVal integer(c_int),target :: cscSortedRowInd integer(c_int),target :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZcsr2csc_rank_0 = hipsparseZcsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseZcsr2csc_rank_1(handle,m,n,nnz,csrSortedVal,csrSortedRowPtr,csrSortedColInd,cscSortedVal,cscSortedRowInd,cscSortedColPtr,copyValues,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: csrSortedVal integer(c_int),target,dimension(:) :: csrSortedRowPtr integer(c_int),target,dimension(:) :: csrSortedColInd complex(c_double_complex),target,dimension(:) :: cscSortedVal integer(c_int),target,dimension(:) :: cscSortedRowInd integer(c_int),target,dimension(:) :: cscSortedColPtr integer(kind(HIPSPARSE_ACTION_SYMBOLIC)) :: copyValues integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseZcsr2csc_rank_1 = hipsparseZcsr2csc_(handle,m,n,nnz,c_loc(csrSortedVal),c_loc(csrSortedRowPtr),c_loc(csrSortedColInd),c_loc(cscSortedVal),c_loc(cscSortedRowInd),c_loc(cscSortedColPtr),copyValues,idxBase) end function function hipsparseScsr2hyb_rank_0(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseScsr2hyb_rank_0 = hipsparseScsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseScsr2hyb_rank_1(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseScsr2hyb_rank_1 = hipsparseScsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseDcsr2hyb_rank_0(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseDcsr2hyb_rank_0 = hipsparseDcsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseDcsr2hyb_rank_1(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseDcsr2hyb_rank_1 = hipsparseDcsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseCcsr2hyb_rank_0(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseCcsr2hyb_rank_0 = hipsparseCcsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseCcsr2hyb_rank_1(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseCcsr2hyb_rank_1 = hipsparseCcsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseZcsr2hyb_rank_0(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseZcsr2hyb_rank_0 = hipsparseZcsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseZcsr2hyb_rank_1(handle,m,n,descrA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA,hybA,userEllWidth,partitionType) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA type(c_ptr) :: hybA integer(c_int) :: userEllWidth integer(kind(HIPSPARSE_HYB_PARTITION_AUTO)) :: partitionType ! hipsparseZcsr2hyb_rank_1 = hipsparseZcsr2hyb_(handle,m,n,descrA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA),hybA,userEllWidth,partitionType) end function function hipsparseScsr2gebsr_bufferSize_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseScsr2gebsr_bufferSize_rank_0 = hipsparseScsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseScsr2gebsr_bufferSize_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseScsr2gebsr_bufferSize_rank_1 = hipsparseScsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseDcsr2gebsr_bufferSize_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseDcsr2gebsr_bufferSize_rank_0 = hipsparseDcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseDcsr2gebsr_bufferSize_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseDcsr2gebsr_bufferSize_rank_1 = hipsparseDcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseCcsr2gebsr_bufferSize_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseCcsr2gebsr_bufferSize_rank_0 = hipsparseCcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseCcsr2gebsr_bufferSize_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseCcsr2gebsr_bufferSize_rank_1 = hipsparseCcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseZcsr2gebsr_bufferSize_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseZcsr2gebsr_bufferSize_rank_0 = hipsparseZcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseZcsr2gebsr_bufferSize_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! hipsparseZcsr2gebsr_bufferSize_rank_1 = hipsparseZcsr2gebsr_bufferSize_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function hipsparseXcsr2gebsrNnz_rank_0(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_devhost,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2gebsrNnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_row_ptr integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsr_nnz_devhost type(c_ptr) :: p_buffer ! hipsparseXcsr2gebsrNnz_rank_0 = hipsparseXcsr2gebsrNnz_(handle,dir,m,n,csr_descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_row_ptr,row_block_dim,col_block_dim,bsr_nnz_devhost,p_buffer) end function function hipsparseXcsr2gebsrNnz_rank_1(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_devhost,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsr2gebsrNnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_row_ptr integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsr_nnz_devhost type(c_ptr) :: p_buffer ! hipsparseXcsr2gebsrNnz_rank_1 = hipsparseXcsr2gebsrNnz_(handle,dir,m,n,csr_descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_row_ptr,row_block_dim,col_block_dim,bsr_nnz_devhost,p_buffer) end function function hipsparseScsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseScsr2gebsr_rank_0 = hipsparseScsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseScsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseScsr2gebsr_rank_1 = hipsparseScsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseDcsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseDcsr2gebsr_rank_0 = hipsparseDcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseDcsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseDcsr2gebsr_rank_1 = hipsparseDcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseCcsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseCcsr2gebsr_rank_0 = hipsparseCcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseCcsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseCcsr2gebsr_rank_1 = hipsparseCcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseZcsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseZcsr2gebsr_rank_0 = hipsparseZcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseZcsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr type(c_ptr) :: bsr_val type(c_ptr) :: bsr_row_ptr type(c_ptr) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! hipsparseZcsr2gebsr_rank_1 = hipsparseZcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer) end function function hipsparseScsr2bsr_rank_0(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_float),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC ! hipsparseScsr2bsr_rank_0 = hipsparseScsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseScsr2bsr_rank_1(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_float),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC ! hipsparseScsr2bsr_rank_1 = hipsparseScsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseDcsr2bsr_rank_0(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_double),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC ! hipsparseDcsr2bsr_rank_0 = hipsparseDcsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseDcsr2bsr_rank_1(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_double),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC ! hipsparseDcsr2bsr_rank_1 = hipsparseDcsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseCcsr2bsr_rank_0(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_float_complex),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC ! hipsparseCcsr2bsr_rank_0 = hipsparseCcsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseCcsr2bsr_rank_1(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC ! hipsparseCcsr2bsr_rank_1 = hipsparseCcsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseZcsr2bsr_rank_0(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_double_complex),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC ! hipsparseZcsr2bsr_rank_0 = hipsparseZcsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseZcsr2bsr_rank_1(handle,dirA,m,n,descrA,csrValA,csrRowPtrA,csrColIndA,blockDim,descrC,bsrValC,bsrRowPtrC,bsrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC ! hipsparseZcsr2bsr_rank_1 = hipsparseZcsr2bsr_(handle,dirA,m,n,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),blockDim,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC)) end function function hipsparseSbsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseSbsr2csr_rank_0 = hipsparseSbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseSbsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseSbsr2csr_rank_1 = hipsparseSbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDbsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseDbsr2csr_rank_0 = hipsparseDbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDbsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseDbsr2csr_rank_1 = hipsparseDbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCbsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_float_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseCbsr2csr_rank_0 = hipsparseCbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCbsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseCbsr2csr_rank_1 = hipsparseCbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZbsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_double_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseZbsr2csr_rank_0 = hipsparseZbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZbsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,blockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: blockDim type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseZbsr2csr_rank_1 = hipsparseZbsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),blockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseSgebsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseSgebsr2csr_rank_0 = hipsparseSgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseSgebsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseSgebsr2csr_rank_1 = hipsparseSgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDgebsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseDgebsr2csr_rank_0 = hipsparseDgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseDgebsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseDgebsr2csr_rank_1 = hipsparseDgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCgebsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC complex(c_float_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseCgebsr2csr_rank_0 = hipsparseCgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseCgebsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseCgebsr2csr_rank_1 = hipsparseCgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZgebsr2csr_rank_0(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC complex(c_double_complex),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC ! hipsparseZgebsr2csr_rank_0 = hipsparseZgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseZgebsr2csr_rank_1(handle,dirA,mb,nb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDim,colBlockDim,descrC,csrValC,csrRowPtrC,csrColIndC) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDim integer(c_int) :: colBlockDim type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC ! hipsparseZgebsr2csr_rank_1 = hipsparseZgebsr2csr_(handle,dirA,mb,nb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDim,colBlockDim,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC)) end function function hipsparseScsr2csr_compress_rank_0(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrColIndA integer(c_int),target :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target :: nnzPerRow real(c_float),target :: csrValC integer(c_int),target :: csrColIndC integer(c_int),target :: csrRowPtrC real(c_float) :: tol ! hipsparseScsr2csr_compress_rank_0 = hipsparseScsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseScsr2csr_compress_rank_1(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: nnzPerRow real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrColIndC integer(c_int),target,dimension(:) :: csrRowPtrC real(c_float) :: tol ! hipsparseScsr2csr_compress_rank_1 = hipsparseScsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseDcsr2csr_compress_rank_0(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrColIndA integer(c_int),target :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target :: nnzPerRow real(c_double),target :: csrValC integer(c_int),target :: csrColIndC integer(c_int),target :: csrRowPtrC real(c_double) :: tol ! hipsparseDcsr2csr_compress_rank_0 = hipsparseDcsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseDcsr2csr_compress_rank_1(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: nnzPerRow real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrColIndC integer(c_int),target,dimension(:) :: csrRowPtrC real(c_double) :: tol ! hipsparseDcsr2csr_compress_rank_1 = hipsparseDcsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseCcsr2csr_compress_rank_0(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrColIndA integer(c_int),target :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target :: nnzPerRow complex(c_float_complex),target :: csrValC integer(c_int),target :: csrColIndC integer(c_int),target :: csrRowPtrC complex(c_float_complex) :: tol ! hipsparseCcsr2csr_compress_rank_0 = hipsparseCcsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseCcsr2csr_compress_rank_1(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: nnzPerRow complex(c_float_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrColIndC integer(c_int),target,dimension(:) :: csrRowPtrC complex(c_float_complex) :: tol ! hipsparseCcsr2csr_compress_rank_1 = hipsparseCcsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseZcsr2csr_compress_rank_0(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrColIndA integer(c_int),target :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target :: nnzPerRow complex(c_double_complex),target :: csrValC integer(c_int),target :: csrColIndC integer(c_int),target :: csrRowPtrC complex(c_double_complex) :: tol ! hipsparseZcsr2csr_compress_rank_0 = hipsparseZcsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseZcsr2csr_compress_rank_1(handle,m,n,descrA,csrValA,csrColIndA,csrRowPtrA,nnzA,nnzPerRow,csrValC,csrColIndC,csrRowPtrC,tol) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrColIndA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int) :: nnzA integer(c_int),target,dimension(:) :: nnzPerRow complex(c_double_complex),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrColIndC integer(c_int),target,dimension(:) :: csrRowPtrC complex(c_double_complex) :: tol ! hipsparseZcsr2csr_compress_rank_1 = hipsparseZcsr2csr_compress_(handle,m,n,descrA,c_loc(csrValA),c_loc(csrColIndA),c_loc(csrRowPtrA),nnzA,c_loc(nnzPerRow),c_loc(csrValC),c_loc(csrColIndC),c_loc(csrRowPtrC),tol) end function function hipsparseSpruneCsr2csr_bufferSize_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC integer(c_size_t),target :: bufferSize ! hipsparseSpruneCsr2csr_bufferSize_rank_0 = hipsparseSpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseSpruneCsr2csr_bufferSize_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneCsr2csr_bufferSize_rank_1 = hipsparseSpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseDpruneCsr2csr_bufferSize_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC integer(c_size_t),target :: bufferSize ! hipsparseDpruneCsr2csr_bufferSize_rank_0 = hipsparseDpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseDpruneCsr2csr_bufferSize_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneCsr2csr_bufferSize_rank_1 = hipsparseDpruneCsr2csr_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseSpruneCsr2csr_bufferSizeExt_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC integer(c_size_t),target :: bufferSize ! hipsparseSpruneCsr2csr_bufferSizeExt_rank_0 = hipsparseSpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseSpruneCsr2csr_bufferSizeExt_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneCsr2csr_bufferSizeExt_rank_1 = hipsparseSpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseDpruneCsr2csr_bufferSizeExt_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC integer(c_size_t),target :: bufferSize ! hipsparseDpruneCsr2csr_bufferSizeExt_rank_0 = hipsparseDpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseDpruneCsr2csr_bufferSizeExt_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneCsr2csr_bufferSizeExt_rank_1 = hipsparseDpruneCsr2csr_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),c_loc(bufferSize)) end function function hipsparseSpruneCsr2csrNnz_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrNnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseSpruneCsr2csrNnz_rank_0 = hipsparseSpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,buffer) end function function hipsparseSpruneCsr2csrNnz_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrNnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseSpruneCsr2csrNnz_rank_1 = hipsparseSpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,buffer) end function function hipsparseDpruneCsr2csrNnz_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrNnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseDpruneCsr2csrNnz_rank_0 = hipsparseDpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,buffer) end function function hipsparseDpruneCsr2csrNnz_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrRowPtrC,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrNnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseDpruneCsr2csrNnz_rank_1 = hipsparseDpruneCsr2csrNnz_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,buffer) end function function hipsparseSpruneCsr2csr_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: buffer ! hipsparseSpruneCsr2csr_rank_0 = hipsparseSpruneCsr2csr_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),buffer) end function function hipsparseSpruneCsr2csr_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: threshold type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: buffer ! hipsparseSpruneCsr2csr_rank_1 = hipsparseSpruneCsr2csr_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),buffer) end function function hipsparseDpruneCsr2csr_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: buffer ! hipsparseDpruneCsr2csr_rank_0 = hipsparseDpruneCsr2csr_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),buffer) end function function hipsparseDpruneCsr2csr_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,threshold,descrC,csrValC,csrRowPtrC,csrColIndC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: threshold type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: buffer ! hipsparseDpruneCsr2csr_rank_1 = hipsparseDpruneCsr2csr_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),threshold,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),buffer) end function function hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_0 = hipsparseSpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneCsr2csrByPercentage_bufferSize_rank_1 = hipsparseSpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_0 = hipsparseDpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneCsr2csrByPercentage_bufferSize_rank_1 = hipsparseDpruneCsr2csrByPercentage_bufferSize_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_0 = hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_rank_1 = hipsparseSpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target :: bufferSize ! hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_0 = hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_rank_1 = hipsparseDpruneCsr2csrByPercentage_bufferSizeExt_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,c_loc(bufferSize)) end function function hipsparseSpruneCsr2csrNnzByPercentage_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrNnzByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneCsr2csrNnzByPercentage_rank_0 = hipsparseSpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseSpruneCsr2csrNnzByPercentage_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrNnzByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneCsr2csrNnzByPercentage_rank_1 = hipsparseSpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseDpruneCsr2csrNnzByPercentage_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrNnzByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC integer(c_int),target :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneCsr2csrNnzByPercentage_rank_0 = hipsparseDpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseDpruneCsr2csrNnzByPercentage_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrRowPtrC,nnzTotalDevHostPtr,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrNnzByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneCsr2csrNnzByPercentage_rank_1 = hipsparseDpruneCsr2csrNnzByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrRowPtrC),nnzTotalDevHostPtr,myInfo,buffer) end function function hipsparseSpruneCsr2csrByPercentage_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC real(c_float),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneCsr2csrByPercentage_rank_0 = hipsparseSpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,buffer) end function function hipsparseSpruneCsr2csrByPercentage_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSpruneCsr2csrByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_float) :: percentage type(c_ptr) :: descrC real(c_float),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseSpruneCsr2csrByPercentage_rank_1 = hipsparseSpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,buffer) end function function hipsparseDpruneCsr2csrByPercentage_rank_0(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC real(c_double),target :: csrValC integer(c_int),target :: csrRowPtrC integer(c_int),target :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneCsr2csrByPercentage_rank_0 = hipsparseDpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,buffer) end function function hipsparseDpruneCsr2csrByPercentage_rank_1(handle,m,n,nnzA,descrA,csrValA,csrRowPtrA,csrColIndA,percentage,descrC,csrValC,csrRowPtrC,csrColIndC,myInfo,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDpruneCsr2csrByPercentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnzA type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA real(c_double) :: percentage type(c_ptr) :: descrC real(c_double),target,dimension(:) :: csrValC integer(c_int),target,dimension(:) :: csrRowPtrC integer(c_int),target,dimension(:) :: csrColIndC type(c_ptr) :: myInfo type(c_ptr) :: buffer ! hipsparseDpruneCsr2csrByPercentage_rank_1 = hipsparseDpruneCsr2csrByPercentage_(handle,m,n,nnzA,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),percentage,descrC,c_loc(csrValC),c_loc(csrRowPtrC),c_loc(csrColIndC),myInfo,buffer) end function function hipsparseShyb2csr_rank_0(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseShyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_float),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA ! hipsparseShyb2csr_rank_0 = hipsparseShyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseShyb2csr_rank_1(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseShyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_float),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA ! hipsparseShyb2csr_rank_1 = hipsparseShyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseDhyb2csr_rank_0(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDhyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_double),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA ! hipsparseDhyb2csr_rank_0 = hipsparseDhyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseDhyb2csr_rank_1(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDhyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA real(c_double),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA ! hipsparseDhyb2csr_rank_1 = hipsparseDhyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseChyb2csr_rank_0(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseChyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_float_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA ! hipsparseChyb2csr_rank_0 = hipsparseChyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseChyb2csr_rank_1(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseChyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_float_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA ! hipsparseChyb2csr_rank_1 = hipsparseChyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseZhyb2csr_rank_0(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZhyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_double_complex),target :: csrSortedValA integer(c_int),target :: csrSortedRowPtrA integer(c_int),target :: csrSortedColIndA ! hipsparseZhyb2csr_rank_0 = hipsparseZhyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseZhyb2csr_rank_1(handle,descrA,hybA,csrSortedValA,csrSortedRowPtrA,csrSortedColIndA) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZhyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descrA type(c_ptr) :: hybA complex(c_double_complex),target,dimension(:) :: csrSortedValA integer(c_int),target,dimension(:) :: csrSortedRowPtrA integer(c_int),target,dimension(:) :: csrSortedColIndA ! hipsparseZhyb2csr_rank_1 = hipsparseZhyb2csr_(handle,descrA,hybA,c_loc(csrSortedValA),c_loc(csrSortedRowPtrA),c_loc(csrSortedColIndA)) end function function hipsparseXcoo2csr_rank_0(handle,cooRowInd,nnz,m,csrRowPtr,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoo2csr_rank_0 type(c_ptr) :: handle integer(c_int),target :: cooRowInd integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target :: csrRowPtr integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseXcoo2csr_rank_0 = hipsparseXcoo2csr_(handle,c_loc(cooRowInd),nnz,m,c_loc(csrRowPtr),idxBase) end function function hipsparseXcoo2csr_rank_1(handle,cooRowInd,nnz,m,csrRowPtr,idxBase) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoo2csr_rank_1 type(c_ptr) :: handle integer(c_int),target,dimension(:) :: cooRowInd integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target,dimension(:) :: csrRowPtr integer(kind(HIPSPARSE_INDEX_BASE_ZERO)) :: idxBase ! hipsparseXcoo2csr_rank_1 = hipsparseXcoo2csr_(handle,c_loc(cooRowInd),nnz,m,c_loc(csrRowPtr),idxBase) end function function hipsparseCreateIdentityPermutation_rank_0(handle,n,p) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateIdentityPermutation_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int),target :: p ! hipsparseCreateIdentityPermutation_rank_0 = hipsparseCreateIdentityPermutation_(handle,n,c_loc(p)) end function function hipsparseCreateIdentityPermutation_rank_1(handle,n,p) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCreateIdentityPermutation_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int),target,dimension(:) :: p ! hipsparseCreateIdentityPermutation_rank_1 = hipsparseCreateIdentityPermutation_(handle,n,c_loc(p)) end function function hipsparseXcsrsort_bufferSizeExt_rank_0(handle,m,n,nnz,csrRowPtr,csrColInd,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd integer(c_size_t) :: pBufferSizeInBytes ! hipsparseXcsrsort_bufferSizeExt_rank_0 = hipsparseXcsrsort_bufferSizeExt_(handle,m,n,nnz,c_loc(csrRowPtr),c_loc(csrColInd),pBufferSizeInBytes) end function function hipsparseXcsrsort_bufferSizeExt_rank_1(handle,m,n,nnz,csrRowPtr,csrColInd,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_size_t) :: pBufferSizeInBytes ! hipsparseXcsrsort_bufferSizeExt_rank_1 = hipsparseXcsrsort_bufferSizeExt_(handle,m,n,nnz,c_loc(csrRowPtr),c_loc(csrColInd),pBufferSizeInBytes) end function function hipsparseXcsrsort_full_rank(handle,m,n,nnz,descrA,csrRowPtr,csrColInd,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_int),target,dimension(:,:) :: P type(c_ptr) :: pBuffer ! hipsparseXcsrsort_full_rank = hipsparseXcsrsort_(handle,m,n,nnz,descrA,c_loc(csrRowPtr),c_loc(csrColInd),c_loc(P),pBuffer) end function function hipsparseXcsrsort_rank_0(handle,m,n,nnz,descrA,csrRowPtr,csrColInd,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd integer(c_int),target :: P type(c_ptr) :: pBuffer ! hipsparseXcsrsort_rank_0 = hipsparseXcsrsort_(handle,m,n,nnz,descrA,c_loc(csrRowPtr),c_loc(csrColInd),c_loc(P),pBuffer) end function function hipsparseXcsrsort_rank_1(handle,m,n,nnz,descrA,csrRowPtr,csrColInd,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcsrsort_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd integer(c_int),target,dimension(:) :: P type(c_ptr) :: pBuffer ! hipsparseXcsrsort_rank_1 = hipsparseXcsrsort_(handle,m,n,nnz,descrA,c_loc(csrRowPtr),c_loc(csrColInd),c_loc(P),pBuffer) end function function hipsparseXcscsort_bufferSizeExt_rank_0(handle,m,n,nnz,cscColPtr,cscRowInd,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: cscColPtr integer(c_int),target :: cscRowInd integer(c_size_t) :: pBufferSizeInBytes ! hipsparseXcscsort_bufferSizeExt_rank_0 = hipsparseXcscsort_bufferSizeExt_(handle,m,n,nnz,c_loc(cscColPtr),c_loc(cscRowInd),pBufferSizeInBytes) end function function hipsparseXcscsort_bufferSizeExt_rank_1(handle,m,n,nnz,cscColPtr,cscRowInd,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: cscColPtr integer(c_int),target,dimension(:) :: cscRowInd integer(c_size_t) :: pBufferSizeInBytes ! hipsparseXcscsort_bufferSizeExt_rank_1 = hipsparseXcscsort_bufferSizeExt_(handle,m,n,nnz,c_loc(cscColPtr),c_loc(cscRowInd),pBufferSizeInBytes) end function function hipsparseXcscsort_full_rank(handle,m,n,nnz,descrA,cscColPtr,cscRowInd,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA integer(c_int),target,dimension(:) :: cscColPtr integer(c_int),target,dimension(:) :: cscRowInd integer(c_int),target,dimension(:,:) :: P type(c_ptr) :: pBuffer ! hipsparseXcscsort_full_rank = hipsparseXcscsort_(handle,m,n,nnz,descrA,c_loc(cscColPtr),c_loc(cscRowInd),c_loc(P),pBuffer) end function function hipsparseXcscsort_rank_0(handle,m,n,nnz,descrA,cscColPtr,cscRowInd,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA integer(c_int),target :: cscColPtr integer(c_int),target :: cscRowInd integer(c_int),target :: P type(c_ptr) :: pBuffer ! hipsparseXcscsort_rank_0 = hipsparseXcscsort_(handle,m,n,nnz,descrA,c_loc(cscColPtr),c_loc(cscRowInd),c_loc(P),pBuffer) end function function hipsparseXcscsort_rank_1(handle,m,n,nnz,descrA,cscColPtr,cscRowInd,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcscsort_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA integer(c_int),target,dimension(:) :: cscColPtr integer(c_int),target,dimension(:) :: cscRowInd integer(c_int),target,dimension(:) :: P type(c_ptr) :: pBuffer ! hipsparseXcscsort_rank_1 = hipsparseXcscsort_(handle,m,n,nnz,descrA,c_loc(cscColPtr),c_loc(cscRowInd),c_loc(P),pBuffer) end function function hipsparseXcoosort_bufferSizeExt_rank_0(handle,m,n,nnz,cooRows,cooCols,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosort_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: cooRows integer(c_int),target :: cooCols integer(c_size_t) :: pBufferSizeInBytes ! hipsparseXcoosort_bufferSizeExt_rank_0 = hipsparseXcoosort_bufferSizeExt_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),pBufferSizeInBytes) end function function hipsparseXcoosort_bufferSizeExt_rank_1(handle,m,n,nnz,cooRows,cooCols,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosort_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: cooRows integer(c_int),target,dimension(:) :: cooCols integer(c_size_t) :: pBufferSizeInBytes ! hipsparseXcoosort_bufferSizeExt_rank_1 = hipsparseXcoosort_bufferSizeExt_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),pBufferSizeInBytes) end function function hipsparseXcoosortByRow_full_rank(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByRow_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: cooRows integer(c_int),target,dimension(:) :: cooCols integer(c_int),target,dimension(:,:) :: P type(c_ptr) :: pBuffer ! hipsparseXcoosortByRow_full_rank = hipsparseXcoosortByRow_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),c_loc(P),pBuffer) end function function hipsparseXcoosortByRow_rank_0(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByRow_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: cooRows integer(c_int),target :: cooCols integer(c_int),target :: P type(c_ptr) :: pBuffer ! hipsparseXcoosortByRow_rank_0 = hipsparseXcoosortByRow_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),c_loc(P),pBuffer) end function function hipsparseXcoosortByRow_rank_1(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByRow_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: cooRows integer(c_int),target,dimension(:) :: cooCols integer(c_int),target,dimension(:) :: P type(c_ptr) :: pBuffer ! hipsparseXcoosortByRow_rank_1 = hipsparseXcoosortByRow_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),c_loc(P),pBuffer) end function function hipsparseXcoosortByColumn_full_rank(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByColumn_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: cooRows integer(c_int),target,dimension(:) :: cooCols integer(c_int),target,dimension(:,:) :: P type(c_ptr) :: pBuffer ! hipsparseXcoosortByColumn_full_rank = hipsparseXcoosortByColumn_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),c_loc(P),pBuffer) end function function hipsparseXcoosortByColumn_rank_0(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByColumn_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: cooRows integer(c_int),target :: cooCols integer(c_int),target :: P type(c_ptr) :: pBuffer ! hipsparseXcoosortByColumn_rank_0 = hipsparseXcoosortByColumn_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),c_loc(P),pBuffer) end function function hipsparseXcoosortByColumn_rank_1(handle,m,n,nnz,cooRows,cooCols,P,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXcoosortByColumn_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: cooRows integer(c_int),target,dimension(:) :: cooCols integer(c_int),target,dimension(:) :: P type(c_ptr) :: pBuffer ! hipsparseXcoosortByColumn_rank_1 = hipsparseXcoosortByColumn_(handle,m,n,nnz,c_loc(cooRows),c_loc(cooCols),c_loc(P),pBuffer) end function function hipsparseSgebsr2gebsr_bufferSize_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target :: bufferSize ! hipsparseSgebsr2gebsr_bufferSize_rank_0 = hipsparseSgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseSgebsr2gebsr_bufferSize_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target,dimension(:) :: bufferSize ! hipsparseSgebsr2gebsr_bufferSize_rank_1 = hipsparseSgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseDgebsr2gebsr_bufferSize_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target :: bufferSize ! hipsparseDgebsr2gebsr_bufferSize_rank_0 = hipsparseDgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseDgebsr2gebsr_bufferSize_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target,dimension(:) :: bufferSize ! hipsparseDgebsr2gebsr_bufferSize_rank_1 = hipsparseDgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseCgebsr2gebsr_bufferSize_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target :: bufferSize ! hipsparseCgebsr2gebsr_bufferSize_rank_0 = hipsparseCgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseCgebsr2gebsr_bufferSize_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target,dimension(:) :: bufferSize ! hipsparseCgebsr2gebsr_bufferSize_rank_1 = hipsparseCgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseZgebsr2gebsr_bufferSize_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target :: bufferSize ! hipsparseZgebsr2gebsr_bufferSize_rank_0 = hipsparseZgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseZgebsr2gebsr_bufferSize_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int),target,dimension(:) :: bufferSize ! hipsparseZgebsr2gebsr_bufferSize_rank_1 = hipsparseZgebsr2gebsr_bufferSize_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,rowBlockDimC,colBlockDimC,c_loc(bufferSize)) end function function hipsparseXgebsr2gebsrNnz_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrRowPtrC,rowBlockDimC,colBlockDimC,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXgebsr2gebsrNnz_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC integer(c_int),target :: bsrRowPtrC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseXgebsr2gebsrNnz_rank_0 = hipsparseXgebsr2gebsrNnz_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrRowPtrC),rowBlockDimC,colBlockDimC,nnzTotalDevHostPtr,buffer) end function function hipsparseXgebsr2gebsrNnz_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrRowPtrC,rowBlockDimC,colBlockDimC,nnzTotalDevHostPtr,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseXgebsr2gebsrNnz_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC integer(c_int) :: nnzTotalDevHostPtr type(c_ptr) :: buffer ! hipsparseXgebsr2gebsrNnz_rank_1 = hipsparseXgebsr2gebsrNnz_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrRowPtrC),rowBlockDimC,colBlockDimC,nnzTotalDevHostPtr,buffer) end function function hipsparseSgebsr2gebsr_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC real(c_float),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseSgebsr2gebsr_rank_0 = hipsparseSgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseSgebsr2gebsr_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSgebsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_float),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC real(c_float),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseSgebsr2gebsr_rank_1 = hipsparseSgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseDgebsr2gebsr_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC real(c_double),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseDgebsr2gebsr_rank_0 = hipsparseDgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseDgebsr2gebsr_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDgebsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA real(c_double),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC real(c_double),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseDgebsr2gebsr_rank_1 = hipsparseDgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseCgebsr2gebsr_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC complex(c_float_complex),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseCgebsr2gebsr_rank_0 = hipsparseCgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseCgebsr2gebsr_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCgebsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC complex(c_float_complex),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseCgebsr2gebsr_rank_1 = hipsparseCgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseZgebsr2gebsr_rank_0(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target :: bsrValA integer(c_int),target :: bsrRowPtrA integer(c_int),target :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC complex(c_double_complex),target :: bsrValC integer(c_int),target :: bsrRowPtrC integer(c_int),target :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseZgebsr2gebsr_rank_0 = hipsparseZgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseZgebsr2gebsr_rank_1(handle,dirA,mb,nb,nnzb,descrA,bsrValA,bsrRowPtrA,bsrColIndA,rowBlockDimA,colBlockDimA,descrC,bsrValC,bsrRowPtrC,bsrColIndC,rowBlockDimC,colBlockDimC,buffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZgebsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(HIPSPARSE_DIRECTION_ROW)) :: dirA integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: bsrValA integer(c_int),target,dimension(:) :: bsrRowPtrA integer(c_int),target,dimension(:) :: bsrColIndA integer(c_int) :: rowBlockDimA integer(c_int) :: colBlockDimA type(c_ptr) :: descrC complex(c_double_complex),target,dimension(:) :: bsrValC integer(c_int),target,dimension(:) :: bsrRowPtrC integer(c_int),target,dimension(:) :: bsrColIndC integer(c_int) :: rowBlockDimC integer(c_int) :: colBlockDimC type(c_ptr) :: buffer ! hipsparseZgebsr2gebsr_rank_1 = hipsparseZgebsr2gebsr_(handle,dirA,mb,nb,nnzb,descrA,c_loc(bsrValA),c_loc(bsrRowPtrA),c_loc(bsrColIndA),rowBlockDimA,colBlockDimA,descrC,c_loc(bsrValC),c_loc(bsrRowPtrC),c_loc(bsrColIndC),rowBlockDimC,colBlockDimC,buffer) end function function hipsparseScsru2csr_bufferSizeExt_rank_0(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsru2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseScsru2csr_bufferSizeExt_rank_0 = hipsparseScsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseScsru2csr_bufferSizeExt_rank_1(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsru2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseScsru2csr_bufferSizeExt_rank_1 = hipsparseScsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseDcsru2csr_bufferSizeExt_rank_0(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsru2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDcsru2csr_bufferSizeExt_rank_0 = hipsparseDcsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseDcsru2csr_bufferSizeExt_rank_1(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsru2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseDcsru2csr_bufferSizeExt_rank_1 = hipsparseDcsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseCcsru2csr_bufferSizeExt_rank_0(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsru2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCcsru2csr_bufferSizeExt_rank_0 = hipsparseCcsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseCcsru2csr_bufferSizeExt_rank_1(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsru2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseCcsru2csr_bufferSizeExt_rank_1 = hipsparseCcsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseZcsru2csr_bufferSizeExt_rank_0(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsru2csr_bufferSizeExt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZcsru2csr_bufferSizeExt_rank_0 = hipsparseZcsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseZcsru2csr_bufferSizeExt_rank_1(handle,m,n,nnz,csrVal,csrRowPtr,csrColInd,myInfo,pBufferSizeInBytes) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsru2csr_bufferSizeExt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo integer(c_size_t) :: pBufferSizeInBytes ! hipsparseZcsru2csr_bufferSizeExt_rank_1 = hipsparseZcsru2csr_bufferSizeExt_(handle,m,n,nnz,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBufferSizeInBytes) end function function hipsparseScsru2csr_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsru2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseScsru2csr_rank_0 = hipsparseScsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseScsru2csr_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsru2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseScsru2csr_rank_1 = hipsparseScsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseDcsru2csr_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsru2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseDcsru2csr_rank_0 = hipsparseDcsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseDcsru2csr_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsru2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseDcsru2csr_rank_1 = hipsparseDcsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseCcsru2csr_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsru2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseCcsru2csr_rank_0 = hipsparseCcsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseCcsru2csr_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsru2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseCcsru2csr_rank_1 = hipsparseCcsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseZcsru2csr_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsru2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseZcsru2csr_rank_0 = hipsparseZcsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseZcsru2csr_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsru2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseZcsru2csr_rank_1 = hipsparseZcsru2csr_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseScsr2csru_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseScsr2csru_rank_0 = hipsparseScsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseScsr2csru_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsr2csru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseScsr2csru_rank_1 = hipsparseScsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseDcsr2csru_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseDcsr2csru_rank_0 = hipsparseDcsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseDcsr2csru_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsr2csru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseDcsr2csru_rank_1 = hipsparseDcsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseCcsr2csru_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseCcsr2csru_rank_0 = hipsparseCcsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseCcsr2csru_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsr2csru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseCcsr2csru_rank_1 = hipsparseCcsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseZcsr2csru_rank_0(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrVal integer(c_int),target :: csrRowPtr integer(c_int),target :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseZcsr2csru_rank_0 = hipsparseZcsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseZcsr2csru_rank_1(handle,m,n,nnz,descrA,csrVal,csrRowPtr,csrColInd,myInfo,pBuffer) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsr2csru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrVal integer(c_int),target,dimension(:) :: csrRowPtr integer(c_int),target,dimension(:) :: csrColInd type(c_ptr) :: myInfo type(c_ptr) :: pBuffer ! hipsparseZcsr2csru_rank_1 = hipsparseZcsr2csru_(handle,m,n,nnz,descrA,c_loc(csrVal),c_loc(csrRowPtr),c_loc(csrColInd),myInfo,pBuffer) end function function hipsparseScsrcolor_rank_0(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseScsrcolor_rank_0 = hipsparseScsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseScsrcolor_rank_1(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseScsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_float),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseScsrcolor_rank_1 = hipsparseScsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseDcsrcolor_rank_0(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseDcsrcolor_rank_0 = hipsparseDcsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseDcsrcolor_rank_1(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDcsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA real(c_double),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseDcsrcolor_rank_1 = hipsparseDcsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseCcsrcolor_rank_0(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseCcsrcolor_rank_0 = hipsparseCcsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseCcsrcolor_rank_1(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseCcsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_float_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseCcsrcolor_rank_1 = hipsparseCcsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseZcsrcolor_rank_0(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target :: csrValA integer(c_int),target :: csrRowPtrA integer(c_int),target :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseZcsrcolor_rank_0 = hipsparseZcsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseZcsrcolor_rank_1(handle,m,nnz,descrA,csrValA,csrRowPtrA,csrColIndA,fractionToColor,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseZcsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descrA complex(c_double_complex),target,dimension(:) :: csrValA integer(c_int),target,dimension(:) :: csrRowPtrA integer(c_int),target,dimension(:) :: csrColIndA type(c_ptr) :: fractionToColor integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! hipsparseZcsrcolor_rank_1 = hipsparseZcsrcolor_(handle,m,nnz,descrA,c_loc(csrValA),c_loc(csrRowPtrA),c_loc(csrColIndA),fractionToColor,ncolors,coloring,reordering,myInfo) end function function hipsparseSparseToDense_bufferSize_rank_0(handle,matA,matB,alg,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSparseToDense_bufferSize_rank_0 type(c_ptr) :: handle type(c_ptr) :: matA type(c_ptr) :: matB integer(kind(HIPSPARSE_SPARSETODENSE_ALG_DEFAULT)) :: alg integer(c_size_t),target :: bufferSize ! hipsparseSparseToDense_bufferSize_rank_0 = hipsparseSparseToDense_bufferSize_(handle,matA,matB,alg,c_loc(bufferSize)) end function function hipsparseSparseToDense_bufferSize_rank_1(handle,matA,matB,alg,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseSparseToDense_bufferSize_rank_1 type(c_ptr) :: handle type(c_ptr) :: matA type(c_ptr) :: matB integer(kind(HIPSPARSE_SPARSETODENSE_ALG_DEFAULT)) :: alg integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseSparseToDense_bufferSize_rank_1 = hipsparseSparseToDense_bufferSize_(handle,matA,matB,alg,c_loc(bufferSize)) end function function hipsparseDenseToSparse_bufferSize_rank_0(handle,matA,matB,alg,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDenseToSparse_bufferSize_rank_0 type(c_ptr) :: handle type(c_ptr) :: matA type(c_ptr) :: matB integer(kind(HIPSPARSE_DENSETOSPARSE_ALG_DEFAULT)) :: alg integer(c_size_t),target :: bufferSize ! hipsparseDenseToSparse_bufferSize_rank_0 = hipsparseDenseToSparse_bufferSize_(handle,matA,matB,alg,c_loc(bufferSize)) end function function hipsparseDenseToSparse_bufferSize_rank_1(handle,matA,matB,alg,bufferSize) use iso_c_binding use hipfort_hipsparse_enums use hipfort_enums implicit none integer(kind(HIPSPARSE_STATUS_SUCCESS)) :: hipsparseDenseToSparse_bufferSize_rank_1 type(c_ptr) :: handle type(c_ptr) :: matA type(c_ptr) :: matB integer(kind(HIPSPARSE_DENSETOSPARSE_ALG_DEFAULT)) :: alg integer(c_size_t),target,dimension(:) :: bufferSize ! hipsparseDenseToSparse_bufferSize_rank_1 = hipsparseDenseToSparse_bufferSize_(handle,matA,matB,alg,c_loc(bufferSize)) end function #endif end module hipfort_hipsparse hipfort-7.2.4/lib/hipfort/hipfort_rocblas.F900000664000175000017500000755026415207260635021275 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocblas use hipfort_rocblas_enums use hipfort_rocblas_auxiliary implicit none !> =========================================================================== !> level 1 BLAS !> =========================================================================== interface rocblas_sscal function rocblas_sscal_(handle,incx) bind(c, name="rocblas_sscal") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_ type(c_ptr),value :: handle integer(c_int),value :: incx end function end interface interface rocblas_dscal function rocblas_dscal_(handle,incx) bind(c, name="rocblas_dscal") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_ type(c_ptr),value :: handle integer(c_int),value :: incx end function end interface interface rocblas_cscal function rocblas_cscal_(handle,n,alpha,x,incx) bind(c, name="rocblas_cscal") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cscal_rank_0,& rocblas_cscal_rank_1 #endif end interface interface rocblas_zscal function rocblas_zscal_(handle,n,alpha,x,incx) bind(c, name="rocblas_zscal") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zscal_rank_0,& rocblas_zscal_rank_1 #endif end interface interface rocblas_csscal function rocblas_csscal_(handle,n,alpha,x,incx) bind(c, name="rocblas_csscal") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csscal_rank_0,& rocblas_csscal_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> scal scales each element of vector x with scalar alpha. !> !> x := alpha * x !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> alpha device pointer or host pointer for the scalar alpha. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> !> interface rocblas_zdscal function rocblas_zdscal_(handle,n,alpha,x,incx) bind(c, name="rocblas_zdscal") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdscal_rank_0,& rocblas_zdscal_rank_1 #endif end interface interface rocblas_sscal_batched function rocblas_sscal_batched_(handle,n,alpha,x,incx,batch_count) bind(c, name="rocblas_sscal_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sscal_batched_full_rank,& rocblas_sscal_batched_rank_0,& rocblas_sscal_batched_rank_1 #endif end interface interface rocblas_dscal_batched function rocblas_dscal_batched_(handle,n,alpha,x,incx,batch_count) bind(c, name="rocblas_dscal_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dscal_batched_full_rank,& rocblas_dscal_batched_rank_0,& rocblas_dscal_batched_rank_1 #endif end interface interface rocblas_cscal_batched function rocblas_cscal_batched_(handle,n,alpha,x,incx,batch_count) bind(c, name="rocblas_cscal_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cscal_batched_full_rank,& rocblas_cscal_batched_rank_0,& rocblas_cscal_batched_rank_1 #endif end interface interface rocblas_zscal_batched function rocblas_zscal_batched_(handle,n,alpha,x,incx,batch_count) bind(c, name="rocblas_zscal_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zscal_batched_full_rank,& rocblas_zscal_batched_rank_0,& rocblas_zscal_batched_rank_1 #endif end interface interface rocblas_csscal_batched function rocblas_csscal_batched_(handle,n,alpha,x,incx,batch_count) bind(c, name="rocblas_csscal_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csscal_batched_full_rank,& rocblas_csscal_batched_rank_0,& rocblas_csscal_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> \details !> scal_batched scales each element of vector x_i with scalar alpha, for i = 1, ... , batch_count. !> !> x_i := alpha * x_i !> !> where (x_i) is the i-th instance of the batch. !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i. !> @param[in] !> alpha host pointer or device pointer for the scalar alpha. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batch_count [rocblas_int] !> specifies the number of batches in x. interface rocblas_zdscal_batched function rocblas_zdscal_batched_(handle,n,alpha,x,incx,batch_count) bind(c, name="rocblas_zdscal_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdscal_batched_full_rank,& rocblas_zdscal_batched_rank_0,& rocblas_zdscal_batched_rank_1 #endif end interface interface rocblas_sscal_strided_batched function rocblas_sscal_strided_batched_(handle,n,alpha,x,incx,stride_x,batch_count) bind(c, name="rocblas_sscal_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sscal_strided_batched_rank_0,& rocblas_sscal_strided_batched_rank_1 #endif end interface interface rocblas_dscal_strided_batched function rocblas_dscal_strided_batched_(handle,n,alpha,x,incx,stride_x,batch_count) bind(c, name="rocblas_dscal_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dscal_strided_batched_rank_0,& rocblas_dscal_strided_batched_rank_1 #endif end interface interface rocblas_cscal_strided_batched function rocblas_cscal_strided_batched_(handle,n,alpha,x,incx,stride_x,batch_count) bind(c, name="rocblas_cscal_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cscal_strided_batched_rank_0,& rocblas_cscal_strided_batched_rank_1 #endif end interface interface rocblas_zscal_strided_batched function rocblas_zscal_strided_batched_(handle,n,alpha,x,incx,stride_x,batch_count) bind(c, name="rocblas_zscal_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zscal_strided_batched_rank_0,& rocblas_zscal_strided_batched_rank_1 #endif end interface interface rocblas_csscal_strided_batched function rocblas_csscal_strided_batched_(handle,n,alpha,x,incx,stride_x,batch_count) bind(c, name="rocblas_csscal_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csscal_strided_batched_rank_0,& rocblas_csscal_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> \details !> scal_strided_batched scales each element of vector x_i with scalar alpha, for i = 1, ... , batch_count. !> !> x_i := alpha * x_i , !> !> where (x_i) is the i-th instance of the batch. !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i. !> @param[in] !> alpha host pointer or device pointer for the scalar alpha. !> @param[inout] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[in] !> batch_count [rocblas_int] !> specifies the number of batches in x. interface rocblas_zdscal_strided_batched function rocblas_zdscal_strided_batched_(handle,n,alpha,x,incx,stride_x,batch_count) bind(c, name="rocblas_zdscal_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdscal_strided_batched_rank_0,& rocblas_zdscal_strided_batched_rank_1 #endif end interface interface rocblas_scopy function rocblas_scopy_(handle,n,x,incx,y,incy) bind(c, name="rocblas_scopy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scopy_rank_0,& rocblas_scopy_rank_1 #endif end interface interface rocblas_dcopy function rocblas_dcopy_(handle,n,x,incx,y,incy) bind(c, name="rocblas_dcopy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dcopy_rank_0,& rocblas_dcopy_rank_1 #endif end interface interface rocblas_ccopy function rocblas_ccopy_(handle,n,x,incx,y,incy) bind(c, name="rocblas_ccopy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ccopy_rank_0,& rocblas_ccopy_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> copy copies each element x[i] into y[i], for i = 1 , ... , n !> !> y := x, !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x to be copied to y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[out] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zcopy function rocblas_zcopy_(handle,n,x,incx,y,incy) bind(c, name="rocblas_zcopy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zcopy_rank_0,& rocblas_zcopy_rank_1 #endif end interface interface rocblas_scopy_batched function rocblas_scopy_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_scopy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scopy_batched_full_rank,& rocblas_scopy_batched_rank_0,& rocblas_scopy_batched_rank_1 #endif end interface interface rocblas_dcopy_batched function rocblas_dcopy_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_dcopy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dcopy_batched_full_rank,& rocblas_dcopy_batched_rank_0,& rocblas_dcopy_batched_rank_1 #endif end interface interface rocblas_ccopy_batched function rocblas_ccopy_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_ccopy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ccopy_batched_full_rank,& rocblas_ccopy_batched_rank_0,& rocblas_ccopy_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> copy_batched copies each element x_i[j] into y_i[j], for j = 1 , ... , n; i = 1 , ... , batch_count !> !> y_i := x_i, !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i to be copied to y_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i. !> @param[out] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zcopy_batched function rocblas_zcopy_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_zcopy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zcopy_batched_full_rank,& rocblas_zcopy_batched_rank_0,& rocblas_zcopy_batched_rank_1 #endif end interface interface rocblas_scopy_strided_batched function rocblas_scopy_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_scopy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scopy_strided_batched_rank_0,& rocblas_scopy_strided_batched_rank_1 #endif end interface interface rocblas_dcopy_strided_batched function rocblas_dcopy_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_dcopy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dcopy_strided_batched_rank_0,& rocblas_dcopy_strided_batched_rank_1 #endif end interface interface rocblas_ccopy_strided_batched function rocblas_ccopy_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_ccopy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ccopy_strided_batched_rank_0,& rocblas_ccopy_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> copy_strided_batched copies each element x_i[j] into y_i[j], for j = 1 , ... , n; i = 1 , ... , batch_count !> !> y_i := x_i, !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i to be copied to y_i. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [rocblas_int] !> specifies the increments for the elements of vectors x_i. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[out] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of vectors y_i. !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_y, however the user should !> take care to ensure that stride_y is of appropriate size, for a typical !> case this means stride_y >= n * incy. stridey should be non zero. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zcopy_strided_batched function rocblas_zcopy_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_zcopy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zcopy_strided_batched_rank_0,& rocblas_zcopy_strided_batched_rank_1 #endif end interface interface rocblas_sdot function rocblas_sdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_sdot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sdot_rank_0,& rocblas_sdot_rank_1 #endif end interface interface rocblas_ddot function rocblas_ddot_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_ddot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ddot_rank_0,& rocblas_ddot_rank_1 #endif end interface interface rocblas_hdot function rocblas_hdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_hdot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hdot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: myResult end function end interface interface rocblas_bfdot function rocblas_bfdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_bfdot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_bfdot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function end interface interface rocblas_cdotu function rocblas_cdotu_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_cdotu") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdotu_rank_0,& rocblas_cdotu_rank_1 #endif end interface interface rocblas_zdotu function rocblas_zdotu_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_zdotu") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdotu_rank_0,& rocblas_zdotu_rank_1 #endif end interface interface rocblas_cdotc function rocblas_cdotc_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_cdotc") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdotc_rank_0,& rocblas_cdotc_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> dot(u) performs the dot product of vectors x and y !> !> result = x * y; !> !> dotc performs the dot product of the conjugate of complex vector x and complex vector y !> !> result = conjugate (x) * y; !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x and y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the dot product. !> return is 0.0 if n <= 0. !> interface rocblas_zdotc function rocblas_zdotc_(handle,n,x,incx,y,incy,myResult) bind(c, name="rocblas_zdotc") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdotc_rank_0,& rocblas_zdotc_rank_1 #endif end interface interface rocblas_sdot_batched function rocblas_sdot_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_sdot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sdot_batched_full_rank,& rocblas_sdot_batched_rank_0,& rocblas_sdot_batched_rank_1 #endif end interface interface rocblas_ddot_batched function rocblas_ddot_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_ddot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ddot_batched_full_rank,& rocblas_ddot_batched_rank_0,& rocblas_ddot_batched_rank_1 #endif end interface interface rocblas_hdot_batched function rocblas_hdot_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_hdot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hdot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr) :: myResult end function end interface interface rocblas_bfdot_batched function rocblas_bfdot_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_bfdot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_bfdot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function end interface interface rocblas_cdotu_batched function rocblas_cdotu_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_cdotu_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdotu_batched_full_rank,& rocblas_cdotu_batched_rank_0,& rocblas_cdotu_batched_rank_1 #endif end interface interface rocblas_zdotu_batched function rocblas_zdotu_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_zdotu_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdotu_batched_full_rank,& rocblas_zdotu_batched_rank_0,& rocblas_zdotu_batched_rank_1 #endif end interface interface rocblas_cdotc_batched function rocblas_cdotc_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_cdotc_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdotc_batched_full_rank,& rocblas_cdotc_batched_rank_0,& rocblas_cdotc_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> dot_batched(u) performs a batch of dot products of vectors x and y !> !> result_i = x_i * y_i; !> !> dotc_batched performs a batch of dot products of the conjugate of complex vector x and complex vector y !> !> result_i = conjugate (x_i) * y_i; !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[inout] !> result !> device array or host array of batch_count size to store the dot products of each batch. !> return 0.0 for each element if n <= 0. !> interface rocblas_zdotc_batched function rocblas_zdotc_batched_(handle,n,x,incx,y,incy,batch_count,myResult) bind(c, name="rocblas_zdotc_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdotc_batched_full_rank,& rocblas_zdotc_batched_rank_0,& rocblas_zdotc_batched_rank_1 #endif end interface interface rocblas_sdot_strided_batched function rocblas_sdot_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_sdot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sdot_strided_batched_rank_0,& rocblas_sdot_strided_batched_rank_1 #endif end interface interface rocblas_ddot_strided_batched function rocblas_ddot_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_ddot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ddot_strided_batched_rank_0,& rocblas_ddot_strided_batched_rank_1 #endif end interface interface rocblas_hdot_strided_batched function rocblas_hdot_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_hdot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hdot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr) :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr) :: myResult end function end interface interface rocblas_bfdot_strided_batched function rocblas_bfdot_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_bfdot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_bfdot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function end interface interface rocblas_cdotu_strided_batched function rocblas_cdotu_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_cdotu_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdotu_strided_batched_rank_0,& rocblas_cdotu_strided_batched_rank_1 #endif end interface interface rocblas_zdotu_strided_batched function rocblas_zdotu_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_zdotu_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdotu_strided_batched_rank_0,& rocblas_zdotu_strided_batched_rank_1 #endif end interface interface rocblas_cdotc_strided_batched function rocblas_cdotc_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_cdotc_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdotc_strided_batched_rank_0,& rocblas_cdotc_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> dot_strided_batched(u) performs a batch of dot products of vectors x and y !> !> result_i = x_i * y_i; !> !> dotc_strided_batched performs a batch of dot products of the conjugate of complex vector x and complex vector y !> !> result_i = conjugate (x_i) * y_i; !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[inout] !> result !> device array or host array of batch_count size to store the dot products of each batch. !> return 0.0 for each element if n <= 0. !> interface rocblas_zdotc_strided_batched function rocblas_zdotc_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) bind(c, name="rocblas_zdotc_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdotc_strided_batched_rank_0,& rocblas_zdotc_strided_batched_rank_1 #endif end interface interface rocblas_sswap function rocblas_sswap_(handle,incy) bind(c, name="rocblas_sswap") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_ type(c_ptr),value :: handle integer(c_int),value :: incy end function end interface interface rocblas_dswap function rocblas_dswap_(handle,incy) bind(c, name="rocblas_dswap") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_ type(c_ptr),value :: handle integer(c_int),value :: incy end function end interface interface rocblas_cswap function rocblas_cswap_(handle,n,x,incx,y,incy) bind(c, name="rocblas_cswap") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cswap_rank_0,& rocblas_cswap_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> swap interchanges vectors x and y. !> !> y := x; x := y !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x and y. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zswap function rocblas_zswap_(handle,n,x,incx,y,incy) bind(c, name="rocblas_zswap") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zswap_rank_0,& rocblas_zswap_rank_1 #endif end interface interface rocblas_sswap_batched function rocblas_sswap_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_sswap_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sswap_batched_full_rank,& rocblas_sswap_batched_rank_0,& rocblas_sswap_batched_rank_1 #endif end interface interface rocblas_dswap_batched function rocblas_dswap_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_dswap_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dswap_batched_full_rank,& rocblas_dswap_batched_rank_0,& rocblas_dswap_batched_rank_1 #endif end interface interface rocblas_cswap_batched function rocblas_cswap_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_cswap_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cswap_batched_full_rank,& rocblas_cswap_batched_rank_0,& rocblas_cswap_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> swap_batched interchanges vectors x_i and y_i, for i = 1 , ... , batch_count !> !> y_i := x_i; x_i := y_i !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zswap_batched function rocblas_zswap_batched_(handle,n,x,incx,y,incy,batch_count) bind(c, name="rocblas_zswap_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zswap_batched_full_rank,& rocblas_zswap_batched_rank_0,& rocblas_zswap_batched_rank_1 #endif end interface interface rocblas_sswap_strided_batched function rocblas_sswap_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_sswap_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sswap_strided_batched_rank_0,& rocblas_sswap_strided_batched_rank_1 #endif end interface interface rocblas_dswap_strided_batched function rocblas_dswap_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_dswap_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dswap_strided_batched_rank_0,& rocblas_dswap_strided_batched_rank_1 #endif end interface interface rocblas_cswap_strided_batched function rocblas_cswap_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_cswap_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cswap_strided_batched_rank_0,& rocblas_cswap_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> swap_strided_batched interchanges vectors x_i and y_i, for i = 1 , ... , batch_count !> !> y_i := x_i; x_i := y_i !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[inout] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[inout] !> y device pointer to the first vector y_1. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_y is of appropriate size, for a typical !> case this means stride_y >= n * incy. stridey should be non zero. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zswap_strided_batched function rocblas_zswap_strided_batched_(handle,n,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_zswap_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zswap_strided_batched_rank_0,& rocblas_zswap_strided_batched_rank_1 #endif end interface interface rocblas_saxpy function rocblas_saxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="rocblas_saxpy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_saxpy_rank_0,& rocblas_saxpy_rank_1 #endif end interface interface rocblas_daxpy function rocblas_daxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="rocblas_daxpy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_daxpy_rank_0,& rocblas_daxpy_rank_1 #endif end interface interface rocblas_haxpy function rocblas_haxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="rocblas_haxpy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_haxpy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy end function end interface interface rocblas_caxpy function rocblas_caxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="rocblas_caxpy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_caxpy_rank_0,& rocblas_caxpy_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> axpy computes ant alpha multiplied by vector x, plus vector y !> !> y := alpha * x + y !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x and y. !> @param[in] !> alpha device pointer or host pointer to specify the scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[out] !> y device pointer storing vector y. !> @param[inout] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zaxpy function rocblas_zaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="rocblas_zaxpy") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zaxpy_rank_0,& rocblas_zaxpy_rank_1 #endif end interface interface rocblas_haxpy_batched function rocblas_haxpy_batched_(handle,n,alpha,x,incx,y,incy,batch_count) bind(c, name="rocblas_haxpy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_haxpy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function end interface interface rocblas_saxpy_batched function rocblas_saxpy_batched_(handle,n,alpha,x,incx,y,incy,batch_count) bind(c, name="rocblas_saxpy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_saxpy_batched_full_rank,& rocblas_saxpy_batched_rank_0,& rocblas_saxpy_batched_rank_1 #endif end interface interface rocblas_daxpy_batched function rocblas_daxpy_batched_(handle,n,alpha,x,incx,y,incy,batch_count) bind(c, name="rocblas_daxpy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_daxpy_batched_full_rank,& rocblas_daxpy_batched_rank_0,& rocblas_daxpy_batched_rank_1 #endif end interface interface rocblas_caxpy_batched function rocblas_caxpy_batched_(handle,n,alpha,x,incx,y,incy,batch_count) bind(c, name="rocblas_caxpy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_caxpy_batched_full_rank,& rocblas_caxpy_batched_rank_0,& rocblas_caxpy_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> axpy_batched compute y := alpha * x + y over a set of batched vectors. !> !> @param[in] !> handle rocblas_handle !> handle to the rocblas library context queue. !> @param[in] !> n rocblas_int !> @param[in] !> alpha specifies the scalar alpha. !> @param[in] !> x pointer storing vector x on the GPU. !> @param[in] !> incx rocblas_int !> specifies the increment for the elements of x. !> @param[out] !> y pointer storing vector y on the GPU. !> @param[inout] !> incy rocblas_int !> specifies the increment for the elements of y. !> !> @param[in] !> batch_count rocblas_int !> number of instances in the batch !> interface rocblas_zaxpy_batched function rocblas_zaxpy_batched_(handle,n,alpha,x,incx,y,incy,batch_count) bind(c, name="rocblas_zaxpy_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zaxpy_batched_full_rank,& rocblas_zaxpy_batched_rank_0,& rocblas_zaxpy_batched_rank_1 #endif end interface interface rocblas_haxpy_strided_batched function rocblas_haxpy_strided_batched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_haxpy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_haxpy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr) :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function end interface interface rocblas_saxpy_strided_batched function rocblas_saxpy_strided_batched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_saxpy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_saxpy_strided_batched_rank_0,& rocblas_saxpy_strided_batched_rank_1 #endif end interface interface rocblas_daxpy_strided_batched function rocblas_daxpy_strided_batched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_daxpy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_daxpy_strided_batched_rank_0,& rocblas_daxpy_strided_batched_rank_1 #endif end interface interface rocblas_caxpy_strided_batched function rocblas_caxpy_strided_batched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_caxpy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_caxpy_strided_batched_rank_0,& rocblas_caxpy_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> axpy_strided_batched compute y := alpha * x + y over a set of strided batched vectors. !> !> @param[in] !> handle rocblas_handle !> handle to the rocblas library context queue. !> @param[in] !> n rocblas_int !> @param[in] !> alpha specifies the scalar alpha. !> @param[in] !> x pointer storing vector x on the GPU. !> @param[in] !> incx rocblas_int !> specifies the increment for the elements of x. !> @param[in] !> stridex rocblas_stride !> specifies the increment between vectors of x. !> @param[out] !> y pointer storing vector y on the GPU. !> @param[inout] !> incy rocblas_int !> specifies the increment for the elements of y. !> @param[in] !> stridey rocblas_stride !> specifies the increment between vectors of y. !> !> @param[in] !> batch_count rocblas_int !> number of instances in the batch !> interface rocblas_zaxpy_strided_batched function rocblas_zaxpy_strided_batched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) bind(c, name="rocblas_zaxpy_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zaxpy_strided_batched_rank_0,& rocblas_zaxpy_strided_batched_rank_1 #endif end interface interface rocblas_sasum function rocblas_sasum_(handle,incx,myResult) bind(c, name="rocblas_sasum") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_ type(c_ptr),value :: handle integer(c_int),value :: incx type(c_ptr),value :: myResult end function end interface interface rocblas_dasum function rocblas_dasum_(handle,incx,myResult) bind(c, name="rocblas_dasum") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_ type(c_ptr),value :: handle integer(c_int),value :: incx type(c_ptr),value :: myResult end function end interface interface rocblas_scasum function rocblas_scasum_(handle,n,x,incx,myResult) bind(c, name="rocblas_scasum") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scasum_rank_0,& rocblas_scasum_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> asum computes the sum of the magnitudes of elements of a real vector x, !> or the sum of magnitudes of the real and imaginary parts of elements if x is a complex !> vector !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x and y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. incx must be > 0. !> @param[inout] !> result !> device pointer or host pointer to store the asum product. !> return is 0.0 if n <= 0. !> interface rocblas_dzasum function rocblas_dzasum_(handle,n,x,incx,myResult) bind(c, name="rocblas_dzasum") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dzasum_rank_0,& rocblas_dzasum_rank_1 #endif end interface interface rocblas_sasum_batched function rocblas_sasum_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_sasum_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sasum_batched_full_rank,& rocblas_sasum_batched_rank_0,& rocblas_sasum_batched_rank_1 #endif end interface interface rocblas_dasum_batched function rocblas_dasum_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_dasum_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dasum_batched_full_rank,& rocblas_dasum_batched_rank_0,& rocblas_dasum_batched_rank_1 #endif end interface interface rocblas_scasum_batched function rocblas_scasum_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_scasum_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scasum_batched_full_rank,& rocblas_scasum_batched_rank_0,& rocblas_scasum_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> asum_batched computes the sum of the magnitudes of the elements in a batch of real vectors x_i, !> or the sum of magnitudes of the real and imaginary parts of elements if x_i is a complex !> vector, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each vector x_i !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[out] !> results !> device array or host array of batch_count size for results. !> return is 0.0 if n, incx<=0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_dzasum_batched function rocblas_dzasum_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_dzasum_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dzasum_batched_full_rank,& rocblas_dzasum_batched_rank_0,& rocblas_dzasum_batched_rank_1 #endif end interface interface rocblas_sasum_strided_batched function rocblas_sasum_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_sasum_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sasum_strided_batched_rank_0,& rocblas_sasum_strided_batched_rank_1 #endif end interface interface rocblas_dasum_strided_batched function rocblas_dasum_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_dasum_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dasum_strided_batched_rank_0,& rocblas_dasum_strided_batched_rank_1 #endif end interface interface rocblas_scasum_strided_batched function rocblas_scasum_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_scasum_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scasum_strided_batched_rank_0,& rocblas_scasum_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> asum_strided_batched computes the sum of the magnitudes of elements of a real vectors x_i, !> or the sum of magnitudes of the real and imaginary parts of elements if x_i is a complex !> vector, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each vector x_i !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[out] !> results !> device pointer or host pointer to array for storing contiguous batch_count results. !> return is 0.0 if n, incx<=0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch interface rocblas_dzasum_strided_batched function rocblas_dzasum_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_dzasum_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dzasum_strided_batched_rank_0,& rocblas_dzasum_strided_batched_rank_1 #endif end interface interface rocblas_snrm2 function rocblas_snrm2_(handle,incx,myResult) bind(c, name="rocblas_snrm2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_ type(c_ptr),value :: handle integer(c_int),value :: incx type(c_ptr),value :: myResult end function end interface interface rocblas_dnrm2 function rocblas_dnrm2_(handle,incx,myResult) bind(c, name="rocblas_dnrm2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_ type(c_ptr),value :: handle integer(c_int),value :: incx type(c_ptr),value :: myResult end function end interface interface rocblas_scnrm2 function rocblas_scnrm2_(handle,n,x,incx,myResult) bind(c, name="rocblas_scnrm2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scnrm2_rank_0,& rocblas_scnrm2_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> nrm2 computes the euclidean norm of a real or complex vector !> !> result := sqrt( x'*x ) for real vectors !> result := sqrt( x**H*x ) for complex vectors !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the nrm2 product. !> return is 0.0 if n, incx<=0. interface rocblas_dznrm2 function rocblas_dznrm2_(handle,n,x,incx,myResult) bind(c, name="rocblas_dznrm2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dznrm2_rank_0,& rocblas_dznrm2_rank_1 #endif end interface interface rocblas_snrm2_batched function rocblas_snrm2_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_snrm2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_snrm2_batched_full_rank,& rocblas_snrm2_batched_rank_0,& rocblas_snrm2_batched_rank_1 #endif end interface interface rocblas_dnrm2_batched function rocblas_dnrm2_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_dnrm2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dnrm2_batched_full_rank,& rocblas_dnrm2_batched_rank_0,& rocblas_dnrm2_batched_rank_1 #endif end interface interface rocblas_scnrm2_batched function rocblas_scnrm2_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_scnrm2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scnrm2_batched_full_rank,& rocblas_scnrm2_batched_rank_0,& rocblas_scnrm2_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> nrm2_batched computes the euclidean norm over a batch of real or complex vectors !> !> result := sqrt( x_i'*x_i ) for real vectors x, for i = 1, ..., batch_count !> result := sqrt( x_i**H*x_i ) for complex vectors x, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[out] !> results !> device pointer or host pointer to array of batch_count size for nrm2 results. !> return is 0.0 for each element if n <= 0, incx<=0. !> interface rocblas_dznrm2_batched function rocblas_dznrm2_batched_(handle,n,x,incx,batch_count,results) bind(c, name="rocblas_dznrm2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dznrm2_batched_full_rank,& rocblas_dznrm2_batched_rank_0,& rocblas_dznrm2_batched_rank_1 #endif end interface interface rocblas_snrm2_strided_batched function rocblas_snrm2_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_snrm2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_snrm2_strided_batched_rank_0,& rocblas_snrm2_strided_batched_rank_1 #endif end interface interface rocblas_dnrm2_strided_batched function rocblas_dnrm2_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_dnrm2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dnrm2_strided_batched_rank_0,& rocblas_dnrm2_strided_batched_rank_1 #endif end interface interface rocblas_scnrm2_strided_batched function rocblas_scnrm2_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_scnrm2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_scnrm2_strided_batched_rank_0,& rocblas_scnrm2_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> nrm2_strided_batched computes the euclidean norm over a batch of real or complex vectors !> !> := sqrt( x_i'*x_i ) for real vectors x, for i = 1, ..., batch_count !> := sqrt( x_i**H*x_i ) for complex vectors, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[out] !> results !> device pointer or host pointer to array for storing contiguous batch_count results. !> return is 0.0 for each element if n <= 0, incx<=0. !> interface rocblas_dznrm2_strided_batched function rocblas_dznrm2_strided_batched_(handle,n,x,incx,stridex,batch_count,results) bind(c, name="rocblas_dznrm2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: results end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dznrm2_strided_batched_rank_0,& rocblas_dznrm2_strided_batched_rank_1 #endif end interface interface rocblas_isamax function rocblas_isamax_(handle,myResult) bind(c, name="rocblas_isamax") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_ type(c_ptr),value :: handle type(c_ptr),value :: myResult end function end interface interface rocblas_idamax function rocblas_idamax_(handle,myResult) bind(c, name="rocblas_idamax") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_ type(c_ptr),value :: handle type(c_ptr),value :: myResult end function end interface interface rocblas_icamax function rocblas_icamax_(handle,n,x,incx,myResult) bind(c, name="rocblas_icamax") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_icamax_rank_0,& rocblas_icamax_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amax finds the first index of the element of maximum magnitude of a vector x. !> vector !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the amax index. !> return is 0.0 if n, incx<=0. interface rocblas_izamax function rocblas_izamax_(handle,n,x,incx,myResult) bind(c, name="rocblas_izamax") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_izamax_rank_0,& rocblas_izamax_rank_1 #endif end interface interface rocblas_isamax_batched function rocblas_isamax_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_isamax_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_isamax_batched_full_rank,& rocblas_isamax_batched_rank_0,& rocblas_isamax_batched_rank_1 #endif end interface interface rocblas_idamax_batched function rocblas_idamax_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_idamax_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_idamax_batched_full_rank,& rocblas_idamax_batched_rank_0,& rocblas_idamax_batched_rank_1 #endif end interface interface rocblas_icamax_batched function rocblas_icamax_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_icamax_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_icamax_batched_full_rank,& rocblas_icamax_batched_rank_0,& rocblas_icamax_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amax_batched finds the first index of the element of maximum magnitude of each vector x_i in a batch, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each vector x_i !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch, must be > 0. !> @param[out] !> result !> device or host array of pointers of batch_count size for results. !> return is 0 if n, incx<=0. interface rocblas_izamax_batched function rocblas_izamax_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_izamax_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_izamax_batched_full_rank,& rocblas_izamax_batched_rank_0,& rocblas_izamax_batched_rank_1 #endif end interface interface rocblas_isamax_strided_batched function rocblas_isamax_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_isamax_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_isamax_strided_batched_rank_0,& rocblas_isamax_strided_batched_rank_1 #endif end interface interface rocblas_idamax_strided_batched function rocblas_idamax_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_idamax_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_idamax_strided_batched_rank_0,& rocblas_idamax_strided_batched_rank_1 #endif end interface interface rocblas_icamax_strided_batched function rocblas_icamax_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_icamax_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_icamax_strided_batched_rank_0,& rocblas_icamax_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amax_strided_batched finds the first index of the element of maximum magnitude of each vector x_i in a batch, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each vector x_i !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [rocblas_stride] !> specifies the pointer increment between one x_i and the next x_(i + 1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[out] !> result !> device or host pointer for storing contiguous batch_count results. !> return is 0 if n <= 0, incx<=0. !> interface rocblas_izamax_strided_batched function rocblas_izamax_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_izamax_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_izamax_strided_batched_rank_0,& rocblas_izamax_strided_batched_rank_1 #endif end interface interface rocblas_isamin function rocblas_isamin_(handle,myResult) bind(c, name="rocblas_isamin") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_ type(c_ptr),value :: handle type(c_ptr),value :: myResult end function end interface interface rocblas_idamin function rocblas_idamin_(handle,myResult) bind(c, name="rocblas_idamin") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_ type(c_ptr),value :: handle type(c_ptr),value :: myResult end function end interface interface rocblas_icamin function rocblas_icamin_(handle,n,x,incx,myResult) bind(c, name="rocblas_icamin") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_icamin_rank_0,& rocblas_icamin_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amin finds the first index of the element of minimum magnitude of a vector x. !> !> vector !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the amin index. !> return is 0.0 if n, incx<=0. interface rocblas_izamin function rocblas_izamin_(handle,n,x,incx,myResult) bind(c, name="rocblas_izamin") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_izamin_rank_0,& rocblas_izamin_rank_1 #endif end interface interface rocblas_isamin_batched function rocblas_isamin_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_isamin_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_isamin_batched_full_rank,& rocblas_isamin_batched_rank_0,& rocblas_isamin_batched_rank_1 #endif end interface interface rocblas_idamin_batched function rocblas_idamin_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_idamin_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_idamin_batched_full_rank,& rocblas_idamin_batched_rank_0,& rocblas_idamin_batched_rank_1 #endif end interface interface rocblas_icamin_batched function rocblas_icamin_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_icamin_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_icamin_batched_full_rank,& rocblas_icamin_batched_rank_0,& rocblas_icamin_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amin_batched finds the first index of the element of minimum magnitude of each vector x_i in a batch, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each vector x_i !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch, must be > 0. !> @param[out] !> result !> device or host pointers to array of batch_count size for results. !> return is 0 if n, incx<=0. interface rocblas_izamin_batched function rocblas_izamin_batched_(handle,n,x,incx,batch_count,myResult) bind(c, name="rocblas_izamin_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_izamin_batched_full_rank,& rocblas_izamin_batched_rank_0,& rocblas_izamin_batched_rank_1 #endif end interface interface rocblas_isamin_strided_batched function rocblas_isamin_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_isamin_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_isamin_strided_batched_rank_0,& rocblas_isamin_strided_batched_rank_1 #endif end interface interface rocblas_idamin_strided_batched function rocblas_idamin_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_idamin_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_idamin_strided_batched_rank_0,& rocblas_idamin_strided_batched_rank_1 #endif end interface interface rocblas_icamin_strided_batched function rocblas_icamin_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_icamin_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_icamin_strided_batched_rank_0,& rocblas_icamin_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amin_strided_batched finds the first index of the element of minimum magnitude of each vector x_i in a batch, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each vector x_i !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [rocblas_stride] !> specifies the pointer increment between one x_i and the next x_(i + 1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[out] !> result !> device or host pointer to array for storing contiguous batch_count results. !> return is 0 if n <= 0, incx<=0. !> interface rocblas_izamin_strided_batched function rocblas_izamin_strided_batched_(handle,n,x,incx,stridex,batch_count,myResult) bind(c, name="rocblas_izamin_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_izamin_strided_batched_rank_0,& rocblas_izamin_strided_batched_rank_1 #endif end interface interface rocblas_srot function rocblas_srot_(handle,n,x,incx,y,incy,c,s) bind(c, name="rocblas_srot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_srot_rank_0,& rocblas_srot_rank_1 #endif end interface interface rocblas_drot function rocblas_drot_(handle,n,x,incx,y,incy,c,s) bind(c, name="rocblas_drot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_drot_rank_0,& rocblas_drot_rank_1 #endif end interface interface rocblas_crot function rocblas_crot_(handle,n,x,incx,y,incy,c,s) bind(c, name="rocblas_crot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_crot_rank_0,& rocblas_crot_rank_1 #endif end interface interface rocblas_csrot function rocblas_csrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="rocblas_csrot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csrot_rank_0,& rocblas_csrot_rank_1 #endif end interface interface rocblas_zrot function rocblas_zrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="rocblas_zrot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zrot_rank_0,& rocblas_zrot_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rot applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to vectors x and y. !> Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of y. !> @param[in] !> c device pointer or host pointer storing scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer storing scalar sine component of the rotation matrix. !> interface rocblas_zdrot function rocblas_zdrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="rocblas_zdrot") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdrot_rank_0,& rocblas_zdrot_rank_1 #endif end interface interface rocblas_srot_batched function rocblas_srot_batched_(handle,n,x,incx,y,incy,c,s,batch_count) bind(c, name="rocblas_srot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_srot_batched_full_rank,& rocblas_srot_batched_rank_0,& rocblas_srot_batched_rank_1 #endif end interface interface rocblas_drot_batched function rocblas_drot_batched_(handle,n,x,incx,y,incy,c,s,batch_count) bind(c, name="rocblas_drot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_drot_batched_full_rank,& rocblas_drot_batched_rank_0,& rocblas_drot_batched_rank_1 #endif end interface interface rocblas_crot_batched function rocblas_crot_batched_(handle,n,x,incx,y,incy,c,s,batch_count) bind(c, name="rocblas_crot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_crot_batched_full_rank,& rocblas_crot_batched_rank_0,& rocblas_crot_batched_rank_1 #endif end interface interface rocblas_csrot_batched function rocblas_csrot_batched_(handle,n,x,incx,y,incy,c,s,batch_count) bind(c, name="rocblas_csrot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csrot_batched_full_rank,& rocblas_csrot_batched_rank_0,& rocblas_csrot_batched_rank_1 #endif end interface interface rocblas_zrot_batched function rocblas_zrot_batched_(handle,n,x,incx,y,incy,c,s,batch_count) bind(c, name="rocblas_zrot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zrot_batched_full_rank,& rocblas_zrot_batched_rank_0,& rocblas_zrot_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rot_batched applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to batched vectors x_i and y_i, for i = 1, ..., batch_count. !> Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i and y_i vectors. !> @param[inout] !> x device array of deivce pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of each y_i. !> @param[in] !> c device pointer or host pointer to scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer to scalar sine component of the rotation matrix. !> @param[in] !> batch_count [rocblas_int] !> the number of x and y arrays, i.e. the number of batches. !> interface rocblas_zdrot_batched function rocblas_zdrot_batched_(handle,n,x,incx,y,incy,c,s,batch_count) bind(c, name="rocblas_zdrot_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdrot_batched_full_rank,& rocblas_zdrot_batched_rank_0,& rocblas_zdrot_batched_rank_1 #endif end interface interface rocblas_srot_strided_batched function rocblas_srot_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) bind(c, name="rocblas_srot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_srot_strided_batched_rank_0,& rocblas_srot_strided_batched_rank_1 #endif end interface interface rocblas_drot_strided_batched function rocblas_drot_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) bind(c, name="rocblas_drot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_drot_strided_batched_rank_0,& rocblas_drot_strided_batched_rank_1 #endif end interface interface rocblas_crot_strided_batched function rocblas_crot_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) bind(c, name="rocblas_crot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_crot_strided_batched_rank_0,& rocblas_crot_strided_batched_rank_1 #endif end interface interface rocblas_csrot_strided_batched function rocblas_csrot_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) bind(c, name="rocblas_csrot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csrot_strided_batched_rank_0,& rocblas_csrot_strided_batched_rank_1 #endif end interface interface rocblas_zrot_strided_batched function rocblas_zrot_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) bind(c, name="rocblas_zrot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zrot_strided_batched_rank_0,& rocblas_zrot_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rot_strided_batched applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to strided batched vectors x_i and y_i, for i = 1, ..., batch_count. !> Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i and y_i vectors. !> @param[inout] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> specifies the increment from the beginning of x_i to the beginning of x_(i+1) !> @param[inout] !> y device pointer to the first vector y_1. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> specifies the increment from the beginning of y_i to the beginning of y_(i+1) !> @param[in] !> c device pointer or host pointer to scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer to scalar sine component of the rotation matrix. !> @param[in] !> batch_count [rocblas_int] !> the number of x and y arrays, i.e. the number of batches. !> interface rocblas_zdrot_strided_batched function rocblas_zdrot_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) bind(c, name="rocblas_zdrot_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdrot_strided_batched_rank_0,& rocblas_zdrot_strided_batched_rank_1 #endif end interface interface rocblas_srotg function rocblas_srotg_(handle,a,b,c,s) bind(c, name="rocblas_srotg") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface interface rocblas_drotg function rocblas_drotg_(handle,a,b,c,s) bind(c, name="rocblas_drotg") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface interface rocblas_crotg function rocblas_crotg_(handle,a,b,c,s) bind(c, name="rocblas_crotg") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotg creates the Givens rotation matrix for the vector (a b). !> Scalars c and s and arrays a and b may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> If the pointer mode is set to rocblas_pointer_mode_host, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to rocblas_pointer_mode_device, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[inout] !> a device pointer or host pointer to input vector element, overwritten with r. !> @param[inout] !> b device pointer or host pointer to input vector element, overwritten with z. !> @param[inout] !> c device pointer or host pointer to cosine element of Givens rotation. !> @param[inout] !> s device pointer or host pointer sine element of Givens rotation. !> interface rocblas_zrotg function rocblas_zrotg_(handle,a,b,c,s) bind(c, name="rocblas_zrotg") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface interface rocblas_srotg_batched function rocblas_srotg_batched_(handle,a,b,c,s,batch_count) bind(c, name="rocblas_srotg_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotg_batched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batch_count end function end interface interface rocblas_drotg_batched function rocblas_drotg_batched_(handle,a,b,c,s,batch_count) bind(c, name="rocblas_drotg_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotg_batched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batch_count end function end interface interface rocblas_crotg_batched function rocblas_crotg_batched_(handle,a,b,c,s,batch_count) bind(c, name="rocblas_crotg_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crotg_batched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batch_count end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotg_batched creates the Givens rotation matrix for the batched vectors (a_i b_i), for i = 1, ..., batch_count. !> a, b, c, and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> If the pointer mode is set to rocblas_pointer_mode_host, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to rocblas_pointer_mode_device, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[inout] !> a device array of device pointers storing each single input vector element a_i, overwritten with r_i. !> @param[inout] !> b device array of device pointers storing each single input vector element b_i, overwritten with z_i. !> @param[inout] !> c device array of device pointers storing each cosine element of Givens rotation for the batch. !> @param[inout] !> s device array of device pointers storing each sine element of Givens rotation for the batch. !> @param[in] !> batch_count [rocblas_int] !> number of batches (length of arrays a, b, c, and s). !> interface rocblas_zrotg_batched function rocblas_zrotg_batched_(handle,a,b,c,s,batch_count) bind(c, name="rocblas_zrotg_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrotg_batched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batch_count end function end interface interface rocblas_srotg_strided_batched function rocblas_srotg_strided_batched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batch_count) bind(c, name="rocblas_srotg_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotg_strided_batched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batch_count end function end interface interface rocblas_drotg_strided_batched function rocblas_drotg_strided_batched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batch_count) bind(c, name="rocblas_drotg_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotg_strided_batched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batch_count end function end interface interface rocblas_crotg_strided_batched function rocblas_crotg_strided_batched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batch_count) bind(c, name="rocblas_crotg_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crotg_strided_batched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batch_count end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotg_strided_batched creates the Givens rotation matrix for the strided batched vectors (a_i b_i), for i = 1, ..., batch_count. !> a, b, c, and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> If the pointer mode is set to rocblas_pointer_mode_host, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to rocblas_pointer_mode_device, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[inout] !> a device strided_batched pointer or host strided_batched pointer to first single input vector element a_1, overwritten with r. !> @param[in] !> stride_a [rocblas_stride] !> distance between elements of a in batch (distance between a_i and a_(i + 1)) !> @param[inout] !> b device strided_batched pointer or host strided_batched pointer to first single input vector element b_1, overwritten with z. !> @param[in] !> stride_b [rocblas_stride] !> distance between elements of b in batch (distance between b_i and b_(i + 1)) !> @param[inout] !> c device strided_batched pointer or host strided_batched pointer to first cosine element of Givens rotations c_1. !> @param[in] !> stride_c [rocblas_stride] !> distance between elements of c in batch (distance between c_i and c_(i + 1)) !> @param[inout] !> s device strided_batched pointer or host strided_batched pointer to sine element of Givens rotations s_1. !> @param[in] !> stride_s [rocblas_stride] !> distance between elements of s in batch (distance between s_i and s_(i + 1)) !> @param[in] !> batch_count [rocblas_int] !> number of batches (length of arrays a, b, c, and s). !> interface rocblas_zrotg_strided_batched function rocblas_zrotg_strided_batched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batch_count) bind(c, name="rocblas_zrotg_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrotg_strided_batched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batch_count end function end interface interface rocblas_srotm function rocblas_srotm_(handle,n,x,incx,y,incy,param) bind(c, name="rocblas_srotm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: param end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_srotm_rank_0,& rocblas_srotm_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotm applies the modified Givens rotation matrix defined by param to vectors x and y. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of y. !> @param[in] !> param device vector or host vector of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> interface rocblas_drotm function rocblas_drotm_(handle,n,x,incx,y,incy,param) bind(c, name="rocblas_drotm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: param end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_drotm_rank_0,& rocblas_drotm_rank_1 #endif end interface interface rocblas_srotm_batched function rocblas_srotm_batched_(handle,n,x,incx,y,incy,param,batch_count) bind(c, name="rocblas_srotm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: param integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_srotm_batched_full_rank,& rocblas_srotm_batched_rank_0,& rocblas_srotm_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotm_batched applies the modified Givens rotation matrix defined by param_i to batched vectors x_i and y_i, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in the x and y vectors. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_1. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of each y_i. !> @param[in] !> param device array of device vectors of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may ONLY be stored on the device for the batched version of this function. !> @param[in] !> batch_count [rocblas_int] !> the number of x and y arrays, i.e. the number of batches. !> interface rocblas_drotm_batched function rocblas_drotm_batched_(handle,n,x,incx,y,incy,param,batch_count) bind(c, name="rocblas_drotm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: param integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_drotm_batched_full_rank,& rocblas_drotm_batched_rank_0,& rocblas_drotm_batched_rank_1 #endif end interface interface rocblas_srotm_strided_batched function rocblas_srotm_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,param,stride_param,batch_count) bind(c, name="rocblas_srotm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: param integer(c_int64_t),value :: stride_param integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_srotm_strided_batched_rank_0,& rocblas_srotm_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotm_strided_batched applies the modified Givens rotation matrix defined by param_i to strided batched vectors x_i and y_i, for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer pointing to first strided batched vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> specifies the increment between the beginning of x_i and x_(i + 1) !> @param[inout] !> y device pointer pointing to first strided batched vector y_1. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> specifies the increment between the beginning of y_i and y_(i + 1) !> @param[in] !> param device pointer pointing to first array of 5 elements defining the rotation (param_1). !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may ONLY be stored on the device for the strided_batched version of this function. !> @param[in] !> stride_param [rocblas_stride] !> specifies the increment between the beginning of param_i and param_(i + 1) !> @param[in] !> batch_count [rocblas_int] !> the number of x and y arrays, i.e. the number of batches. !> interface rocblas_drotm_strided_batched function rocblas_drotm_strided_batched_(handle,n,x,incx,stride_x,y,incy,stride_y,param,stride_param,batch_count) bind(c, name="rocblas_drotm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: param integer(c_int64_t),value :: stride_param integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_drotm_strided_batched_rank_0,& rocblas_drotm_strided_batched_rank_1 #endif end interface interface rocblas_srotmg function rocblas_srotmg_(handle,d1,d2,x1,y1,param) bind(c, name="rocblas_srotmg") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotmg_ type(c_ptr),value :: handle type(c_ptr),value :: d1 type(c_ptr),value :: d2 type(c_ptr),value :: x1 type(c_ptr),value :: y1 type(c_ptr),value :: param end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotmg creates the modified Givens rotation matrix for the vector (d1 * x1, d2 * y1). !> Parameters may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> If the pointer mode is set to rocblas_pointer_mode_host, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to rocblas_pointer_mode_device, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[inout] !> d1 device pointer or host pointer to input scalar that is overwritten. !> @param[inout] !> d2 device pointer or host pointer to input scalar that is overwritten. !> @param[inout] !> x1 device pointer or host pointer to input scalar that is overwritten. !> @param[in] !> y1 device pointer or host pointer to input scalar. !> @param[out] !> param device vector or host vector of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> interface rocblas_drotmg function rocblas_drotmg_(handle,d1,d2,x1,y1,param) bind(c, name="rocblas_drotmg") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotmg_ type(c_ptr),value :: handle type(c_ptr),value :: d1 type(c_ptr),value :: d2 type(c_ptr),value :: x1 type(c_ptr),value :: y1 type(c_ptr),value :: param end function end interface interface rocblas_srotmg_batched function rocblas_srotmg_batched_(handle,d1,d2,x1,y1,param,batch_count) bind(c, name="rocblas_srotmg_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotmg_batched_ type(c_ptr),value :: handle type(c_ptr) :: d1 type(c_ptr) :: d2 type(c_ptr) :: x1 type(c_ptr) :: y1 type(c_ptr) :: param integer(c_int),value :: batch_count end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotmg_batched creates the modified Givens rotation matrix for the batched vectors (d1_i * x1_i, d2_i * y1_i), for i = 1, ..., batch_count. !> Parameters may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> If the pointer mode is set to rocblas_pointer_mode_host, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to rocblas_pointer_mode_device, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[inout] !> d1 device batched array or host batched array of input scalars that is overwritten. !> @param[inout] !> d2 device batched array or host batched array of input scalars that is overwritten. !> @param[inout] !> x1 device batched array or host batched array of input scalars that is overwritten. !> @param[in] !> y1 device batched array or host batched array of input scalars. !> @param[out] !> param device batched array or host batched array of vectors of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> @param[in] !> batch_count [rocblas_int] !> the number of instances in the batch. !> interface rocblas_drotmg_batched function rocblas_drotmg_batched_(handle,d1,d2,x1,y1,param,batch_count) bind(c, name="rocblas_drotmg_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotmg_batched_ type(c_ptr),value :: handle type(c_ptr) :: d1 type(c_ptr) :: d2 type(c_ptr) :: x1 type(c_ptr) :: y1 type(c_ptr) :: param integer(c_int),value :: batch_count end function end interface interface rocblas_srotmg_strided_batched function rocblas_srotmg_strided_batched_(handle,d1,stride_d1,d2,stride_d2,x1,stride_x1,y1,stride_y1,param,stride_param,batch_count) bind(c, name="rocblas_srotmg_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotmg_strided_batched_ type(c_ptr),value :: handle type(c_ptr),value :: d1 integer(c_int64_t),value :: stride_d1 type(c_ptr),value :: d2 integer(c_int64_t),value :: stride_d2 type(c_ptr),value :: x1 integer(c_int64_t),value :: stride_x1 type(c_ptr),value :: y1 integer(c_int64_t),value :: stride_y1 type(c_ptr),value :: param integer(c_int64_t),value :: stride_param integer(c_int),value :: batch_count end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotmg_strided_batched creates the modified Givens rotation matrix for the strided batched vectors (d1_i * x1_i, d2_i * y1_i), for i = 1, ..., batch_count. !> Parameters may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> If the pointer mode is set to rocblas_pointer_mode_host, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to rocblas_pointer_mode_device, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[inout] !> d1 device strided_batched array or host strided_batched array of input scalars that is overwritten. !> @param[in] !> stride_d1 [rocblas_stride] !> specifies the increment between the beginning of d1_i and d1_(i+1) !> @param[inout] !> d2 device strided_batched array or host strided_batched array of input scalars that is overwritten. !> @param[in] !> stride_d2 [rocblas_stride] !> specifies the increment between the beginning of d2_i and d2_(i+1) !> @param[inout] !> x1 device strided_batched array or host strided_batched array of input scalars that is overwritten. !> @param[in] !> stride_x1 [rocblas_stride] !> specifies the increment between the beginning of x1_i and x1_(i+1) !> @param[in] !> y1 device strided_batched array or host strided_batched array of input scalars. !> @param[in] !> stride_y1 [rocblas_stride] !> specifies the increment between the beginning of y1_i and y1_(i+1) !> @param[out] !> param device strided_batched array or host strided_batched array of vectors of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> @param[in] !> stride_param [rocblas_stride] !> specifies the increment between the beginning of param_i and param_(i + 1) !> @param[in] !> batch_count [rocblas_int] !> the number of instances in the batch. !> interface rocblas_drotmg_strided_batched function rocblas_drotmg_strided_batched_(handle,d1,stride_d1,d2,stride_d2,x1,stride_x1,y1,stride_y1,param,stride_param,batch_count) bind(c, name="rocblas_drotmg_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotmg_strided_batched_ type(c_ptr),value :: handle type(c_ptr),value :: d1 integer(c_int64_t),value :: stride_d1 type(c_ptr),value :: d2 integer(c_int64_t),value :: stride_d2 type(c_ptr),value :: x1 integer(c_int64_t),value :: stride_x1 type(c_ptr),value :: y1 integer(c_int64_t),value :: stride_y1 type(c_ptr),value :: param integer(c_int64_t),value :: stride_param integer(c_int),value :: batch_count end function end interface !> =========================================================================== !> level 2 BLAS !> =========================================================================== interface rocblas_sgbmv function rocblas_sgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_sgbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgbmv_full_rank,& rocblas_sgbmv_rank_0,& rocblas_sgbmv_rank_1 #endif end interface interface rocblas_dgbmv function rocblas_dgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_dgbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgbmv_full_rank,& rocblas_dgbmv_rank_0,& rocblas_dgbmv_rank_1 #endif end interface interface rocblas_cgbmv function rocblas_cgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_cgbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgbmv_full_rank,& rocblas_cgbmv_rank_0,& rocblas_cgbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gbmv performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y, or !> y := alpha*A**T*x + beta*y, or !> y := alpha*A**H*x + beta*y, !> !> where alpha and beta are scalars, x and y are vectors and A is an !> m by n banded matrix with kl sub-diagonals and ku super-diagonals. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> trans [rocblas_operation] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [rocblas_int] !> number of rows of matrix A !> @param[in] !> n [rocblas_int] !> number of columns of matrix A !> @param[in] !> kl [rocblas_int] !> number of sub-diagonals of A !> @param[in] !> ku [rocblas_int] !> number of super-diagonals of A !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing banded matrix A. !> Leading (kl + ku + 1) by n part of the matrix contains the coefficients !> of the banded matrix. The leading diagonal resides in row (ku + 1) with !> the first super-diagonal above on the RHS of row ku. The first sub-diagonal !> resides below on the LHS of row ku + 2. This propogates up and down across !> sub/super-diagonals. !> Ex: (m = n = 7; ku = 2, kl = 2) !> 1 2 3 0 0 0 0 0 0 3 3 3 3 3 !> 4 1 2 3 0 0 0 0 2 2 2 2 2 2 !> 5 4 1 2 3 0 0 ----> 1 1 1 1 1 1 1 !> 0 5 4 1 2 3 0 4 4 4 4 4 4 0 !> 0 0 5 4 1 2 0 5 5 5 5 5 0 0 !> 0 0 0 5 4 1 2 0 0 0 0 0 0 0 !> 0 0 0 0 5 4 1 0 0 0 0 0 0 0 !> Note that the empty elements which don't correspond to data will not !> be referenced. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. Must be >= (kl + ku + 1) !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zgbmv function rocblas_zgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_zgbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgbmv_full_rank,& rocblas_zgbmv_rank_0,& rocblas_zgbmv_rank_1 #endif end interface interface rocblas_sgbmv_batched function rocblas_sgbmv_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_sgbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgbmv_batched_full_rank,& rocblas_sgbmv_batched_rank_0,& rocblas_sgbmv_batched_rank_1 #endif end interface interface rocblas_dgbmv_batched function rocblas_dgbmv_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_dgbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgbmv_batched_full_rank,& rocblas_dgbmv_batched_rank_0,& rocblas_dgbmv_batched_rank_1 #endif end interface interface rocblas_cgbmv_batched function rocblas_cgbmv_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_cgbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgbmv_batched_full_rank,& rocblas_cgbmv_batched_rank_0,& rocblas_cgbmv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gbmv_batched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n banded matrix with kl sub-diagonals and ku super-diagonals, !> for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> trans [rocblas_operation] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [rocblas_int] !> number of rows of each matrix A_i !> @param[in] !> n [rocblas_int] !> number of columns of each matrix A_i !> @param[in] !> kl [rocblas_int] !> number of sub-diagonals of each A_i !> @param[in] !> ku [rocblas_int] !> number of super-diagonals of each A_i !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each banded matrix A_i. !> Leading (kl + ku + 1) by n part of the matrix contains the coefficients !> of the banded matrix. The leading diagonal resides in row (ku + 1) with !> the first super-diagonal above on the RHS of row ku. The first sub-diagonal !> resides below on the LHS of row ku + 2. This propogates up and down across !> sub/super-diagonals. !> Ex: (m = n = 7; ku = 2, kl = 2) !> 1 2 3 0 0 0 0 0 0 3 3 3 3 3 !> 4 1 2 3 0 0 0 0 2 2 2 2 2 2 !> 5 4 1 2 3 0 0 ----> 1 1 1 1 1 1 1 !> 0 5 4 1 2 3 0 4 4 4 4 4 4 0 !> 0 0 5 4 1 2 0 5 5 5 5 5 0 0 !> 0 0 0 5 4 1 2 0 0 0 0 0 0 0 !> 0 0 0 0 5 4 1 0 0 0 0 0 0 0 !> Note that the empty elements which don't correspond to data will not !> be referenced. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. Must be >= (kl + ku + 1) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batch_count [rocblas_int] !> specifies the number of instances in the batch. !> interface rocblas_zgbmv_batched function rocblas_zgbmv_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_zgbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgbmv_batched_full_rank,& rocblas_zgbmv_batched_rank_0,& rocblas_zgbmv_batched_rank_1 #endif end interface interface rocblas_sgbmv_strided_batched function rocblas_sgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_sgbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgbmv_strided_batched_full_rank,& rocblas_sgbmv_strided_batched_rank_0,& rocblas_sgbmv_strided_batched_rank_1 #endif end interface interface rocblas_dgbmv_strided_batched function rocblas_dgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_dgbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgbmv_strided_batched_full_rank,& rocblas_dgbmv_strided_batched_rank_0,& rocblas_dgbmv_strided_batched_rank_1 #endif end interface interface rocblas_cgbmv_strided_batched function rocblas_cgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_cgbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgbmv_strided_batched_full_rank,& rocblas_cgbmv_strided_batched_rank_0,& rocblas_cgbmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gbmv_strided_batched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n banded matrix with kl sub-diagonals and ku super-diagonals, !> for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> trans [rocblas_operation] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [rocblas_int] !> number of rows of matrix A !> @param[in] !> n [rocblas_int] !> number of columns of matrix A !> @param[in] !> kl [rocblas_int] !> number of sub-diagonals of A !> @param[in] !> ku [rocblas_int] !> number of super-diagonals of A !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer to first banded matrix (A_1). !> Leading (kl + ku + 1) by n part of the matrix contains the coefficients !> of the banded matrix. The leading diagonal resides in row (ku + 1) with !> the first super-diagonal above on the RHS of row ku. The first sub-diagonal !> resides below on the LHS of row ku + 2. This propogates up and down across !> sub/super-diagonals. !> Ex: (m = n = 7; ku = 2, kl = 2) !> 1 2 3 0 0 0 0 0 0 3 3 3 3 3 !> 4 1 2 3 0 0 0 0 2 2 2 2 2 2 !> 5 4 1 2 3 0 0 ----> 1 1 1 1 1 1 1 !> 0 5 4 1 2 3 0 4 4 4 4 4 4 0 !> 0 0 5 4 1 2 0 5 5 5 5 5 0 0 !> 0 0 0 5 4 1 2 0 0 0 0 0 0 0 !> 0 0 0 0 5 4 1 0 0 0 0 0 0 0 !> Note that the empty elements which don't correspond to data will not !> be referenced. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. Must be >= (kl + ku + 1) !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x device pointer to first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer to first vector (y_1). !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (x_i+1) !> @param[in] !> batch_count [rocblas_int] !> specifies the number of instances in the batch. !> interface rocblas_zgbmv_strided_batched function rocblas_zgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_zgbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgbmv_strided_batched_full_rank,& rocblas_zgbmv_strided_batched_rank_0,& rocblas_zgbmv_strided_batched_rank_1 #endif end interface interface rocblas_sgemv function rocblas_sgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_sgemv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemv_full_rank,& rocblas_sgemv_rank_0,& rocblas_sgemv_rank_1 #endif end interface interface rocblas_dgemv function rocblas_dgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_dgemv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemv_full_rank,& rocblas_dgemv_rank_0,& rocblas_dgemv_rank_1 #endif end interface interface rocblas_cgemv function rocblas_cgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_cgemv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgemv_full_rank,& rocblas_cgemv_rank_0,& rocblas_cgemv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gemv performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y, or !> y := alpha*A**T*x + beta*y, or !> y := alpha*A**H*x + beta*y, !> !> where alpha and beta are scalars, x and y are vectors and A is an !> m by n matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> trans [rocblas_operation] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [rocblas_int] !> number of rows of matrix A !> @param[in] !> n [rocblas_int] !> number of columns of matrix A !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zgemv function rocblas_zgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_zgemv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgemv_full_rank,& rocblas_zgemv_rank_0,& rocblas_zgemv_rank_1 #endif end interface interface rocblas_sgemv_batched function rocblas_sgemv_batched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_sgemv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemv_batched_full_rank,& rocblas_sgemv_batched_rank_0,& rocblas_sgemv_batched_rank_1 #endif end interface interface rocblas_dgemv_batched function rocblas_dgemv_batched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_dgemv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemv_batched_full_rank,& rocblas_dgemv_batched_rank_0,& rocblas_dgemv_batched_rank_1 #endif end interface interface rocblas_cgemv_batched function rocblas_cgemv_batched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_cgemv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgemv_batched_full_rank,& rocblas_cgemv_batched_rank_0,& rocblas_cgemv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gemv_batched performs a batch of matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> trans [rocblas_operation] !> indicates whether matrices A_i are tranposed (conjugated) or not !> @param[in] !> m [rocblas_int] !> number of rows of each matrix A_i !> @param[in] !> n [rocblas_int] !> number of columns of each matrix A_i !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each matrix A_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zgemv_batched function rocblas_zgemv_batched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_zgemv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgemv_batched_full_rank,& rocblas_zgemv_batched_rank_0,& rocblas_zgemv_batched_rank_1 #endif end interface interface rocblas_sgemv_strided_batched function rocblas_sgemv_strided_batched_(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_sgemv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemv_strided_batched_full_rank,& rocblas_sgemv_strided_batched_rank_0,& rocblas_sgemv_strided_batched_rank_1 #endif end interface interface rocblas_dgemv_strided_batched function rocblas_dgemv_strided_batched_(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_dgemv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemv_strided_batched_full_rank,& rocblas_dgemv_strided_batched_rank_0,& rocblas_dgemv_strided_batched_rank_1 #endif end interface interface rocblas_cgemv_strided_batched function rocblas_cgemv_strided_batched_(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_cgemv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgemv_strided_batched_full_rank,& rocblas_cgemv_strided_batched_rank_0,& rocblas_cgemv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gemv_strided_batched performs a batch of matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> indicates whether matrices A_i are tranposed (conjugated) or not !> @param[in] !> m [rocblas_int] !> number of rows of matrices A_i !> @param[in] !> n [rocblas_int] !> number of columns of matrices A_i !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer to the first matrix (A_1) in the batch. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of matrices A_i. !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of vectors x_i. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size. When trans equals rocblas_operation_none !> this typically means stride_x >= n * incx, otherwise stride_x >= m * incx. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of vectors y_i. !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_y, however the user should !> take care to ensure that stride_y is of appropriate size. When trans equals rocblas_operation_none !> this typically means stride_y >= m * incy, otherwise stride_y >= n * incy. stridey should be non zero. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zgemv_strided_batched function rocblas_zgemv_strided_batched_(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_zgemv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgemv_strided_batched_full_rank,& rocblas_zgemv_strided_batched_rank_0,& rocblas_zgemv_strided_batched_rank_1 #endif end interface interface rocblas_chbmv function rocblas_chbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_chbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chbmv_full_rank,& rocblas_chbmv_rank_0,& rocblas_chbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hbmv performs the matrix-vector operations !> !> y := alpha*A*x + beta*y !> !> where alpha and beta are scalars, x and y are n element vectors and A is an !> n by n Hermitian band matrix, with k super-diagonals. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: The upper triangular part of A is being supplied. !> rocblas_fill_lower: The lower triangular part of A is being supplied. !> @param[in] !> n [rocblas_int] !> the order of the matrix A. !> @param[in] !> k [rocblas_int] !> the number of super-diagonals of the matrix A. Must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing matrix A. Of dimension (lda, n). !> if uplo == rocblas_fill_upper: !> The leading (k + 1) by n part of A must contain the upper !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (k + 1), the first super-diagonal on the RHS !> of row k, etc. !> The top left k by x triangle of A will not be referenced. !> Ex (upper, lda = n = 4, k = 1): !> A Represented matrix !> (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) !> (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0) !> !> if uplo == rocblas_fill_lower: !> The leading (k + 1) by n part of A must contain the lower !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (1), the first sub-diagonal on the LHS of !> row 2, etc. !> The bottom right k by k triangle of A will not be referenced. !> Ex (lower, lda = 2, n = 4, k = 1): !> A Represented matrix !> (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) !> (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) !> (0, 0) (6, 8) (3, 0) (7,-7) !> (0, 0) (0, 0) (7, 7) (4, 0) !> !> As a Hermitian matrix, the imaginary part of the main diagonal !> of A will not be referenced and is assumed to be == 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. must be >= k + 1 !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zhbmv function rocblas_zhbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_zhbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhbmv_full_rank,& rocblas_zhbmv_rank_0,& rocblas_zhbmv_rank_1 #endif end interface interface rocblas_chbmv_batched function rocblas_chbmv_batched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_chbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chbmv_batched_full_rank,& rocblas_chbmv_batched_rank_0,& rocblas_chbmv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hbmv_batched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian band matrix with k super-diagonals, for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: The upper triangular part of each A_i is being supplied. !> rocblas_fill_lower: The lower triangular part of each A_i is being supplied. !> @param[in] !> n [rocblas_int] !> the order of each matrix A_i. !> @param[in] !> k [rocblas_int] !> the number of super-diagonals of each matrix A_i. Must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, n). !> if uplo == rocblas_fill_upper: !> The leading (k + 1) by n part of each A_i must contain the upper !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (k + 1), the first super-diagonal on the RHS !> of row k, etc. !> The top left k by x triangle of each A_i will not be referenced. !> Ex (upper, lda = n = 4, k = 1): !> A Represented matrix !> (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) !> (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0) !> !> if uplo == rocblas_fill_lower: !> The leading (k + 1) by n part of each A_i must contain the lower !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (1), the first sub-diagonal on the LHS of !> row 2, etc. !> The bottom right k by k triangle of each A_i will not be referenced. !> Ex (lower, lda = 2, n = 4, k = 1): !> A Represented matrix !> (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) !> (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) !> (0, 0) (6, 8) (3, 0) (7,-7) !> (0, 0) (0, 0) (7, 7) (4, 0) !> !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhbmv_batched function rocblas_zhbmv_batched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_zhbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhbmv_batched_full_rank,& rocblas_zhbmv_batched_rank_0,& rocblas_zhbmv_batched_rank_1 #endif end interface interface rocblas_chbmv_strided_batched function rocblas_chbmv_strided_batched_(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_chbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chbmv_strided_batched_full_rank,& rocblas_chbmv_strided_batched_rank_0,& rocblas_chbmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hbmv_strided_batched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian band matrix with k super-diagonals, for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: The upper triangular part of each A_i is being supplied. !> rocblas_fill_lower: The lower triangular part of each A_i is being supplied. !> @param[in] !> n [rocblas_int] !> the order of each matrix A_i. !> @param[in] !> k [rocblas_int] !> the number of super-diagonals of each matrix A_i. Must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array pointing to the first matrix A_1. Each A_i is of dimension (lda, n). !> if uplo == rocblas_fill_upper: !> The leading (k + 1) by n part of each A_i must contain the upper !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (k + 1), the first super-diagonal on the RHS !> of row k, etc. !> The top left k by x triangle of each A_i will not be referenced. !> Ex (upper, lda = n = 4, k = 1): !> A Represented matrix !> (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) !> (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0) !> !> if uplo == rocblas_fill_lower: !> The leading (k + 1) by n part of each A_i must contain the lower !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (1), the first sub-diagonal on the LHS of !> row 2, etc. !> The bottom right k by k triangle of each A_i will not be referenced. !> Ex (lower, lda = 2, n = 4, k = 1): !> A Represented matrix !> (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) !> (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) !> (0, 0) (6, 8) (3, 0) (7,-7) !> (0, 0) (0, 0) (7, 7) (4, 0) !> !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x device array pointing to the first vector y_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array pointing to the first vector y_1. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhbmv_strided_batched function rocblas_zhbmv_strided_batched_(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_zhbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhbmv_strided_batched_full_rank,& rocblas_zhbmv_strided_batched_rank_0,& rocblas_zhbmv_strided_batched_rank_1 #endif end interface interface rocblas_chemv function rocblas_chemv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_chemv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chemv_full_rank,& rocblas_chemv_rank_0,& rocblas_chemv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hemv performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y !> !> where alpha and beta are scalars, x and y are n element vectors and A is an !> n by n Hermitian matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied. !> rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied. !> @param[in] !> n [rocblas_int] !> the order of the matrix A. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing matrix A. Of dimension (lda, n). !> if uplo == rocblas_fill_upper: !> The upper triangular part of A must contain !> the upper triangular part of a Hermitian matrix. The lower !> triangular part of A will not be referenced. !> if uplo == rocblas_fill_lower: !> The lower triangular part of A must contain !> the lower triangular part of a Hermitian matrix. The upper !> triangular part of A will not be referenced. !> As a Hermitian matrix, the imaginary part of the main diagonal !> of A will not be referenced and is assumed to be == 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. must be >= max(1, n) !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zhemv function rocblas_zhemv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_zhemv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhemv_full_rank,& rocblas_zhemv_rank_0,& rocblas_zhemv_rank_1 #endif end interface interface rocblas_chemv_batched function rocblas_chemv_batched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_chemv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chemv_batched_full_rank,& rocblas_chemv_batched_rank_0,& rocblas_chemv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hemv_batched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied. !> rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied. !> @param[in] !> n [rocblas_int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i of dimension (lda, n). !> if uplo == rocblas_fill_upper: !> The upper triangular part of each A_i must contain !> the upper triangular part of a Hermitian matrix. The lower !> triangular part of each A_i will not be referenced. !> if uplo == rocblas_fill_lower: !> The lower triangular part of each A_i must contain !> the lower triangular part of a Hermitian matrix. The upper !> triangular part of each A_i will not be referenced. !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhemv_batched function rocblas_zhemv_batched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_zhemv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhemv_batched_full_rank,& rocblas_zhemv_batched_rank_0,& rocblas_zhemv_batched_rank_1 #endif end interface interface rocblas_chemv_strided_batched function rocblas_chemv_strided_batched_(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_chemv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chemv_strided_batched_full_rank,& rocblas_chemv_strided_batched_rank_0,& rocblas_chemv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hemv_strided_batched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied. !> rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied. !> @param[in] !> n [rocblas_int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i of dimension (lda, n). !> if uplo == rocblas_fill_upper: !> The upper triangular part of each A_i must contain !> the upper triangular part of a Hermitian matrix. The lower !> triangular part of each A_i will not be referenced. !> if uplo == rocblas_fill_lower: !> The lower triangular part of each A_i must contain !> the lower triangular part of a Hermitian matrix. The upper !> triangular part of each A_i will not be referenced. !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one (A_i) to the next (A_i+1) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhemv_strided_batched function rocblas_zhemv_strided_batched_(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_zhemv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhemv_strided_batched_full_rank,& rocblas_zhemv_strided_batched_rank_0,& rocblas_zhemv_strided_batched_rank_1 #endif end interface interface rocblas_cher function rocblas_cher_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="rocblas_cher") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher_full_rank,& rocblas_cher_rank_0,& rocblas_cher_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her performs the matrix-vector operations !> !> A := A + alpha*x*x**H !> !> where alpha is a real scalar, x is a vector, and A is an !> n by n Hermitian matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of A is supplied in A. !> rocblas_fill_lower: The lower triangular part of A is supplied in A. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[inout] !> A device pointer storing the specified triangular portion of !> the Hermitian matrix A. Of size (lda * n). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the Hermitian matrix A is supplied. The lower !> triangluar portion will not be touched. !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the Hermitian matrix A is supplied. The upper !> triangular portion will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. Must be at least max(1, n). interface rocblas_zher function rocblas_zher_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="rocblas_zher") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher_full_rank,& rocblas_zher_rank_0,& rocblas_zher_rank_1 #endif end interface interface rocblas_cher_batched function rocblas_cher_batched_(handle,uplo,n,alpha,x,incx,A,lda,batch_count) bind(c, name="rocblas_cher_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher_batched_full_rank,& rocblas_cher_batched_rank_0,& rocblas_cher_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in A. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in A. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> A device array of device pointers storing the specified triangular portion of !> each Hermitian matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batch_count. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular portion !> of each A_i will not be touched. !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular portion !> of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. Must be at least max(1, n). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zher_batched function rocblas_zher_batched_(handle,uplo,n,alpha,x,incx,A,lda,batch_count) bind(c, name="rocblas_zher_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher_batched_full_rank,& rocblas_zher_batched_rank_0,& rocblas_zher_batched_rank_1 #endif end interface interface rocblas_cher_strided_batched function rocblas_cher_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) bind(c, name="rocblas_cher_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher_strided_batched_full_rank,& rocblas_cher_strided_batched_rank_0,& rocblas_cher_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her_strided_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n Hermitian matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in A. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in A. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[inout] !> A device array of device pointers storing the specified triangular portion of !> each Hermitian matrix A_i. Points to the first matrix (A_1). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular !> portion of each A_i will not be touched. !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular !> portion of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zher_strided_batched function rocblas_zher_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) bind(c, name="rocblas_zher_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher_strided_batched_full_rank,& rocblas_zher_strided_batched_rank_0,& rocblas_zher_strided_batched_rank_1 #endif end interface interface rocblas_cher2 function rocblas_cher2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_cher2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher2_full_rank,& rocblas_cher2_rank_0,& rocblas_cher2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her2 performs the matrix-vector operations !> !> A := A + alpha*x*y**H + conj(alpha)*y*x**H !> !> where alpha is a complex scalar, x and y are vectors, and A is an !> n by n Hermitian matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of A is supplied. !> rocblas_fill_lower: The lower triangular part of A is supplied. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> A device pointer storing the specified triangular portion of !> the Hermitian matrix A. Of size (lda, n). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the Hermitian matrix A is supplied. The lower triangular !> portion of A will not be touched. !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the Hermitian matrix A is supplied. The upper triangular !> portion of A will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. Must be at least max(lda, 1). interface rocblas_zher2 function rocblas_zher2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_zher2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher2_full_rank,& rocblas_zher2_rank_0,& rocblas_zher2_rank_1 #endif end interface interface rocblas_cher2_batched function rocblas_cher2_batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_cher2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher2_batched_full_rank,& rocblas_cher2_batched_rank_0,& rocblas_cher2_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her2_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n Hermitian matrix for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> A device array of device pointers storing the specified triangular portion of !> each Hermitian matrix A_i of size (lda, n). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular !> portion of each A_i will not be touched. !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular !> portion of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. Must be at least max(lda, 1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zher2_batched function rocblas_zher2_batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_zher2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher2_batched_full_rank,& rocblas_zher2_batched_rank_0,& rocblas_zher2_batched_rank_1 #endif end interface interface rocblas_cher2_strided_batched function rocblas_cher2_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) bind(c, name="rocblas_cher2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher2_strided_batched_full_rank,& rocblas_cher2_strided_batched_rank_0,& rocblas_cher2_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her2_strided_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n Hermitian matrix for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> specifies the stride between the beginning of one vector (x_i) and the next (x_i+1). !> @param[in] !> y device pointer pointing to the first vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> specifies the stride between the beginning of one vector (y_i) and the next (y_i+1). !> @param[inout] !> A device pointer pointing to the first matrix (A_1). Stores the specified triangular portion of !> each Hermitian matrix A_i. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular !> portion of each A_i will not be touched. !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular !> portion of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. Must be at least max(lda, 1). !> @param[in] !> stride_A [rocblas_stride] !> specifies the stride between the beginning of one matrix (A_i) and the next (A_i+1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zher2_strided_batched function rocblas_zher2_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) bind(c, name="rocblas_zher2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher2_strided_batched_full_rank,& rocblas_zher2_strided_batched_rank_0,& rocblas_zher2_strided_batched_rank_1 #endif end interface interface rocblas_chpmv function rocblas_chpmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="rocblas_chpmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpmv_rank_0,& rocblas_chpmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpmv performs the matrix-vector operation !> !> y := alpha*A*x + beta*y !> !> where alpha and beta are scalars, x and y are n element vectors and A is an !> n by n Hermitian matrix, supplied in packed form (see description below). !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied in AP. !> rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied in AP. !> @param[in] !> n [rocblas_int] !> the order of the matrix A, must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> AP device pointer storing the packed version of the specified triangular portion of !> the Hermitian matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,1), (4,0), (3,2), (5,-1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,-1), (3,-2), (4,0), (5,1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> interface rocblas_zhpmv function rocblas_zhpmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="rocblas_zhpmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpmv_rank_0,& rocblas_zhpmv_rank_1 #endif end interface interface rocblas_chpmv_batched function rocblas_chpmv_batched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_chpmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpmv_batched_full_rank,& rocblas_chpmv_batched_rank_0,& rocblas_chpmv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpmv_batched performs the matrix-vector operation !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, supplied in packed form (see description below), !> for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: the upper triangular part of each Hermitian matrix A_i is supplied in AP. !> rocblas_fill_lower: the lower triangular part of each Hermitian matrix A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> AP device pointer of device pointers storing the packed version of the specified triangular !> portion of each Hermitian matrix A_i. Each A_i is of at least size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,1), (4,0), (3,2), (5,-1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,-1), (3,-2), (4,0), (5,1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhpmv_batched function rocblas_zhpmv_batched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_zhpmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpmv_batched_full_rank,& rocblas_zhpmv_batched_rank_0,& rocblas_zhpmv_batched_rank_1 #endif end interface interface rocblas_chpmv_strided_batched function rocblas_chpmv_strided_batched_(handle,uplo,n,alpha,AP,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_chpmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpmv_strided_batched_rank_0,& rocblas_chpmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpmv_strided_batched performs the matrix-vector operation !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, supplied in packed form (see description below), !> for each batch in i = [1, batch_count]. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: the upper triangular part of each Hermitian matrix A_i is supplied in AP. !> rocblas_fill_lower: the lower triangular part of each Hermitian matrix A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> AP device pointer pointing to the beginning of the first matrix (AP_1). Stores the packed !> version of the specified triangular portion of each Hermitian matrix AP_i of size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,1), (4,0), (3,2), (5,-1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,-1), (3,-2), (4,0), (5,1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (AP_i) and the next one (AP_i+1). !> @param[in] !> x device array pointing to the beginning of the first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array pointing to the beginning of the first vector (y_1). !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhpmv_strided_batched function rocblas_zhpmv_strided_batched_(handle,uplo,n,alpha,AP,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) bind(c, name="rocblas_zhpmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpmv_strided_batched_rank_0,& rocblas_zhpmv_strided_batched_rank_1 #endif end interface interface rocblas_chpr function rocblas_chpr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="rocblas_chpr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpr_rank_0,& rocblas_chpr_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr performs the matrix-vector operations !> !> A := A + alpha*x*x**H !> !> where alpha is a real scalar, x is a vector, and A is an !> n by n Hermitian matrix, supplied in packed form. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of A is supplied in AP. !> rocblas_fill_lower: The lower triangular part of A is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the Hermitian matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. interface rocblas_zhpr function rocblas_zhpr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="rocblas_zhpr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpr_rank_0,& rocblas_zhpr_rank_1 #endif end interface interface rocblas_chpr_batched function rocblas_chpr_batched_(handle,uplo,n,alpha,x,incx,AP,batch_count) bind(c, name="rocblas_chpr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpr_batched_full_rank,& rocblas_chpr_batched_rank_0,& rocblas_chpr_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batch_count. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zhpr_batched function rocblas_zhpr_batched_(handle,uplo,n,alpha,x,incx,AP,batch_count) bind(c, name="rocblas_zhpr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpr_batched_full_rank,& rocblas_zhpr_batched_rank_0,& rocblas_zhpr_batched_rank_1 #endif end interface interface rocblas_chpr_strided_batched function rocblas_chpr_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) bind(c, name="rocblas_chpr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpr_strided_batched_rank_0,& rocblas_chpr_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr_strided_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i. Points to the first matrix (A_1). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zhpr_strided_batched function rocblas_zhpr_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) bind(c, name="rocblas_zhpr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpr_strided_batched_rank_0,& rocblas_zhpr_strided_batched_rank_1 #endif end interface interface rocblas_chpr2 function rocblas_chpr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="rocblas_chpr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpr2_rank_0,& rocblas_chpr2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr2 performs the matrix-vector operations !> !> A := A + alpha*x*y**H + conj(alpha)*y*x**H !> !> where alpha is a complex scalar, x and y are vectors, and A is an !> n by n Hermitian matrix, supplied in packed form. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of A is supplied in AP. !> rocblas_fill_lower: The lower triangular part of A is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the Hermitian matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. interface rocblas_zhpr2 function rocblas_zhpr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="rocblas_zhpr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpr2_rank_0,& rocblas_zhpr2_rank_1 #endif end interface interface rocblas_chpr2_batched function rocblas_chpr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) bind(c, name="rocblas_chpr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpr2_batched_full_rank,& rocblas_chpr2_batched_rank_0,& rocblas_chpr2_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr2_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batch_count. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zhpr2_batched function rocblas_zhpr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) bind(c, name="rocblas_zhpr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpr2_batched_full_rank,& rocblas_zhpr2_batched_rank_0,& rocblas_zhpr2_batched_rank_1 #endif end interface interface rocblas_chpr2_strided_batched function rocblas_chpr2_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) bind(c, name="rocblas_chpr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chpr2_strided_batched_rank_0,& rocblas_chpr2_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr2_strided_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> y device pointer pointing to the first vector (y_1). !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i. Points to the first matrix (A_1). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zhpr2_strided_batched function rocblas_zhpr2_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) bind(c, name="rocblas_zhpr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhpr2_strided_batched_rank_0,& rocblas_zhpr2_strided_batched_rank_1 #endif end interface interface rocblas_strmv function rocblas_strmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_strmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strmv_full_rank,& rocblas_strmv_rank_0,& rocblas_strmv_rank_1 #endif end interface interface rocblas_dtrmv function rocblas_dtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_dtrmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrmv_full_rank,& rocblas_dtrmv_rank_0,& rocblas_dtrmv_rank_1 #endif end interface interface rocblas_ctrmv function rocblas_ctrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_ctrmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrmv_full_rank,& rocblas_ctrmv_rank_0,& rocblas_ctrmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trmv performs one of the matrix-vector operations !> !> x = A*x or x = A**T*x, !> !> where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix. !> !> The vector x is overwritten. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of A. m >= 0. !> !> @param[in] !> A device pointer storing matrix A, !> of dimension ( lda, m ) !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> lda = max( 1, m ). !> !> @param[in] !> x device pointer storing vector x. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> interface rocblas_ztrmv function rocblas_ztrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_ztrmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrmv_full_rank,& rocblas_ztrmv_rank_0,& rocblas_ztrmv_rank_1 #endif end interface interface rocblas_strmv_strided_batched function rocblas_strmv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_strmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strmv_strided_batched_full_rank,& rocblas_strmv_strided_batched_rank_0,& rocblas_strmv_strided_batched_rank_1 #endif end interface interface rocblas_dtrmv_strided_batched function rocblas_dtrmv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_dtrmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrmv_strided_batched_full_rank,& rocblas_dtrmv_strided_batched_rank_0,& rocblas_dtrmv_strided_batched_rank_1 #endif end interface interface rocblas_ctrmv_strided_batched function rocblas_ctrmv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_ctrmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrmv_strided_batched_full_rank,& rocblas_ctrmv_strided_batched_rank_0,& rocblas_ctrmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trmv_strided_batched performs one of the matrix-vector operations !> !> x_i = A_i*x_i or x_i = A**T*x_i, 0 \le i < batch_count !> !> where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) !> with strides specifying how to retrieve $x_i$ (resp. $A_i$) from $x_{i-1}$ (resp. $A_i$). !> !> The vectors x_i are overwritten. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix. !> rocblas_fill_lower: A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of matrices A_i. m >= 0. !> !> @param[in] !> A device pointer of the matrix A_0, !> of dimension ( lda, m ) !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A_i. !> lda >= max( 1, m ). !> !> @param[in] !> stride_a [rocblas_stride] !> stride from the start of one A_i matrix to the next A_{i + 1} !> !> @param[in] !> x device pointer storing the vector x_0. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of one vector x. !> !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one x_i vector to the next x_{i + 1} !> !> @param[in] !> batch_count [rocblas_int] !> The number of batched matrices/vectors. !> !> interface rocblas_ztrmv_strided_batched function rocblas_ztrmv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_ztrmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrmv_strided_batched_full_rank,& rocblas_ztrmv_strided_batched_rank_0,& rocblas_ztrmv_strided_batched_rank_1 #endif end interface interface rocblas_stpmv function rocblas_stpmv_(handle,uplo,transA,diag,m,A,x,incx) bind(c, name="rocblas_stpmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stpmv_full_rank,& rocblas_stpmv_rank_0,& rocblas_stpmv_rank_1 #endif end interface interface rocblas_dtpmv function rocblas_dtpmv_(handle,uplo,transA,diag,m,A,x,incx) bind(c, name="rocblas_dtpmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtpmv_full_rank,& rocblas_dtpmv_rank_0,& rocblas_dtpmv_rank_1 #endif end interface interface rocblas_ctpmv function rocblas_ctpmv_(handle,uplo,transA,diag,m,A,x,incx) bind(c, name="rocblas_ctpmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctpmv_full_rank,& rocblas_ctpmv_rank_0,& rocblas_ctpmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpmv performs one of the matrix-vector operations !> !> x = A*x or x = A**T*x, !> !> where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in the pack form. !> !> The vector x is overwritten. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of A. m >= 0. !> !> @param[in] !> A device pointer storing matrix A, !> of dimension at leat ( m * ( m + 1 ) 2 ). !> Before entry with uplo = rocblas_fill_upper, the array A !> must contain the upper triangular matrix packed sequentially, !> column by column, so that A[0] contains a_{0,0}, A[1] and A[2] contain !> a_{0,1} and a_{1, 1} respectively, and so on. !> Before entry with uplo = rocblas_fill_lower, the array A !> must contain the lower triangular matrix packed sequentially, !> column by column, so that A[0] contains a_{0,0}, A[1] and A[2] contain !> a_{1,0} and a_{2,0} respectively, and so on. !> Note that when DIAG = rocblas_diagonal_unit, the diagonal elements of A are !> not referenced, but are assumed to be unity. !> !> @param[in] !> x device pointer storing vector x. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. incx must not be zero. !> interface rocblas_ztpmv function rocblas_ztpmv_(handle,uplo,transA,diag,m,A,x,incx) bind(c, name="rocblas_ztpmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztpmv_full_rank,& rocblas_ztpmv_rank_0,& rocblas_ztpmv_rank_1 #endif end interface interface rocblas_stpmv_strided_batched function rocblas_stpmv_strided_batched_(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_stpmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stpmv_strided_batched_full_rank,& rocblas_stpmv_strided_batched_rank_0,& rocblas_stpmv_strided_batched_rank_1 #endif end interface interface rocblas_dtpmv_strided_batched function rocblas_dtpmv_strided_batched_(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_dtpmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtpmv_strided_batched_full_rank,& rocblas_dtpmv_strided_batched_rank_0,& rocblas_dtpmv_strided_batched_rank_1 #endif end interface interface rocblas_ctpmv_strided_batched function rocblas_ctpmv_strided_batched_(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_ctpmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctpmv_strided_batched_full_rank,& rocblas_ctpmv_strided_batched_rank_0,& rocblas_ctpmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpmv_strided_batched performs one of the matrix-vector operations !> !> x_i = A_i*x_i or x_i = A**T*x_i, 0 \le i < batch_count !> !> where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) !> with strides specifying how to retrieve $x_i$ (resp. $A_i$) from $x_{i-1}$ (resp. $A_i$). !> !> The vectors x_i are overwritten. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix. !> rocblas_fill_lower: A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of matrices A_i. m >= 0. !> !> @param[in] !> A device pointer of the matrix A_0, !> of dimension ( lda, m ) !> !> @param[in] !> stride_a [rocblas_stride] !> stride from the start of one A_i matrix to the next A_{i + 1} !> !> @param[in] !> x device pointer storing the vector x_0. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of one vector x. !> !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one x_i vector to the next x_{i + 1} !> !> @param[in] !> batch_count [rocblas_int] !> The number of batched matrices/vectors. !> !> interface rocblas_ztpmv_strided_batched function rocblas_ztpmv_strided_batched_(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) bind(c, name="rocblas_ztpmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int64_t),value :: stridea type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztpmv_strided_batched_full_rank,& rocblas_ztpmv_strided_batched_rank_0,& rocblas_ztpmv_strided_batched_rank_1 #endif end interface interface rocblas_stbmv function rocblas_stbmv_(handle,uplo,trans,diag,m,k,A,lda,x,incx) bind(c, name="rocblas_stbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stbmv_full_rank,& rocblas_stbmv_rank_0,& rocblas_stbmv_rank_1 #endif end interface interface rocblas_dtbmv function rocblas_dtbmv_(handle,uplo,trans,diag,m,k,A,lda,x,incx) bind(c, name="rocblas_dtbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtbmv_full_rank,& rocblas_dtbmv_rank_0,& rocblas_dtbmv_rank_1 #endif end interface interface rocblas_ctbmv function rocblas_ctbmv_(handle,uplo,trans,diag,m,k,A,lda,x,incx) bind(c, name="rocblas_ctbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctbmv_full_rank,& rocblas_ctbmv_rank_0,& rocblas_ctbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbmv performs one of the matrix-vector operations !> !> x := A*x or !> x := A**T*x or !> x := A**H*x, !> !> x is a vectors and A is a banded m by m matrix (see description below). !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper banded triangular matrix. !> rocblas_fill_lower: A is a lower banded triangular matrix. !> @param[in] !> trans [rocblas_operation] !> indicates whether matrix A is tranposed (conjugated) or not. !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: The main diagonal of A is assumed to consist of only !> 1's and is not referenced. !> rocblas_diagonal_non_unit: No assumptions are made of A's main diagonal. !> @param[in] !> m [rocblas_int] !> the number of rows and columns of the matrix represented by A. !> @param[in] !> k [rocblas_int] !> if uplo == rocblas_fill_upper, k specifies the number of super-diagonals !> of the matrix A. !> if uplo == rocblas_fill_lower, k specifies the number of sub-diagonals !> of the matrix A. !> k must satisfy k > 0 && k < lda. !> @param[in] !> A device pointer storing banded triangular matrix A. !> if uplo == rocblas_fill_upper: !> The matrix represented is an upper banded triangular matrix !> with the main diagonal and k super-diagonals, everything !> else can be assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the k'th !> row, the first super diagonal resides on the RHS of the k-1'th row, etc, !> with the k'th diagonal on the RHS of the 0'th row. !> Ex: (rocblas_fill_upper; m = 5; k = 2) !> 1 6 9 0 0 0 0 9 8 7 !> 0 2 7 8 0 0 6 7 8 9 !> 0 0 3 8 7 ----> 1 2 3 4 5 !> 0 0 0 4 9 0 0 0 0 0 !> 0 0 0 0 5 0 0 0 0 0 !> if uplo == rocblas_fill_lower: !> The matrix represnted is a lower banded triangular matrix !> with the main diagonal and k sub-diagonals, everything else can be !> assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the 0'th row, !> working up to the k'th diagonal residing on the LHS of the k'th row. !> Ex: (rocblas_fill_lower; m = 5; k = 2) !> 1 0 0 0 0 1 2 3 4 5 !> 6 2 0 0 0 6 7 8 9 0 !> 9 7 3 0 0 ----> 9 8 7 0 0 !> 0 8 8 4 0 0 0 0 0 0 !> 0 0 7 9 5 0 0 0 0 0 !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. lda must satisfy lda > k. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> interface rocblas_ztbmv function rocblas_ztbmv_(handle,uplo,trans,diag,m,k,A,lda,x,incx) bind(c, name="rocblas_ztbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztbmv_full_rank,& rocblas_ztbmv_rank_0,& rocblas_ztbmv_rank_1 #endif end interface interface rocblas_stbmv_batched function rocblas_stbmv_batched_(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_stbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stbmv_batched_full_rank,& rocblas_stbmv_batched_rank_0,& rocblas_stbmv_batched_rank_1 #endif end interface interface rocblas_dtbmv_batched function rocblas_dtbmv_batched_(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_dtbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtbmv_batched_full_rank,& rocblas_dtbmv_batched_rank_0,& rocblas_dtbmv_batched_rank_1 #endif end interface interface rocblas_ctbmv_batched function rocblas_ctbmv_batched_(handle,uplo,trans,diag,m,k,A,da,x,incx,batch_count) bind(c, name="rocblas_ctbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: da type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctbmv_batched_full_rank,& rocblas_ctbmv_batched_rank_0,& rocblas_ctbmv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbmv_batched performs one of the matrix-vector operations !> !> x_i := A_i*x_i or !> x_i := A_i**T*x_i or !> x_i := A_i**H*x_i, !> !> where (A_i, x_i) is the i-th instance of the batch. !> x_i is a vector and A_i is an m by m matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper banded triangular matrix. !> rocblas_fill_lower: each A_i is a lower banded triangular matrix. !> @param[in] !> trans [rocblas_operation] !> indicates whether each matrix A_i is tranposed (conjugated) or not. !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: The main diagonal of each A_i is assumed to consist of only !> 1's and is not referenced. !> rocblas_diagonal_non_unit: No assumptions are made of each A_i's main diagonal. !> @param[in] !> m [rocblas_int] !> the number of rows and columns of the matrix represented by each A_i. !> @param[in] !> k [rocblas_int] !> if uplo == rocblas_fill_upper, k specifies the number of super-diagonals !> of each matrix A_i. !> if uplo == rocblas_fill_lower, k specifies the number of sub-diagonals !> of each matrix A_i. !> k must satisfy k > 0 && k < lda. !> @param[in] !> A device array of device pointers storing each banded triangular matrix A_i. !> if uplo == rocblas_fill_upper: !> The matrix represented is an upper banded triangular matrix !> with the main diagonal and k super-diagonals, everything !> else can be assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the k'th !> row, the first super diagonal resides on the RHS of the k-1'th row, etc, !> with the k'th diagonal on the RHS of the 0'th row. !> Ex: (rocblas_fill_upper; m = 5; k = 2) !> 1 6 9 0 0 0 0 9 8 7 !> 0 2 7 8 0 0 6 7 8 9 !> 0 0 3 8 7 ----> 1 2 3 4 5 !> 0 0 0 4 9 0 0 0 0 0 !> 0 0 0 0 5 0 0 0 0 0 !> if uplo == rocblas_fill_lower: !> The matrix represnted is a lower banded triangular matrix !> with the main diagonal and k sub-diagonals, everything else can be !> assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the 0'th row, !> working up to the k'th diagonal residing on the LHS of the k'th row. !> Ex: (rocblas_fill_lower; m = 5; k = 2) !> 1 0 0 0 0 1 2 3 4 5 !> 6 2 0 0 0 6 7 8 9 0 !> 9 7 3 0 0 ----> 9 8 7 0 0 !> 0 8 8 4 0 0 0 0 0 0 !> 0 0 7 9 5 0 0 0 0 0 !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. lda must satisfy lda > k. !> @param[inout] !> x device array of device pointer storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_ztbmv_batched function rocblas_ztbmv_batched_(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_ztbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztbmv_batched_full_rank,& rocblas_ztbmv_batched_rank_0,& rocblas_ztbmv_batched_rank_1 #endif end interface interface rocblas_stbmv_strided_batched function rocblas_stbmv_strided_batched_(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_stbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stbmv_strided_batched_full_rank,& rocblas_stbmv_strided_batched_rank_0,& rocblas_stbmv_strided_batched_rank_1 #endif end interface interface rocblas_dtbmv_strided_batched function rocblas_dtbmv_strided_batched_(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_dtbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtbmv_strided_batched_full_rank,& rocblas_dtbmv_strided_batched_rank_0,& rocblas_dtbmv_strided_batched_rank_1 #endif end interface interface rocblas_ctbmv_strided_batched function rocblas_ctbmv_strided_batched_(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ctbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctbmv_strided_batched_full_rank,& rocblas_ctbmv_strided_batched_rank_0,& rocblas_ctbmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbmv_strided_batched performs one of the matrix-vector operations !> !> x_i := A_i*x_i or !> x_i := A_i**T*x_i or !> x_i := A_i**H*x_i, !> !> where (A_i, x_i) is the i-th instance of the batch. !> x_i is a vector and A_i is an m by m matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper banded triangular matrix. !> rocblas_fill_lower: each A_i is a lower banded triangular matrix. !> @param[in] !> trans [rocblas_operation] !> indicates whether each matrix A_i is tranposed (conjugated) or not. !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: The main diagonal of each A_i is assumed to consist of only !> 1's and is not referenced. !> rocblas_diagonal_non_unit: No assumptions are made of each A_i's main diagonal. !> @param[in] !> m [rocblas_int] !> the number of rows and columns of the matrix represented by each A_i. !> @param[in] !> k [rocblas_int] !> if uplo == rocblas_fill_upper, k specifies the number of super-diagonals !> of each matrix A_i. !> if uplo == rocblas_fill_lower, k specifies the number of sub-diagonals !> of each matrix A_i. !> k must satisfy k > 0 && k < lda. !> @param[in] !> A device array to the first matrix A_i of the batch. Stores each banded triangular matrix A_i. !> if uplo == rocblas_fill_upper: !> The matrix represented is an upper banded triangular matrix !> with the main diagonal and k super-diagonals, everything !> else can be assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the k'th !> row, the first super diagonal resides on the RHS of the k-1'th row, etc, !> with the k'th diagonal on the RHS of the 0'th row. !> Ex: (rocblas_fill_upper; m = 5; k = 2) !> 1 6 9 0 0 0 0 9 8 7 !> 0 2 7 8 0 0 6 7 8 9 !> 0 0 3 8 7 ----> 1 2 3 4 5 !> 0 0 0 4 9 0 0 0 0 0 !> 0 0 0 0 5 0 0 0 0 0 !> if uplo == rocblas_fill_lower: !> The matrix represnted is a lower banded triangular matrix !> with the main diagonal and k sub-diagonals, everything else can be !> assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the 0'th row, !> working up to the k'th diagonal residing on the LHS of the k'th row. !> Ex: (rocblas_fill_lower; m = 5; k = 2) !> 1 0 0 0 0 1 2 3 4 5 !> 6 2 0 0 0 6 7 8 9 0 !> 9 7 3 0 0 ----> 9 8 7 0 0 !> 0 8 8 4 0 0 0 0 0 0 !> 0 0 7 9 5 0 0 0 0 0 !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. lda must satisfy lda > k. !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one A_i matrix to the next A_(i + 1). !> @param[inout] !> x device array to the first vector x_i of the batch. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one x_i matrix to the next x_(i + 1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_ztbmv_strided_batched function rocblas_ztbmv_strided_batched_(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ztbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztbmv_strided_batched_full_rank,& rocblas_ztbmv_strided_batched_rank_0,& rocblas_ztbmv_strided_batched_rank_1 #endif end interface interface rocblas_stbsv function rocblas_stbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="rocblas_stbsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stbsv_full_rank,& rocblas_stbsv_rank_0,& rocblas_stbsv_rank_1 #endif end interface interface rocblas_dtbsv function rocblas_dtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="rocblas_dtbsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtbsv_full_rank,& rocblas_dtbsv_rank_0,& rocblas_dtbsv_rank_1 #endif end interface interface rocblas_ctbsv function rocblas_ctbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="rocblas_ctbsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctbsv_full_rank,& rocblas_ctbsv_rank_0,& rocblas_ctbsv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbsv solves !> !> A*x = b or A**T*x = b or A**H*x = b, !> !> where x and b are vectors and A is a banded triangular matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_none: Solves A*x = b !> rocblas_operation_transpose: Solves A**T*x = b !> rocblas_operation_conjugate_transpose: Solves A**H*x = b !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular (i.e. the diagonal elements !> of A are not used in computations). !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows of b. n >= 0. !> @param[in] !> k [rocblas_int] !> if(uplo == rocblas_fill_upper) !> k specifies the number of super-diagonals of A. !> if(uplo == rocblas_fill_lower) !> k specifies the number of sub-diagonals of A. !> k >= 0. !> !> @param[in] !> A device pointer storing the matrix A in banded format. !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> lda >= (k + 1). !> !> @param[inout] !> x device pointer storing input vector b. Overwritten by the output vector x. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> interface rocblas_ztbsv function rocblas_ztbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="rocblas_ztbsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztbsv_full_rank,& rocblas_ztbsv_rank_0,& rocblas_ztbsv_rank_1 #endif end interface interface rocblas_stbsv_batched function rocblas_stbsv_batched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_stbsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stbsv_batched_full_rank,& rocblas_stbsv_batched_rank_0,& rocblas_stbsv_batched_rank_1 #endif end interface interface rocblas_dtbsv_batched function rocblas_dtbsv_batched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_dtbsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtbsv_batched_full_rank,& rocblas_dtbsv_batched_rank_0,& rocblas_dtbsv_batched_rank_1 #endif end interface interface rocblas_ctbsv_batched function rocblas_ctbsv_batched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_ctbsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctbsv_batched_full_rank,& rocblas_ctbsv_batched_rank_0,& rocblas_ctbsv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbsv_batched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a banded triangular matrix, !> for i = [1, batch_count]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix. !> rocblas_fill_lower: A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_none: Solves A_i*x_i = b_i !> rocblas_operation_transpose: Solves A_i**T*x_i = b_i !> rocblas_operation_conjugate_transpose: Solves A_i**H*x_i = b_i !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows of each b_i. n >= 0. !> @param[in] !> k [rocblas_int] !> if(uplo == rocblas_fill_upper) !> k specifies the number of super-diagonals of each A_i. !> if(uplo == rocblas_fill_lower) !> k specifies the number of sub-diagonals of each A_i. !> k >= 0. !> !> @param[in] !> A device vector of device pointers storing each matrix A_i in banded format. !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> lda >= (k + 1). !> !> @param[inout] !> x device vector of device pointers storing each input vector b_i. Overwritten by each output !> vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_ztbsv_batched function rocblas_ztbsv_batched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) bind(c, name="rocblas_ztbsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztbsv_batched_full_rank,& rocblas_ztbsv_batched_rank_0,& rocblas_ztbsv_batched_rank_1 #endif end interface interface rocblas_stbsv_strided_batched function rocblas_stbsv_strided_batched_(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_stbsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stbsv_strided_batched_full_rank,& rocblas_stbsv_strided_batched_rank_0,& rocblas_stbsv_strided_batched_rank_1 #endif end interface interface rocblas_dtbsv_strided_batched function rocblas_dtbsv_strided_batched_(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_dtbsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtbsv_strided_batched_full_rank,& rocblas_dtbsv_strided_batched_rank_0,& rocblas_dtbsv_strided_batched_rank_1 #endif end interface interface rocblas_ctbsv_strided_batched function rocblas_ctbsv_strided_batched_(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ctbsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctbsv_strided_batched_full_rank,& rocblas_ctbsv_strided_batched_rank_0,& rocblas_ctbsv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbsv_strided_batched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a banded triangular matrix, !> for i = [1, batch_count]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix. !> rocblas_fill_lower: A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_none: Solves A_i*x_i = b_i !> rocblas_operation_transpose: Solves A_i**T*x_i = b_i !> rocblas_operation_conjugate_transpose: Solves A_i**H*x_i = b_i !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows of each b_i. n >= 0. !> @param[in] !> k [rocblas_int] !> if(uplo == rocblas_fill_upper) !> k specifies the number of super-diagonals of each A_i. !> if(uplo == rocblas_fill_lower) !> k specifies the number of sub-diagonals of each A_i. !> k >= 0. !> !> @param[in] !> A device pointer pointing to the first banded matrix A_1. !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> lda >= (k + 1). !> @param[in] !> stride_A [rocblas_stride] !> specifies the distance between the start of one matrix (A_i) and the next (A_i+1). !> !> @param[inout] !> x device pointer pointing to the first input vector b_1. Overwritten by output vectors x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> specifies the distance between the start of one vector (x_i) and the next (x_i+1). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_ztbsv_strided_batched function rocblas_ztbsv_strided_batched_(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ztbsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztbsv_strided_batched_full_rank,& rocblas_ztbsv_strided_batched_rank_0,& rocblas_ztbsv_strided_batched_rank_1 #endif end interface interface rocblas_strsv function rocblas_strsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_strsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strsv_full_rank,& rocblas_strsv_rank_0,& rocblas_strsv_rank_1 #endif end interface interface rocblas_dtrsv function rocblas_dtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_dtrsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrsv_full_rank,& rocblas_dtrsv_rank_0,& rocblas_dtrsv_rank_1 #endif end interface interface rocblas_ctrsv function rocblas_ctrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_ctrsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrsv_full_rank,& rocblas_ctrsv_rank_0,& rocblas_ctrsv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trsv solves !> !> A*x = b or A**T*x = b, !> !> where x and b are vectors and A is a triangular matrix. !> !> The vector x is overwritten on b. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of b. m >= 0. !> !> @param[in] !> A device pointer storing matrix A, !> of dimension ( lda, m ) !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> lda = max( 1, m ). !> !> @param[in] !> x device pointer storing vector x. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> interface rocblas_ztrsv function rocblas_ztrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="rocblas_ztrsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrsv_full_rank,& rocblas_ztrsv_rank_0,& rocblas_ztrsv_rank_1 #endif end interface interface rocblas_strsv_batched function rocblas_strsv_batched_(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) bind(c, name="rocblas_strsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strsv_batched_full_rank,& rocblas_strsv_batched_rank_0,& rocblas_strsv_batched_rank_1 #endif end interface interface rocblas_dtrsv_batched function rocblas_dtrsv_batched_(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) bind(c, name="rocblas_dtrsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrsv_batched_full_rank,& rocblas_dtrsv_batched_rank_0,& rocblas_dtrsv_batched_rank_1 #endif end interface interface rocblas_ctrsv_batched function rocblas_ctrsv_batched_(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) bind(c, name="rocblas_ctrsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrsv_batched_full_rank,& rocblas_ctrsv_batched_rank_0,& rocblas_ctrsv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trsv_batched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, !> !> where (A_i, x_i, b_i) is the i-th instance of the batch. !> x_i and b_i are vectors and A_i is an !> m by m triangular matrix. !> !> The vector x is overwritten on b. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of b. m >= 0. !> !> @param[in] !> A device array of device pointers storing each matrix A_i. !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> lda = max(1, m) !> !> @param[in] !> x device array of device pointers storing each vector x_i. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_ztrsv_batched function rocblas_ztrsv_batched_(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) bind(c, name="rocblas_ztrsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrsv_batched_full_rank,& rocblas_ztrsv_batched_rank_0,& rocblas_ztrsv_batched_rank_1 #endif end interface interface rocblas_strsv_strided_batched function rocblas_strsv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_strsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strsv_strided_batched_full_rank,& rocblas_strsv_strided_batched_rank_0,& rocblas_strsv_strided_batched_rank_1 #endif end interface interface rocblas_dtrsv_strided_batched function rocblas_dtrsv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_dtrsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrsv_strided_batched_full_rank,& rocblas_dtrsv_strided_batched_rank_0,& rocblas_dtrsv_strided_batched_rank_1 #endif end interface interface rocblas_ctrsv_strided_batched function rocblas_ctrsv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ctrsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrsv_strided_batched_full_rank,& rocblas_ctrsv_strided_batched_rank_0,& rocblas_ctrsv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trsv_strided_batched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, !> !> where (A_i, x_i, b_i) is the i-th instance of the batch. !> x_i and b_i are vectors and A_i is an m by m triangular matrix, for i = 1, ..., batch_count. !> !> The vector x is overwritten on b. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of each b_i. m >= 0. !> !> @param[in] !> A device pointer to the first matrix (A_1) in the batch, of dimension ( lda, m ) !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one A_i matrix to the next A_(i + 1) !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> lda = max( 1, m ). !> !> @param[in, out] !> x device pointer to the first vector (x_1) in the batch. !> !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one x_i vector to the next x_(i + 1) !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_ztrsv_strided_batched function rocblas_ztrsv_strided_batched_(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ztrsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrsv_strided_batched_full_rank,& rocblas_ztrsv_strided_batched_rank_0,& rocblas_ztrsv_strided_batched_rank_1 #endif end interface interface rocblas_stpsv function rocblas_stpsv_(handle,uplo,transA,diag,n,AP,x,incx) bind(c, name="rocblas_stpsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stpsv_rank_0,& rocblas_stpsv_rank_1 #endif end interface interface rocblas_dtpsv function rocblas_dtpsv_(handle,uplo,transA,diag,n,AP,x,incx) bind(c, name="rocblas_dtpsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtpsv_rank_0,& rocblas_dtpsv_rank_1 #endif end interface interface rocblas_ctpsv function rocblas_ctpsv_(handle,uplo,transA,diag,n,AP,x,incx) bind(c, name="rocblas_ctpsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctpsv_rank_0,& rocblas_ctpsv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpsv solves !> !> A*x = b or A**T*x = b, or A**H*x = b, !> !> where x and b are vectors and A is a triangular matrix stored in the packed format. !> !> The input vector b is overwritten by the output vector x. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_none: Solves A*x = b !> rocblas_operation_transpose: Solves A**T*x = b !> rocblas_operation_conjugate_transpose: Solves A**H*x = b !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular (i.e. the diagonal elements !> of A are not used in computations). !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows of b. n >= 0. !> !> @param[in] !> AP device pointer storing the packed version of matrix A, !> of dimension >= (n * (n + 1) 2) !> !> @param[inout] !> x device pointer storing vector b on input, overwritten by x on output. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> interface rocblas_ztpsv function rocblas_ztpsv_(handle,uplo,transA,diag,n,AP,x,incx) bind(c, name="rocblas_ztpsv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztpsv_rank_0,& rocblas_ztpsv_rank_1 #endif end interface interface rocblas_stpsv_batched function rocblas_stpsv_batched_(handle,uplo,transA,diag,n,AP,x,incx,batch_count) bind(c, name="rocblas_stpsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stpsv_batched_full_rank,& rocblas_stpsv_batched_rank_0,& rocblas_stpsv_batched_rank_1 #endif end interface interface rocblas_dtpsv_batched function rocblas_dtpsv_batched_(handle,uplo,transA,diag,n,AP,x,incx,batch_count) bind(c, name="rocblas_dtpsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtpsv_batched_full_rank,& rocblas_dtpsv_batched_rank_0,& rocblas_dtpsv_batched_rank_1 #endif end interface interface rocblas_ctpsv_batched function rocblas_ctpsv_batched_(handle,uplo,transA,diag,n,AP,x,incx,batch_count) bind(c, name="rocblas_ctpsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctpsv_batched_full_rank,& rocblas_ctpsv_batched_rank_0,& rocblas_ctpsv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpsv_batched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a triangular matrix stored in the packed format, !> for i in [1, batch_count]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper triangular matrix. !> rocblas_fill_lower: each A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_none: Solves A*x = b !> rocblas_operation_transpose: Solves A**T*x = b !> rocblas_operation_conjugate_transpose: Solves A**H*x = b !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows of each b_i. n >= 0. !> !> @param[in] !> AP device array of device pointers storing the packed versions of each matrix A_i, !> of dimension >= (n * (n + 1) 2) !> !> @param[inout] !> x device array of device pointers storing each input vector b_i, overwritten by x_i on output. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batch_count [rocblas_int] !> specifies the number of instances in the batch. !> interface rocblas_ztpsv_batched function rocblas_ztpsv_batched_(handle,uplo,transA,diag,n,AP,x,incx,batch_count) bind(c, name="rocblas_ztpsv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztpsv_batched_full_rank,& rocblas_ztpsv_batched_rank_0,& rocblas_ztpsv_batched_rank_1 #endif end interface interface rocblas_stpsv_strided_batched function rocblas_stpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_stpsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_stpsv_strided_batched_rank_0,& rocblas_stpsv_strided_batched_rank_1 #endif end interface interface rocblas_dtpsv_strided_batched function rocblas_dtpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_dtpsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtpsv_strided_batched_rank_0,& rocblas_dtpsv_strided_batched_rank_1 #endif end interface interface rocblas_ctpsv_strided_batched function rocblas_ctpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ctpsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctpsv_strided_batched_rank_0,& rocblas_ctpsv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpsv_strided_batched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a triangular matrix stored in the packed format, !> for i in [1, batch_count]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper triangular matrix. !> rocblas_fill_lower: each A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_none: Solves A*x = b !> rocblas_operation_transpose: Solves A**T*x = b !> rocblas_operation_conjugate_transpose: Solves A**H*x = b !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows of each b_i. n >= 0. !> !> @param[in] !> AP device pointer pointing to the first packed matrix A_1, !> of dimension >= (n * (n + 1) 2) !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the beginning of one packed matrix (AP_i) and the next (AP_i+1). !> !> @param[inout] !> x device pointer pointing to the first input vector b_1. Overwritten by each x_i on output. !> !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the beginning of one vector (x_i) and the next (x_i+1). !> @param[in] !> batch_count [rocblas_int] !> specifies the number of instances in the batch. !> interface rocblas_ztpsv_strided_batched function rocblas_ztpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) bind(c, name="rocblas_ztpsv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztpsv_strided_batched_rank_0,& rocblas_ztpsv_strided_batched_rank_1 #endif end interface interface rocblas_ssymv function rocblas_ssymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_ssymv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssymv_full_rank,& rocblas_ssymv_rank_0,& rocblas_ssymv_rank_1 #endif end interface interface rocblas_dsymv function rocblas_dsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_dsymv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsymv_full_rank,& rocblas_dsymv_rank_0,& rocblas_dsymv_rank_1 #endif end interface interface rocblas_csymv function rocblas_csymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_csymv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csymv_full_rank,& rocblas_csymv_rank_0,& rocblas_csymv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> symv performs the matrix-vector operation: !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A should contain an upper or lower triangular n by n symmetric matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo rocblas_fill !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> @param[in] !> alpha !> specifies the scalar alpha !> @param[in] !> A pointer storing matrix A on the GPU !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A !> @param[in] !> x pointer storing vector x on the GPU !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x !> @param[in] !> beta specifies the scalar beta !> @param[out] !> y pointer storing vector y on the GPU !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y !> interface rocblas_zsymv function rocblas_zsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_zsymv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsymv_full_rank,& rocblas_zsymv_rank_0,& rocblas_zsymv_rank_1 #endif end interface interface rocblas_ssymv_batched function rocblas_ssymv_batched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_ssymv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssymv_batched_full_rank,& rocblas_ssymv_batched_rank_0,& rocblas_ssymv_batched_rank_1 #endif end interface interface rocblas_dsymv_batched function rocblas_dsymv_batched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_dsymv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsymv_batched_full_rank,& rocblas_dsymv_batched_rank_0,& rocblas_dsymv_batched_rank_1 #endif end interface interface rocblas_csymv_batched function rocblas_csymv_batched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_csymv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csymv_batched_full_rank,& rocblas_csymv_batched_rank_0,& rocblas_csymv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> symv_batched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batch_count. !> A a should contain an upper or lower triangular symmetric matrix !> and the opposing triangular part of A is not referenced !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A device array of device pointers storing each matrix A_i !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> x device array of device pointers storing each vector x_i !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y device array of device pointers storing each vector y_i !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zsymv_batched function rocblas_zsymv_batched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_zsymv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsymv_batched_full_rank,& rocblas_zsymv_batched_rank_0,& rocblas_zsymv_batched_rank_1 #endif end interface interface rocblas_ssymv_strided_batched function rocblas_ssymv_strided_batched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_ssymv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssymv_strided_batched_full_rank,& rocblas_ssymv_strided_batched_rank_0,& rocblas_ssymv_strided_batched_rank_1 #endif end interface interface rocblas_dsymv_strided_batched function rocblas_dsymv_strided_batched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_dsymv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsymv_strided_batched_full_rank,& rocblas_dsymv_strided_batched_rank_0,& rocblas_dsymv_strided_batched_rank_1 #endif end interface interface rocblas_csymv_strided_batched function rocblas_csymv_strided_batched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_csymv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csymv_strided_batched_full_rank,& rocblas_csymv_strided_batched_rank_0,& rocblas_csymv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> symv_strided_batched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batch_count. !> A a should contain an upper or lower triangular symmetric matrix !> and the opposing triangular part of A is not referenced !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x Device pointer to the first vector x_1 on the GPU !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stridex is of appropriate size. !> This typically means stridex >= n * incx. stridex should be non zero. !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y Device pointer to the first vector y_1 on the GPU !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_y, however the user should !> take care to ensure that stridey is of appropriate size. !> This typically means stridey >= n * incy. stridey should be non zero. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zsymv_strided_batched function rocblas_zsymv_strided_batched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_zsymv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsymv_strided_batched_full_rank,& rocblas_zsymv_strided_batched_rank_0,& rocblas_zsymv_strided_batched_rank_1 #endif end interface interface rocblas_sspmv function rocblas_sspmv_(handle,uplo,n,alpha,A,x,incx,beta,y,incy) bind(c, name="rocblas_sspmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspmv_full_rank,& rocblas_sspmv_rank_0,& rocblas_sspmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spmv performs the matrix-vector operation: !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A should contain an upper or lower triangular n by n packed symmetric matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo rocblas_fill !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> @param[in] !> alpha !> specifies the scalar alpha !> @param[in] !> A pointer storing matrix A on the GPU !> @param[in] !> x pointer storing vector x on the GPU !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x !> @param[in] !> beta specifies the scalar beta !> @param[out] !> y pointer storing vector y on the GPU !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y !> interface rocblas_dspmv function rocblas_dspmv_(handle,uplo,n,alpha,A,x,incx,beta,y,incy) bind(c, name="rocblas_dspmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspmv_full_rank,& rocblas_dspmv_rank_0,& rocblas_dspmv_rank_1 #endif end interface interface rocblas_sspmv_batched function rocblas_sspmv_batched_(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_sspmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspmv_batched_full_rank,& rocblas_sspmv_batched_rank_0,& rocblas_sspmv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spmv_batched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batch_count. !> A should contain an upper or lower triangular n by n packed symmetric matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A device array of device pointers storing each matrix A_i !> @param[in] !> x device array of device pointers storing each vector x_i !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y device array of device pointers storing each vector y_i !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_dspmv_batched function rocblas_dspmv_batched_(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_dspmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspmv_batched_full_rank,& rocblas_dspmv_batched_rank_0,& rocblas_dspmv_batched_rank_1 #endif end interface interface rocblas_sspmv_strided_batched function rocblas_sspmv_strided_batched_(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_sspmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspmv_strided_batched_full_rank,& rocblas_sspmv_strided_batched_rank_0,& rocblas_sspmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spmv_strided_batched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batch_count. !> A should contain an upper or lower triangular n by n packed symmetric matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x Device pointer to the first vector x_1 on the GPU !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size. !> This typically means stridex >= n * incx. stridex should be non zero. !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y Device pointer to the first vector y_1 on the GPU !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size. !> This typically means stridey >= n * incy. stridey should be non zero. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_dspmv_strided_batched function rocblas_dspmv_strided_batched_(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_dspmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspmv_strided_batched_full_rank,& rocblas_dspmv_strided_batched_rank_0,& rocblas_dspmv_strided_batched_rank_1 #endif end interface interface rocblas_ssbmv function rocblas_ssbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_ssbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssbmv_full_rank,& rocblas_ssbmv_rank_0,& rocblas_ssbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sbmv performs the matrix-vector operation: !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A should contain an upper or lower triangular n by n symmetric banded matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo rocblas_fill !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> @param[in] !> k [rocblas_int] !> specifies the number of sub- and super-diagonals !> @param[in] !> alpha !> specifies the scalar alpha !> @param[in] !> A pointer storing matrix A on the GPU !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of matrix A !> @param[in] !> x pointer storing vector x on the GPU !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x !> @param[in] !> beta specifies the scalar beta !> @param[out] !> y pointer storing vector y on the GPU !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y !> interface rocblas_dsbmv function rocblas_dsbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="rocblas_dsbmv") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsbmv_full_rank,& rocblas_dsbmv_rank_0,& rocblas_dsbmv_rank_1 #endif end interface interface rocblas_dsbmv_batched function rocblas_dsbmv_batched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_dsbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsbmv_batched_full_rank,& rocblas_dsbmv_batched_rank_0,& rocblas_dsbmv_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sbmv_batched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric banded matrix, for i = 1, ..., batch_count. !> A should contain an upper or lower triangular n by n symmetric banded matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> number of rows and columns of each matrix A_i !> @param[in] !> k [rocblas_int] !> specifies the number of sub- and super-diagonals !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A device array of device pointers storing each matrix A_i !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> x device array of device pointers storing each vector x_i !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y device array of device pointers storing each vector y_i !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_ssbmv_batched function rocblas_ssbmv_batched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) bind(c, name="rocblas_ssbmv_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssbmv_batched_full_rank,& rocblas_ssbmv_batched_rank_0,& rocblas_ssbmv_batched_rank_1 #endif end interface interface rocblas_ssbmv_strided_batched function rocblas_ssbmv_strided_batched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_ssbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssbmv_strided_batched_full_rank,& rocblas_ssbmv_strided_batched_rank_0,& rocblas_ssbmv_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sbmv_strided_batched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric banded matrix, for i = 1, ..., batch_count. !> A should contain an upper or lower triangular n by n symmetric banded matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> number of rows and columns of each matrix A_i !> @param[in] !> k [rocblas_int] !> specifies the number of sub- and super-diagonals !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x Device pointer to the first vector x_1 on the GPU !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size. !> This typically means stridex >= n * incx. stridex should be non zero. !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y Device pointer to the first vector y_1 on the GPU !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size. !> This typically means stridey >= n * incy. stridey should be non zero. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_dsbmv_strided_batched function rocblas_dsbmv_strided_batched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) bind(c, name="rocblas_dsbmv_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsbmv_strided_batched_full_rank,& rocblas_dsbmv_strided_batched_rank_0,& rocblas_dsbmv_strided_batched_rank_1 #endif end interface interface rocblas_sger function rocblas_sger_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_sger") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sger_full_rank,& rocblas_sger_rank_0,& rocblas_sger_rank_1 #endif end interface interface rocblas_dger function rocblas_dger_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_dger") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dger_full_rank,& rocblas_dger_rank_0,& rocblas_dger_rank_1 #endif end interface interface rocblas_cgeru function rocblas_cgeru_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_cgeru") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgeru_full_rank,& rocblas_cgeru_rank_0,& rocblas_cgeru_rank_1 #endif end interface interface rocblas_zgeru function rocblas_zgeru_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_zgeru") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgeru_full_rank,& rocblas_zgeru_rank_0,& rocblas_zgeru_rank_1 #endif end interface interface rocblas_cgerc function rocblas_cgerc_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_cgerc") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgerc_full_rank,& rocblas_cgerc_rank_0,& rocblas_cgerc_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> ger,geru,gerc performs the matrix-vector operations !> !> A := A + alpha*x*y**T , OR !> A := A + alpha*x*y**H for gerc !> !> where alpha is a scalar, x and y are vectors, and A is an !> m by n matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> m [rocblas_int] !> the number of rows of the matrix A. !> @param[in] !> n [rocblas_int] !> the number of columns of the matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> interface rocblas_zgerc function rocblas_zgerc_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_zgerc") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgerc_full_rank,& rocblas_zgerc_rank_0,& rocblas_zgerc_rank_1 #endif end interface interface rocblas_sger_batched function rocblas_sger_batched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_sger_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sger_batched_full_rank,& rocblas_sger_batched_rank_0,& rocblas_sger_batched_rank_1 #endif end interface interface rocblas_dger_batched function rocblas_dger_batched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_dger_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dger_batched_full_rank,& rocblas_dger_batched_rank_0,& rocblas_dger_batched_rank_1 #endif end interface interface rocblas_cgeru_batched function rocblas_cgeru_batched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_cgeru_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgeru_batched_full_rank,& rocblas_cgeru_batched_rank_0,& rocblas_cgeru_batched_rank_1 #endif end interface interface rocblas_zgeru_batched function rocblas_zgeru_batched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_zgeru_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgeru_batched_full_rank,& rocblas_zgeru_batched_rank_0,& rocblas_zgeru_batched_rank_1 #endif end interface interface rocblas_cgerc_batched function rocblas_cgerc_batched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_cgerc_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgerc_batched_full_rank,& rocblas_cgerc_batched_rank_0,& rocblas_cgerc_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> ger_batched,geru_batched,gerc_batched perform a batch of the matrix-vector operations !> !> A := A + alpha*x*y**T , OR !> A := A + alpha*x*y**H for gerc !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha is a scalar, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> m [rocblas_int] !> the number of rows of each matrix A_i. !> @param[in] !> n [rocblas_int] !> the number of columns of eaceh matrix A_i. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each vector x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i. !> @param[inout] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zgerc_batched function rocblas_zgerc_batched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_zgerc_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgerc_batched_full_rank,& rocblas_zgerc_batched_rank_0,& rocblas_zgerc_batched_rank_1 #endif end interface interface rocblas_sger_strided_batched function rocblas_sger_strided_batched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_sger_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sger_strided_batched_full_rank,& rocblas_sger_strided_batched_rank_0,& rocblas_sger_strided_batched_rank_1 #endif end interface interface rocblas_dger_strided_batched function rocblas_dger_strided_batched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_dger_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dger_strided_batched_full_rank,& rocblas_dger_strided_batched_rank_0,& rocblas_dger_strided_batched_rank_1 #endif end interface interface rocblas_cgeru_strided_batched function rocblas_cgeru_strided_batched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_cgeru_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgeru_strided_batched_full_rank,& rocblas_cgeru_strided_batched_rank_0,& rocblas_cgeru_strided_batched_rank_1 #endif end interface interface rocblas_zgeru_strided_batched function rocblas_zgeru_strided_batched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_zgeru_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgeru_strided_batched_full_rank,& rocblas_zgeru_strided_batched_rank_0,& rocblas_zgeru_strided_batched_rank_1 #endif end interface interface rocblas_cgerc_strided_batched function rocblas_cgerc_strided_batched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_cgerc_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgerc_strided_batched_full_rank,& rocblas_cgerc_strided_batched_rank_0,& rocblas_cgerc_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> ger_strided_batched,geru_strided_batched,gerc_strided_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**T, OR !> A_i := A_i + alpha*x_i*y_i**H for gerc !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha is a scalar, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> m [rocblas_int] !> the number of rows of each matrix A_i. !> @param[in] !> n [rocblas_int] !> the number of columns of each matrix A_i. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [rocblas_int] !> specifies the increments for the elements of each vector x_i. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= m * incx. !> @param[inout] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each vector y_i. !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_y, however the user should !> take care to ensure that stride_y is of appropriate size, for a typical !> case this means stride_y >= n * incy. !> @param[inout] !> A device pointer to the first matrix (A_1) in the batch. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zgerc_strided_batched function rocblas_zgerc_strided_batched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_zgerc_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgerc_strided_batched_full_rank,& rocblas_zgerc_strided_batched_rank_0,& rocblas_zgerc_strided_batched_rank_1 #endif end interface interface rocblas_sspr function rocblas_sspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="rocblas_sspr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspr_rank_0,& rocblas_sspr_rank_1 #endif end interface interface rocblas_dspr function rocblas_dspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="rocblas_dspr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspr_rank_0,& rocblas_dspr_rank_1 #endif end interface interface rocblas_cspr function rocblas_cspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="rocblas_cspr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cspr_rank_0,& rocblas_cspr_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr performs the matrix-vector operations !> !> A := A + alpha*x*x**T !> !> where alpha is a scalar, x is a vector, and A is an !> n by n symmetric matrix, supplied in packed form. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of A is supplied in AP. !> rocblas_fill_lower: The lower triangular part of A is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the symmetric matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 interface rocblas_zspr function rocblas_zspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="rocblas_zspr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zspr_rank_0,& rocblas_zspr_rank_1 #endif end interface interface rocblas_sspr_batched function rocblas_sspr_batched_(handle,uplo,n,alpha,x,incx,AP,batch_count) bind(c, name="rocblas_sspr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspr_batched_full_rank,& rocblas_sspr_batched_rank_0,& rocblas_sspr_batched_rank_1 #endif end interface interface rocblas_dspr_batched function rocblas_dspr_batched_(handle,uplo,n,alpha,x,incx,AP,batch_count) bind(c, name="rocblas_dspr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspr_batched_full_rank,& rocblas_dspr_batched_rank_0,& rocblas_dspr_batched_rank_1 #endif end interface interface rocblas_cspr_batched function rocblas_cspr_batched_(handle,uplo,n,alpha,x,incx,AP,batch_count) bind(c, name="rocblas_cspr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cspr_batched_full_rank,& rocblas_cspr_batched_rank_0,& rocblas_cspr_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**T !> !> where alpha is a scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each symmetric matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batch_count. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zspr_batched function rocblas_zspr_batched_(handle,uplo,n,alpha,x,incx,AP,batch_count) bind(c, name="rocblas_zspr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zspr_batched_full_rank,& rocblas_zspr_batched_rank_0,& rocblas_zspr_batched_rank_1 #endif end interface interface rocblas_sspr_strided_batched function rocblas_sspr_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) bind(c, name="rocblas_sspr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspr_strided_batched_rank_0,& rocblas_sspr_strided_batched_rank_1 #endif end interface interface rocblas_dspr_strided_batched function rocblas_dspr_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) bind(c, name="rocblas_dspr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspr_strided_batched_rank_0,& rocblas_dspr_strided_batched_rank_1 #endif end interface interface rocblas_cspr_strided_batched function rocblas_cspr_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) bind(c, name="rocblas_cspr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cspr_strided_batched_rank_0,& rocblas_cspr_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr_strided_batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**T !> !> where alpha is a scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> each symmetric matrix A_i. Points to the first A_1. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_zspr_strided_batched function rocblas_zspr_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) bind(c, name="rocblas_zspr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zspr_strided_batched_rank_0,& rocblas_zspr_strided_batched_rank_1 #endif end interface interface rocblas_sspr2 function rocblas_sspr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="rocblas_sspr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspr2_rank_0,& rocblas_sspr2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr2 performs the matrix-vector operation !> !> A := A + alpha*x*y**T + alpha*y*x**T !> !> where alpha is a scalar, x and y are vectors, and A is an !> n by n symmetric matrix, supplied in packed form. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of A is supplied in AP. !> rocblas_fill_lower: The lower triangular part of A is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the symmetric matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == rocblas_fill_upper: !> The upper triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == rocblas_fill_lower: !> The lower triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(n) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 interface rocblas_dspr2 function rocblas_dspr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="rocblas_dspr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspr2_rank_0,& rocblas_dspr2_rank_1 #endif end interface interface rocblas_sspr2_batched function rocblas_sspr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) bind(c, name="rocblas_sspr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspr2_batched_full_rank,& rocblas_sspr2_batched_rank_0,& rocblas_sspr2_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr2_batched performs the matrix-vector operation !> !> A_i := A_i + alpha*x_i*y_i**T + alpha*y_i*x_i**T !> !> where alpha is a scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each symmetric matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batch_count. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(n) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_dspr2_batched function rocblas_dspr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) bind(c, name="rocblas_dspr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspr2_batched_full_rank,& rocblas_dspr2_batched_rank_0,& rocblas_dspr2_batched_rank_1 #endif end interface interface rocblas_sspr2_strided_batched function rocblas_sspr2_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) bind(c, name="rocblas_sspr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sspr2_strided_batched_rank_0,& rocblas_sspr2_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr2_strided_batched performs the matrix-vector operation !> !> A_i := A_i + alpha*x_i*y_i**T + alpha*y_i*x_i**T !> !> where alpha is a scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP. !> rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> y device pointer pointing to the first vector (y_1). !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> each symmetric matrix A_i. Points to the first A_1. !> if uplo == rocblas_fill_upper: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (rocblas_fill_upper; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == rocblas_fill_lower: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(n) = A(2,1), etc. !> Ex: (rocblas_fill_lower; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. interface rocblas_dspr2_strided_batched function rocblas_dspr2_strided_batched_(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) bind(c, name="rocblas_dspr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: AP integer(c_int64_t),value :: stride_A integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dspr2_strided_batched_rank_0,& rocblas_dspr2_strided_batched_rank_1 #endif end interface interface rocblas_ssyr function rocblas_ssyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="rocblas_ssyr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr_full_rank,& rocblas_ssyr_rank_0,& rocblas_ssyr_rank_1 #endif end interface interface rocblas_dsyr function rocblas_dsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="rocblas_dsyr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr_full_rank,& rocblas_dsyr_rank_0,& rocblas_dsyr_rank_1 #endif end interface interface rocblas_csyr function rocblas_csyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="rocblas_csyr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr_full_rank,& rocblas_csyr_rank_0,& rocblas_csyr_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr performs the matrix-vector operations !> !> A := A + alpha*x*x**T !> !> where alpha is a scalar, x is a vector, and A is an !> n by n symmetric matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[inout] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> interface rocblas_zsyr function rocblas_zsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="rocblas_zsyr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr_full_rank,& rocblas_zsyr_rank_0,& rocblas_zsyr_rank_1 #endif end interface interface rocblas_ssyr_batched function rocblas_ssyr_batched_(handle,uplo,n,alpha,x,incx,A,lda,batch_count) bind(c, name="rocblas_ssyr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr_batched_full_rank,& rocblas_ssyr_batched_rank_0,& rocblas_ssyr_batched_rank_1 #endif end interface interface rocblas_dsyr_batched function rocblas_dsyr_batched_(handle,uplo,n,alpha,x,incx,A,lda,batch_count) bind(c, name="rocblas_dsyr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr_batched_full_rank,& rocblas_dsyr_batched_rank_0,& rocblas_dsyr_batched_rank_1 #endif end interface interface rocblas_csyr_batched function rocblas_csyr_batched_(handle,uplo,n,alpha,x,incx,A,lda,batch_count) bind(c, name="rocblas_csyr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr_batched_full_rank,& rocblas_csyr_batched_rank_0,& rocblas_csyr_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr_batched performs a batch of matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*x[i]**T !> !> where alpha is a scalar, x is an array of vectors, and A is an array of !> n by n symmetric matrices, for i = 1 , ... , batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zsyr_batched function rocblas_zsyr_batched_(handle,uplo,n,alpha,x,incx,A,lda,batch_count) bind(c, name="rocblas_zsyr_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr_batched_full_rank,& rocblas_zsyr_batched_rank_0,& rocblas_zsyr_batched_rank_1 #endif end interface interface rocblas_ssyr_strided_batched function rocblas_ssyr_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) bind(c, name="rocblas_ssyr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr_strided_batched_full_rank,& rocblas_ssyr_strided_batched_rank_0,& rocblas_ssyr_strided_batched_rank_1 #endif end interface interface rocblas_dsyr_strided_batched function rocblas_dsyr_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) bind(c, name="rocblas_dsyr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr_strided_batched_full_rank,& rocblas_dsyr_strided_batched_rank_0,& rocblas_dsyr_strided_batched_rank_1 #endif end interface interface rocblas_csyr_strided_batched function rocblas_csyr_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) bind(c, name="rocblas_csyr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr_strided_batched_full_rank,& rocblas_csyr_strided_batched_rank_0,& rocblas_csyr_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr_strided_batched performs the matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*x[i]**T !> !> where alpha is a scalar, vectors, and A is an array of !> n by n symmetric matrices, for i = 1 , ... , batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [rocblas_stride] !> specifies the pointer increment between vectors (x_i) and (x_i+1). !> @param[inout] !> A device pointer to the first matrix A_1. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zsyr_strided_batched function rocblas_zsyr_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) bind(c, name="rocblas_zsyr_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr_strided_batched_full_rank,& rocblas_zsyr_strided_batched_rank_0,& rocblas_zsyr_strided_batched_rank_1 #endif end interface interface rocblas_ssyr2 function rocblas_ssyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_ssyr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr2_full_rank,& rocblas_ssyr2_rank_0,& rocblas_ssyr2_rank_1 #endif end interface interface rocblas_dsyr2 function rocblas_dsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_dsyr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr2_full_rank,& rocblas_dsyr2_rank_0,& rocblas_dsyr2_rank_1 #endif end interface interface rocblas_csyr2 function rocblas_csyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_csyr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr2_full_rank,& rocblas_csyr2_rank_0,& rocblas_csyr2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr2 performs the matrix-vector operations !> !> A := A + alpha*x*y**T + alpha*y*x**T !> !> where alpha is a scalar, x and y are vectors, and A is an !> n by n symmetric matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> interface rocblas_zsyr2 function rocblas_zsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="rocblas_zsyr2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr2_full_rank,& rocblas_zsyr2_rank_0,& rocblas_zsyr2_rank_1 #endif end interface interface rocblas_ssyr2_batched function rocblas_ssyr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_ssyr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr2_batched_full_rank,& rocblas_ssyr2_batched_rank_0,& rocblas_ssyr2_batched_rank_1 #endif end interface interface rocblas_dsyr2_batched function rocblas_dsyr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_dsyr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr2_batched_full_rank,& rocblas_dsyr2_batched_rank_0,& rocblas_dsyr2_batched_rank_1 #endif end interface interface rocblas_csyr2_batched function rocblas_csyr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_csyr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr2_batched_full_rank,& rocblas_csyr2_batched_rank_0,& rocblas_csyr2_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr2_batched performs a batch of matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*y[i]**T + alpha*y[i]*x[i]**T !> !> where alpha is a scalar, x[i] and y[i] are vectors, and A[i] is a !> n by n symmetric matrix, for i = 1 , ... , batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zsyr2_batched function rocblas_zsyr2_batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) bind(c, name="rocblas_zsyr2_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr2_batched_full_rank,& rocblas_zsyr2_batched_rank_0,& rocblas_zsyr2_batched_rank_1 #endif end interface interface rocblas_ssyr2_strided_batched function rocblas_ssyr2_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_ssyr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr2_strided_batched_full_rank,& rocblas_ssyr2_strided_batched_rank_0,& rocblas_ssyr2_strided_batched_rank_1 #endif end interface interface rocblas_dsyr2_strided_batched function rocblas_dsyr2_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_dsyr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr2_strided_batched_full_rank,& rocblas_dsyr2_strided_batched_rank_0,& rocblas_dsyr2_strided_batched_rank_1 #endif end interface interface rocblas_csyr2_strided_batched function rocblas_csyr2_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_csyr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr2_strided_batched_full_rank,& rocblas_csyr2_strided_batched_rank_0,& rocblas_csyr2_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr2_strided_batched the matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*y[i]**T + alpha*y[i]*x[i]**T !> !> where alpha is a scalar, x[i] and y[i] are vectors, and A[i] is a !> n by n symmetric matrices, for i = 1 , ... , batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> n [rocblas_int] !> the number of rows and columns of each matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [rocblas_stride] !> specifies the pointer increment between vectors (x_i) and (x_i+1). !> @param[in] !> y device pointer to the first vector y_1. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [rocblas_stride] !> specifies the pointer increment between vectors (y_i) and (y_i+1). !> @param[inout] !> A device pointer to the first matrix A_1. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zsyr2_strided_batched function rocblas_zsyr2_strided_batched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) bind(c, name="rocblas_zsyr2_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr2_strided_batched_full_rank,& rocblas_zsyr2_strided_batched_rank_0,& rocblas_zsyr2_strided_batched_rank_1 #endif end interface !> =========================================================================== !> level 3 BLAS !> =========================================================================== interface rocblas_chemm function rocblas_chemm_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_chemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chemm_full_rank,& rocblas_chemm_rank_0,& rocblas_chemm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> hemm performs one of the matrix-matrix operations: !> !> C := alpha*A*B + beta*C if side == rocblas_side_left, !> C := alpha*B*A + beta*C if side == rocblas_side_right, !> !> where alpha and beta are scalars, B and C are m by n matrices, and !> A is a Hermitian matrix stored as either upper or lower. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: C := alpha*A*B + beta*C !> rocblas_side_right: C := alpha*B*A + beta*C !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix !> rocblas_fill_lower: A is a lower triangular matrix !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B and C. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B and C. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A and B are not referenced. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> A is m by m if side == rocblas_side_left !> A is n by n if side == rocblas_side_right !> Only the upper/lower triangular part is accessed. !> The imaginary component of the diagonal elements is not used. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side = rocblas_side_left, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B pointer storing matrix B on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ) !> interface rocblas_zhemm function rocblas_zhemm_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zhemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhemm_full_rank,& rocblas_zhemm_rank_0,& rocblas_zhemm_rank_1 #endif end interface interface rocblas_chemm_batched function rocblas_chemm_batched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_chemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chemm_batched_full_rank,& rocblas_chemm_batched_rank_0,& rocblas_chemm_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> hemm_batched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == rocblas_side_left, !> C_i := alpha*B_i*A_i + beta*C_i if side == rocblas_side_right, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a Hermitian matrix stored as either upper or lower. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: C_i := alpha*A_i*B_i + beta*C_i !> rocblas_side_right: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix !> rocblas_fill_lower: A_i is a lower triangular matrix !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> A_i is m by m if side == rocblas_side_left !> A_i is n by n if side == rocblas_side_right !> Only the upper/lower triangular part is accessed. !> The imaginary component of the diagonal elements is not used. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B device array of device pointers storing each matrix B_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C_i need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C_i. ldc >= max( 1, m ) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zhemm_batched function rocblas_zhemm_batched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zhemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhemm_batched_full_rank,& rocblas_zhemm_batched_rank_0,& rocblas_zhemm_batched_rank_1 #endif end interface interface rocblas_chemm_strided_batched function rocblas_chemm_strided_batched_(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_chemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_chemm_strided_batched_full_rank,& rocblas_chemm_strided_batched_rank_0,& rocblas_chemm_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> hemm_strided_batched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == rocblas_side_left, !> C_i := alpha*B_i*A_i + beta*C_i if side == rocblas_side_right, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a Hermitian matrix stored as either upper or lower. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: C_i := alpha*A_i*B_i + beta*C_i !> rocblas_side_right: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix !> rocblas_fill_lower: A_i is a lower triangular matrix !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device pointer to first matrix A_1 !> A_i is m by m if side == rocblas_side_left !> A_i is n by n if side == rocblas_side_right !> Only the upper/lower triangular part is accessed. !> The imaginary component of the diagonal elements is not used. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B device pointer to first matrix B_1 of dimension (ldb, n) on the GPU !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if side = rocblas_operation_none, ldb >= max( 1, m ), !> otherwise ldb >= max( 1, n ). !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device pointer to first matrix C_1 of dimension (ldc, n) on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ) !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> interface rocblas_zhemm_strided_batched function rocblas_zhemm_strided_batched_(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zhemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zhemm_strided_batched_full_rank,& rocblas_zhemm_strided_batched_rank_0,& rocblas_zhemm_strided_batched_rank_1 #endif end interface interface rocblas_cherk function rocblas_cherk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="rocblas_cherk") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cherk_full_rank,& rocblas_cherk_rank_0,& rocblas_cherk_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herk performs one of the matrix-matrix operations for a Hermitian rank-k update !> !> C := alpha*op( A )*op( A )^H + beta*C !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A ) = A, and A is n by k if transA == rocblas_operation_none !> op( A ) = A^H and A is k by n if transA == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C is an upper triangular matrix !> rocblas_fill_lower: C is a lower triangular matrix !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_conjugate_transpose: op(A) = A^H !> rocblas_operation_none: op(A) = A !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if transA = rocblas_operation_none, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if transA = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface rocblas_zherk function rocblas_zherk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="rocblas_zherk") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zherk_full_rank,& rocblas_zherk_rank_0,& rocblas_zherk_rank_1 #endif end interface interface rocblas_cherk_batched function rocblas_cherk_batched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) bind(c, name="rocblas_cherk_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cherk_batched_full_rank,& rocblas_cherk_batched_rank_0,& rocblas_cherk_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herk_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none !> op( A_i ) = A_i^H and A_i is k by n if transA == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_conjugate_transpose: op(A) = A^H !> rocblas_operation_none: op(A) = A !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when transA is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if transA = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zherk_batched function rocblas_zherk_batched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) bind(c, name="rocblas_zherk_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zherk_batched_full_rank,& rocblas_zherk_batched_rank_0,& rocblas_zherk_batched_rank_1 #endif end interface interface rocblas_cherk_strided_batched function rocblas_cherk_strided_batched_(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_cherk_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cherk_strided_batched_full_rank,& rocblas_cherk_strided_batched_rank_0,& rocblas_cherk_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herk_strided_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none !> op( A_i ) = A_i^H and A_i is k by n if transA == rocblas_operation_conjugate_transpose !> !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_conjugate_transpose: op(A) = A^H !> rocblas_operation_none: op(A) = A !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when transA is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if transA = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zherk_strided_batched function rocblas_zherk_strided_batched_(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zherk_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zherk_strided_batched_full_rank,& rocblas_zherk_strided_batched_rank_0,& rocblas_zherk_strided_batched_rank_1 #endif end interface interface rocblas_cher2k function rocblas_cher2k_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_cher2k") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher2k_full_rank,& rocblas_cher2k_rank_0,& rocblas_cher2k_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> her2k performs one of the matrix-matrix operations for a Hermitian rank-2k update !> !> C := alpha*op( A )*op( B )^H + conj(alpha)*op( B )*op( A )^H + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrices, and !> C is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none !> op( A ) = A^H, op( B ) = B^H, and A and B are k by n if trans == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C is an upper triangular matrix !> rocblas_fill_lower: C is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_conjugate_transpose: op( A ) = A^H, op( B ) = B^H !> rocblas_operation_none: op( A ) = A, op( B ) = B !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface rocblas_zher2k function rocblas_zher2k_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zher2k") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher2k_full_rank,& rocblas_zher2k_rank_0,& rocblas_zher2k_rank_1 #endif end interface interface rocblas_cher2k_batched function rocblas_cher2k_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_cher2k_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher2k_batched_full_rank,& rocblas_cher2k_batched_rank_0,& rocblas_cher2k_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> her2k_batched performs a batch of the matrix-matrix operations for a Hermitian rank-2k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + conj(alpha)*op( B_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_conjugate_transpose: op(A) = A^H !> rocblas_operation_none: op(A) = A !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zher2k_batched function rocblas_zher2k_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zher2k_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher2k_batched_full_rank,& rocblas_zher2k_batched_rank_0,& rocblas_zher2k_batched_rank_1 #endif end interface interface rocblas_cher2k_strided_batched function rocblas_cher2k_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_cher2k_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cher2k_strided_batched_full_rank,& rocblas_cher2k_strided_batched_rank_0,& rocblas_cher2k_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> her2k_strided_batched performs a batch of the matrix-matrix operations for a Hermitian rank-2k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + conj(alpha)*op( B_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_conjugate_transpose: op( A_i ) = A_i^H, op( B_i ) = B_i^H !> rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zher2k_strided_batched function rocblas_zher2k_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zher2k_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zher2k_strided_batched_full_rank,& rocblas_zher2k_strided_batched_rank_0,& rocblas_zher2k_strided_batched_rank_1 #endif end interface interface rocblas_cherkx function rocblas_cherkx_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_cherkx") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cherkx_full_rank,& rocblas_cherkx_rank_0,& rocblas_cherkx_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkx performs one of the matrix-matrix operations for a Hermitian rank-k update !> !> C := alpha*op( A )*op( B )^H + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrices, and !> C is a n x n Hermitian matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian. !> !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none !> op( A ) = A^H, op( B ) = B^H, and A and B are k by n if trans == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C is an upper triangular matrix !> rocblas_fill_lower: C is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_conjugate_transpose: op( A ) = A^H, op( B ) = B^H !> rocblas_operation_none: op( A ) = A, op( B ) = B !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface rocblas_zherkx function rocblas_zherkx_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zherkx") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zherkx_full_rank,& rocblas_zherkx_rank_0,& rocblas_zherkx_rank_1 #endif end interface interface rocblas_cherkx_batched function rocblas_cherkx_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_cherkx_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cherkx_batched_full_rank,& rocblas_cherkx_batched_rank_0,& rocblas_cherkx_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkx_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_conjugate_transpose: op(A) = A^H !> rocblas_operation_none: op(A) = A !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zherkx_batched function rocblas_zherkx_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zherkx_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zherkx_batched_full_rank,& rocblas_zherkx_batched_rank_0,& rocblas_zherkx_batched_rank_1 #endif end interface interface rocblas_cherkx_strided_batched function rocblas_cherkx_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_cherkx_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cherkx_strided_batched_full_rank,& rocblas_cherkx_strided_batched_rank_0,& rocblas_cherkx_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkx_strided_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_conjugate_transpose: op( A_i ) = A_i^H, op( B_i ) = B_i^H !> rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zherkx_strided_batched function rocblas_zherkx_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zherkx_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zherkx_strided_batched_full_rank,& rocblas_zherkx_strided_batched_rank_0,& rocblas_zherkx_strided_batched_rank_1 #endif end interface interface rocblas_ssymm function rocblas_ssymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_ssymm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssymm_full_rank,& rocblas_ssymm_rank_0,& rocblas_ssymm_rank_1 #endif end interface interface rocblas_dsymm function rocblas_dsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_dsymm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsymm_full_rank,& rocblas_dsymm_rank_0,& rocblas_dsymm_rank_1 #endif end interface interface rocblas_csymm function rocblas_csymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_csymm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csymm_full_rank,& rocblas_csymm_rank_0,& rocblas_csymm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> symm performs one of the matrix-matrix operations: !> !> C := alpha*A*B + beta*C if side == rocblas_side_left, !> C := alpha*B*A + beta*C if side == rocblas_side_right, !> !> where alpha and beta are scalars, B and C are m by n matrices, and !> A is a symmetric matrix stored as either upper or lower. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: C := alpha*A*B + beta*C !> rocblas_side_right: C := alpha*B*A + beta*C !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix !> rocblas_fill_lower: A is a lower triangular matrix !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B and C. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B and C. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A and B are not referenced. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> A is m by m if side == rocblas_side_left !> A is n by n if side == rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side = rocblas_side_left, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B pointer storing matrix B on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ) !> interface rocblas_zsymm function rocblas_zsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zsymm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsymm_full_rank,& rocblas_zsymm_rank_0,& rocblas_zsymm_rank_1 #endif end interface interface rocblas_ssymm_batched function rocblas_ssymm_batched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_ssymm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssymm_batched_full_rank,& rocblas_ssymm_batched_rank_0,& rocblas_ssymm_batched_rank_1 #endif end interface interface rocblas_dsymm_batched function rocblas_dsymm_batched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_dsymm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsymm_batched_full_rank,& rocblas_dsymm_batched_rank_0,& rocblas_dsymm_batched_rank_1 #endif end interface interface rocblas_csymm_batched function rocblas_csymm_batched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_csymm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csymm_batched_full_rank,& rocblas_csymm_batched_rank_0,& rocblas_csymm_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> symm_batched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == rocblas_side_left, !> C_i := alpha*B_i*A_i + beta*C_i if side == rocblas_side_right, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a symmetric matrix stored as either upper or lower. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: C_i := alpha*A_i*B_i + beta*C_i !> rocblas_side_right: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix !> rocblas_fill_lower: A_i is a lower triangular matrix !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> A_i is m by m if side == rocblas_side_left !> A_i is n by n if side == rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B device array of device pointers storing each matrix B_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C_i need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C_i. ldc >= max( 1, m ) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsymm_batched function rocblas_zsymm_batched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zsymm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsymm_batched_full_rank,& rocblas_zsymm_batched_rank_0,& rocblas_zsymm_batched_rank_1 #endif end interface interface rocblas_ssymm_strided_batched function rocblas_ssymm_strided_batched_(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_ssymm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssymm_strided_batched_full_rank,& rocblas_ssymm_strided_batched_rank_0,& rocblas_ssymm_strided_batched_rank_1 #endif end interface interface rocblas_dsymm_strided_batched function rocblas_dsymm_strided_batched_(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_dsymm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsymm_strided_batched_full_rank,& rocblas_dsymm_strided_batched_rank_0,& rocblas_dsymm_strided_batched_rank_1 #endif end interface interface rocblas_csymm_strided_batched function rocblas_csymm_strided_batched_(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_csymm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csymm_strided_batched_full_rank,& rocblas_csymm_strided_batched_rank_0,& rocblas_csymm_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> symm_strided_batched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == rocblas_side_left, !> C_i := alpha*B_i*A_i + beta*C_i if side == rocblas_side_right, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a symmetric matrix stored as either upper or lower. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: C_i := alpha*A_i*B_i + beta*C_i !> rocblas_side_right: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A_i is an upper triangular matrix !> rocblas_fill_lower: A_i is a lower triangular matrix !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device pointer to first matrix A_1 !> A_i is m by m if side == rocblas_side_left !> A_i is n by n if side == rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B device pointer to first matrix B_1 of dimension (ldb, n) on the GPU. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ) !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device pointer to first matrix C_1 of dimension (ldc, n) on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsymm_strided_batched function rocblas_zsymm_strided_batched_(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zsymm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsymm_strided_batched_full_rank,& rocblas_zsymm_strided_batched_rank_0,& rocblas_zsymm_strided_batched_rank_1 #endif end interface interface rocblas_ssyrk function rocblas_ssyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="rocblas_ssyrk") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyrk_full_rank,& rocblas_ssyrk_rank_0,& rocblas_ssyrk_rank_1 #endif end interface interface rocblas_dsyrk function rocblas_dsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="rocblas_dsyrk") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyrk_full_rank,& rocblas_dsyrk_rank_0,& rocblas_dsyrk_rank_1 #endif end interface interface rocblas_csyrk function rocblas_csyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="rocblas_csyrk") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyrk_full_rank,& rocblas_csyrk_rank_0,& rocblas_csyrk_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrk performs one of the matrix-matrix operations for a symmetric rank-k update !> !> C := alpha*op( A )*op( A )^T + beta*C !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C is a symmetric n x n matrix stored as either upper or lower. !> !> op( A ) = A, and A is n by k if transA == rocblas_operation_none !> op( A ) = A^T and A is k by n if transA == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C is an upper triangular matrix !> rocblas_fill_lower: C is a lower triangular matrix !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_transpose: op(A) = A^T !> rocblas_operation_none: op(A) = A !> rocblas_operation_conjugate_transpose: op(A) = A^T !> !> rocblas_operation_conjugate_transpose is not supported for complex types, see cherk !> and zherk. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if transA = rocblas_operation_none, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if transA = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface rocblas_zsyrk function rocblas_zsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="rocblas_zsyrk") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyrk_full_rank,& rocblas_zsyrk_rank_0,& rocblas_zsyrk_rank_1 #endif end interface interface rocblas_ssyrk_batched function rocblas_ssyrk_batched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) bind(c, name="rocblas_ssyrk_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyrk_batched_full_rank,& rocblas_ssyrk_batched_rank_0,& rocblas_ssyrk_batched_rank_1 #endif end interface interface rocblas_dsyrk_batched function rocblas_dsyrk_batched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) bind(c, name="rocblas_dsyrk_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyrk_batched_full_rank,& rocblas_dsyrk_batched_rank_0,& rocblas_dsyrk_batched_rank_1 #endif end interface interface rocblas_csyrk_batched function rocblas_csyrk_batched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) bind(c, name="rocblas_csyrk_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyrk_batched_full_rank,& rocblas_csyrk_batched_rank_0,& rocblas_csyrk_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrk_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) is an n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none !> op( A_i ) = A_i^T and A_i is k by n if transA == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_transpose: op(A) = A^T !> rocblas_operation_none: op(A) = A !> rocblas_operation_conjugate_transpose: op(A) = A^T !> !> rocblas_operation_conjugate_transpose is not supported for complex types, see cherk !> and zherk. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when transA is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if transA = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsyrk_batched function rocblas_zsyrk_batched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) bind(c, name="rocblas_zsyrk_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyrk_batched_full_rank,& rocblas_zsyrk_batched_rank_0,& rocblas_zsyrk_batched_rank_1 #endif end interface interface rocblas_ssyrk_strided_batched function rocblas_ssyrk_strided_batched_(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_ssyrk_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyrk_strided_batched_full_rank,& rocblas_ssyrk_strided_batched_rank_0,& rocblas_ssyrk_strided_batched_rank_1 #endif end interface interface rocblas_dsyrk_strided_batched function rocblas_dsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_dsyrk_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyrk_strided_batched_full_rank,& rocblas_dsyrk_strided_batched_rank_0,& rocblas_dsyrk_strided_batched_rank_1 #endif end interface interface rocblas_csyrk_strided_batched function rocblas_csyrk_strided_batched_(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_csyrk_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyrk_strided_batched_full_rank,& rocblas_csyrk_strided_batched_rank_0,& rocblas_csyrk_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrk_strided_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) is an n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none !> op( A_i ) = A_i^T and A_i is k by n if transA == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> transA [rocblas_operation] !> rocblas_operation_transpose: op(A) = A^T !> rocblas_operation_none: op(A) = A !> rocblas_operation_conjugate_transpose: op(A) = A^T !> !> rocblas_operation_conjugate_transpose is not supported for complex types, see cherk !> and zherk. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when transA is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if transA = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsyrk_strided_batched function rocblas_zsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zsyrk_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyrk_strided_batched_full_rank,& rocblas_zsyrk_strided_batched_rank_0,& rocblas_zsyrk_strided_batched_rank_1 #endif end interface interface rocblas_ssyr2k function rocblas_ssyr2k_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_ssyr2k") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr2k_full_rank,& rocblas_ssyr2k_rank_0,& rocblas_ssyr2k_rank_1 #endif end interface interface rocblas_dsyr2k function rocblas_dsyr2k_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_dsyr2k") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr2k_full_rank,& rocblas_dsyr2k_rank_0,& rocblas_dsyr2k_rank_1 #endif end interface interface rocblas_csyr2k function rocblas_csyr2k_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_csyr2k") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr2k_full_rank,& rocblas_csyr2k_rank_0,& rocblas_csyr2k_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syr2k performs one of the matrix-matrix operations for a symmetric rank-2k update !> !> C := alpha*(op( A )*op( B )^T + op( B )*op( A )^T) + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrix, and !> C is a symmetric n x n matrix stored as either upper or lower. !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none !> op( A ) = A^T, op( B ) = B^T, and A and B are k by n if trans == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C is an upper triangular matrix !> rocblas_fill_lower: C is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_transpose: op( A ) = A^T, op( B ) = B^T !> rocblas_operation_none: op( A ) = A, op( B ) = B !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A) and op(B). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface rocblas_zsyr2k function rocblas_zsyr2k_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zsyr2k") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr2k_full_rank,& rocblas_zsyr2k_rank_0,& rocblas_zsyr2k_rank_1 #endif end interface interface rocblas_ssyr2k_batched function rocblas_ssyr2k_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_ssyr2k_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr2k_batched_full_rank,& rocblas_ssyr2k_batched_rank_0,& rocblas_ssyr2k_batched_rank_1 #endif end interface interface rocblas_dsyr2k_batched function rocblas_dsyr2k_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_dsyr2k_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr2k_batched_full_rank,& rocblas_dsyr2k_batched_rank_0,& rocblas_dsyr2k_batched_rank_1 #endif end interface interface rocblas_csyr2k_batched function rocblas_csyr2k_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_csyr2k_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr2k_batched_full_rank,& rocblas_csyr2k_batched_rank_0,& rocblas_csyr2k_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syr2k_batched performs a batch of the matrix-matrix operations for a symmetric rank-2k update !> !> C_i := alpha*(op( A_i )*op( B_i )^T + op( B_i )*op( A_i )^T) + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsyr2k_batched function rocblas_zsyr2k_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zsyr2k_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr2k_batched_full_rank,& rocblas_zsyr2k_batched_rank_0,& rocblas_zsyr2k_batched_rank_1 #endif end interface interface rocblas_ssyr2k_strided_batched function rocblas_ssyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_ssyr2k_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyr2k_strided_batched_full_rank,& rocblas_ssyr2k_strided_batched_rank_0,& rocblas_ssyr2k_strided_batched_rank_1 #endif end interface interface rocblas_dsyr2k_strided_batched function rocblas_dsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_dsyr2k_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyr2k_strided_batched_full_rank,& rocblas_dsyr2k_strided_batched_rank_0,& rocblas_dsyr2k_strided_batched_rank_1 #endif end interface interface rocblas_csyr2k_strided_batched function rocblas_csyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_csyr2k_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyr2k_strided_batched_full_rank,& rocblas_csyr2k_strided_batched_rank_0,& rocblas_csyr2k_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syr2k_strided_batched performs a batch of the matrix-matrix operations for a symmetric rank-2k update !> !> C_i := alpha*(op( A_i )*op( B_i )^T + op( B_i )*op( A_i )^T) + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsyr2k_strided_batched function rocblas_zsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zsyr2k_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyr2k_strided_batched_full_rank,& rocblas_zsyr2k_strided_batched_rank_0,& rocblas_zsyr2k_strided_batched_rank_1 #endif end interface interface rocblas_ssyrkx function rocblas_ssyrkx_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_ssyrkx") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyrkx_full_rank,& rocblas_ssyrkx_rank_0,& rocblas_ssyrkx_rank_1 #endif end interface interface rocblas_dsyrkx function rocblas_dsyrkx_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_dsyrkx") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyrkx_full_rank,& rocblas_dsyrkx_rank_0,& rocblas_dsyrkx_rank_1 #endif end interface interface rocblas_csyrkx function rocblas_csyrkx_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_csyrkx") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyrkx_full_rank,& rocblas_csyrkx_rank_0,& rocblas_csyrkx_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkx performs one of the matrix-matrix operations for a symmetric rank-k update !> !> C := alpha*op( A )*op( B )^T + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrix, and !> C is a symmetric n x n matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be symmetric. !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none !> op( A ) = A^T, op( B ) = B^T, and A and B are k by n if trans == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C is an upper triangular matrix !> rocblas_fill_lower: C is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_transpose: op( A ) = A^T, op( B ) = B^T !> rocblas_operation_none: op( A ) = A, op( B ) = B !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A) and op(B). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface rocblas_zsyrkx function rocblas_zsyrkx_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zsyrkx") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyrkx_full_rank,& rocblas_zsyrkx_rank_0,& rocblas_zsyrkx_rank_1 #endif end interface interface rocblas_ssyrkx_batched function rocblas_ssyrkx_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_ssyrkx_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyrkx_batched_full_rank,& rocblas_ssyrkx_batched_rank_0,& rocblas_ssyrkx_batched_rank_1 #endif end interface interface rocblas_dsyrkx_batched function rocblas_dsyrkx_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_dsyrkx_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyrkx_batched_full_rank,& rocblas_dsyrkx_batched_rank_0,& rocblas_dsyrkx_batched_rank_1 #endif end interface interface rocblas_csyrkx_batched function rocblas_csyrkx_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_csyrkx_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyrkx_batched_full_rank,& rocblas_csyrkx_batched_rank_0,& rocblas_csyrkx_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkx_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A_i )*op( B_i )^T will be symmetric. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsyrkx_batched function rocblas_zsyrkx_batched_(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zsyrkx_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyrkx_batched_full_rank,& rocblas_zsyrkx_batched_rank_0,& rocblas_zsyrkx_batched_rank_1 #endif end interface interface rocblas_ssyrkx_strided_batched function rocblas_ssyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_ssyrkx_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ssyrkx_strided_batched_full_rank,& rocblas_ssyrkx_strided_batched_rank_0,& rocblas_ssyrkx_strided_batched_rank_1 #endif end interface interface rocblas_dsyrkx_strided_batched function rocblas_dsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_dsyrkx_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dsyrkx_strided_batched_full_rank,& rocblas_dsyrkx_strided_batched_rank_0,& rocblas_dsyrkx_strided_batched_rank_1 #endif end interface interface rocblas_csyrkx_strided_batched function rocblas_csyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_csyrkx_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_csyrkx_strided_batched_full_rank,& rocblas_csyrkx_strided_batched_rank_0,& rocblas_csyrkx_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkx_strided_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A_i )*op( B_i )^T will be symmetric. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: C_i is an upper triangular matrix !> rocblas_fill_lower: C_i is a lower triangular matrix !> !> @param[in] !> trans [rocblas_operation] !> rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [rocblas_int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [rocblas_int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is rocblas_operation_none, otherwise of dimension (lda, n) !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A_i. !> if trans = rocblas_operation_none, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is rocblas_operation_none, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. !> if trans = rocblas_operation_none, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> !> @param[in] !> ldc [rocblas_int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zsyrkx_strided_batched function rocblas_zsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) bind(c, name="rocblas_zsyrkx_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zsyrkx_strided_batched_full_rank,& rocblas_zsyrkx_strided_batched_rank_0,& rocblas_zsyrkx_strided_batched_rank_1 #endif end interface interface rocblas_strmm function rocblas_strmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_strmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strmm_full_rank,& rocblas_strmm_rank_0,& rocblas_strmm_rank_1 #endif end interface interface rocblas_dtrmm function rocblas_dtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_dtrmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrmm_full_rank,& rocblas_dtrmm_rank_0,& rocblas_dtrmm_rank_1 #endif end interface interface rocblas_ctrmm function rocblas_ctrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_ctrmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrmm_full_rank,& rocblas_ctrmm_rank_0,& rocblas_ctrmm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> trmm performs one of the matrix-matrix operations !> !> B := alpha*op( A )*B, or B := alpha*B*op( A ) !> !> where alpha is a scalar, B is an m by n matrix, A is a unit, or !> non-unit, upper or lower triangular matrix and op( A ) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> When uplo == rocblas_fill_upper the leading k by k !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. Here k is m when side == rocblas_side_left !> and is n when side == rocblas_side_right. !> !> When uplo == rocblas_fill_lower the leading k by k !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. Here k is m when side == rocblas_side_left !> and is n when side == rocblas_side_right. !> !> Note that when diag == rocblas_diagonal_unit the diagonal elements of !> A are not referenced either, but are assumed to be unity. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> Specifies whether op(A) multiplies B from the left or right as follows: !> rocblas_side_left: B := alpha*op( A )*B. !> rocblas_side_right: B := alpha*B*op( A ). !> !> @param[in] !> uplo [rocblas_fill] !> Specifies whether the matrix A is an upper or lower triangular matrix as follows: !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> Specifies the form of op(A) to be used in the matrix multiplication as follows: !> rocblas_operation_none: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> !> @param[in] !> diag [rocblas_diagonal] !> Specifies whether or not A is unit triangular as follows: !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and B need not be set before !> entry. !> !> @param[in] !> A Device pointer to matrix A on the GPU. !> A has dimension ( lda, k ), where k is m !> when side == rocblas_side_left and !> is n when side == rocblas_side_right. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side == rocblas_side_left, lda >= max( 1, m ), !> if side == rocblas_side_right, lda >= max( 1, n ). !> !> @param[inout] !> B Device pointer to the first matrix B_0 on the GPU. !> On entry, the leading m by n part of the array B must !> contain the matrix B, and on exit is overwritten by the !> transformed matrix. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ). !> interface rocblas_ztrmm function rocblas_ztrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_ztrmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrmm_full_rank,& rocblas_ztrmm_rank_0,& rocblas_ztrmm_rank_1 #endif end interface interface rocblas_strmm_batched function rocblas_strmm_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,c,ldc,batch_count) bind(c, name="rocblas_strmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: a integer(c_int),value :: lda type(c_ptr) :: c integer(c_int),value :: ldc integer(c_int),value :: batch_count end function end interface interface rocblas_dtrmm_batched function rocblas_dtrmm_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,c,ldc,batch_count) bind(c, name="rocblas_dtrmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: a integer(c_int),value :: lda type(c_ptr) :: c integer(c_int),value :: ldc integer(c_int),value :: batch_count end function end interface interface rocblas_ctrmm_batched function rocblas_ctrmm_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,c,ldc,batch_count) bind(c, name="rocblas_ctrmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: a integer(c_int),value :: lda type(c_ptr) :: c integer(c_int),value :: ldc integer(c_int),value :: batch_count end function end interface !> \brief BLAS Level 3 API !> !> \details !> !> trmm_batched performs one of the batched matrix-matrix operations !> !> B_i := alpha*op( A_i )*B_i, or B_i := alpha*B_i*op( A_i ) for i = 0, 1, ... batch_count -1 !> !> where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or !> non-unit, upper or lower triangular matrix and op( A_i ) is one of !> !> op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> Specifies whether op(A_i) multiplies B_i from the left or right as follows: !> rocblas_side_left: B_i := alpha*op( A_i )*B_i. !> rocblas_side_right: B_i := alpha*B_i*op( A_i ). !> !> @param[in] !> uplo [rocblas_fill] !> Specifies whether the matrix A is an upper or lower triangular matrix as follows: !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> Specifies the form of op(A_i) to be used in the matrix multiplication as follows: !> rocblas_operation_none: op(A_i) = A_i. !> rocblas_operation_transpose: op(A_i) = A_i^T. !> rocblas_operation_conjugate_transpose: op(A_i) = A_i^H. !> !> @param[in] !> diag [rocblas_diagonal] !> Specifies whether or not A_i is unit triangular as follows: !> rocblas_diagonal_unit: A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i is not referenced and B_i need not be set before !> entry. !> !> @param[in] !> A Device array of device pointers storing each matrix A_i on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when side == rocblas_side_left and !> is n when side == rocblas_side_right. !> !> When uplo == rocblas_fill_upper the leading k by k !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. !> !> When uplo == rocblas_fill_lower the leading k by k !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. !> !> Note that when diag == rocblas_diagonal_unit the diagonal elements of !> A_i are not referenced either, but are assumed to be unity. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side == rocblas_side_left, lda >= max( 1, m ), !> if side == rocblas_side_right, lda >= max( 1, n ). !> !> @param[inout] !> B device array of device pointers storing each matrix B_i on the GPU. !> On entry, the leading m by n part of the array B_i must !> contain the matrix B_i, and on exit is overwritten by the !> transformed matrix. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ). !> !> @param[in] !> batch_count [rocblas_int] !> number of instances i in the batch. interface rocblas_ztrmm_batched function rocblas_ztrmm_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,c,ldc,batch_count) bind(c, name="rocblas_ztrmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: a integer(c_int),value :: lda type(c_ptr) :: c integer(c_int),value :: ldc integer(c_int),value :: batch_count end function end interface interface rocblas_strmm_strided_batched function rocblas_strmm_strided_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,stride_a,c,ldc,stride_c,batch_count) bind(c, name="rocblas_strmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: a integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: c integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function end interface interface rocblas_dtrmm_strided_batched function rocblas_dtrmm_strided_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,stride_a,c,ldc,stride_c,batch_count) bind(c, name="rocblas_dtrmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: a integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: c integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function end interface interface rocblas_ctrmm_strided_batched function rocblas_ctrmm_strided_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,stride_a,c,ldc,stride_c,batch_count) bind(c, name="rocblas_ctrmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: a integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: c integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function end interface !> \brief BLAS Level 3 API !> !> \details !> !> trmm_strided_batched performs one of the strided_batched matrix-matrix operations !> !> B_i := alpha*op( A_i )*B_i, or B_i := alpha*B_i*op( A_i ) for i = 0, 1, ... batch_count -1 !> !> where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or !> non-unit, upper or lower triangular matrix and op( A_i ) is one of !> !> op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> Specifies whether op(A_i) multiplies B_i from the left or right as follows: !> rocblas_side_left: B_i := alpha*op( A_i )*B_i. !> rocblas_side_right: B_i := alpha*B_i*op( A_i ). !> !> @param[in] !> uplo [rocblas_fill] !> Specifies whether the matrix A is an upper or lower triangular matrix as follows: !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> Specifies the form of op(A_i) to be used in the matrix multiplication as follows: !> rocblas_operation_none: op(A_i) = A_i. !> rocblas_operation_transpose: op(A_i) = A_i^T. !> rocblas_operation_conjugate_transpose: op(A_i) = A_i^H. !> !> @param[in] !> diag [rocblas_diagonal] !> Specifies whether or not A_i is unit triangular as follows: !> rocblas_diagonal_unit: A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i is not referenced and B_i need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_0 on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when side == rocblas_side_left and !> is n when side == rocblas_side_right. !> !> When uplo == rocblas_fill_upper the leading k by k !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. !> !> When uplo == rocblas_fill_lower the leading k by k !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. !> !> Note that when diag == rocblas_diagonal_unit the diagonal elements of !> A_i are not referenced either, but are assumed to be unity. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side == rocblas_side_left, lda >= max( 1, m ), !> if side == rocblas_side_right, lda >= max( 1, n ). !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[inout] !> B Device pointer to the first matrix B_0 on the GPU. !> On entry, the leading m by n part of the array B_i must !> contain the matrix B_i, and on exit is overwritten by the !> transformed matrix. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ). !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances i in the batch. interface rocblas_ztrmm_strided_batched function rocblas_ztrmm_strided_batched_(handle,side,uplo,transa,diag,m,n,alpha,a,lda,stride_a,c,ldc,stride_c,batch_count) bind(c, name="rocblas_ztrmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: a integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: c integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function end interface interface rocblas_strtri function rocblas_strtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="rocblas_strtri") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strtri_full_rank,& rocblas_strtri_rank_0,& rocblas_strtri_rank_1 #endif end interface interface rocblas_dtrtri function rocblas_dtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="rocblas_dtrtri") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrtri_full_rank,& rocblas_dtrtri_rank_0,& rocblas_dtrtri_rank_1 #endif end interface interface rocblas_ctrtri function rocblas_ctrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="rocblas_ctrtri") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrtri_full_rank,& rocblas_ctrtri_rank_0,& rocblas_ctrtri_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> trtri compute the inverse of a matrix A, namely, invA !> !> and write the result into invA; !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> if rocblas_fill_upper, the lower part of A is not referenced !> if rocblas_fill_lower, the upper part of A is not referenced !> @param[in] !> diag [rocblas_diagonal] !> = 'rocblas_diagonal_non_unit', A is non-unit triangular; !> = 'rocblas_diagonal_unit', A is unit triangular; !> @param[in] !> n [rocblas_int] !> size of matrix A and invA !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[out] !> invA device pointer storing matrix invA. !> @param[in] !> ldinvA [rocblas_int] !> specifies the leading dimension of invA. !> interface rocblas_ztrtri function rocblas_ztrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="rocblas_ztrtri") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrtri_full_rank,& rocblas_ztrtri_rank_0,& rocblas_ztrtri_rank_1 #endif end interface interface rocblas_strtri_batched function rocblas_strtri_batched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) bind(c, name="rocblas_strtri_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strtri_batched_full_rank,& rocblas_strtri_batched_rank_0,& rocblas_strtri_batched_rank_1 #endif end interface interface rocblas_dtrtri_batched function rocblas_dtrtri_batched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) bind(c, name="rocblas_dtrtri_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrtri_batched_full_rank,& rocblas_dtrtri_batched_rank_0,& rocblas_dtrtri_batched_rank_1 #endif end interface interface rocblas_ctrtri_batched function rocblas_ctrtri_batched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) bind(c, name="rocblas_ctrtri_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrtri_batched_full_rank,& rocblas_ctrtri_batched_rank_0,& rocblas_ctrtri_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> trtri_batched compute the inverse of A_i and write into invA_i where !> A_i and invA_i are the i-th matrices in the batch, !> for i = 1, ..., batch_count. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> @param[in] !> diag [rocblas_diagonal] !> = 'rocblas_diagonal_non_unit', A is non-unit triangular; !> = 'rocblas_diagonal_unit', A is unit triangular; !> @param[in] !> n [rocblas_int] !> @param[in] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[out] !> invA device array of device pointers storing the inverse of each matrix A_i. !> Partial inplace operation is supported, see below. !> If UPLO = 'U', the leading N-by-N upper triangular part of the invA will store !> the inverse of the upper triangular matrix, and the strictly lower !> triangular part of invA is cleared. !> If UPLO = 'L', the leading N-by-N lower triangular part of the invA will store !> the inverse of the lower triangular matrix, and the strictly upper !> triangular part of invA is cleared. !> @param[in] !> ldinvA [rocblas_int] !> specifies the leading dimension of each invA_i. !> @param[in] !> batch_count [rocblas_int] !> numbers of matrices in the batch interface rocblas_ztrtri_batched function rocblas_ztrtri_batched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) bind(c, name="rocblas_ztrtri_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrtri_batched_full_rank,& rocblas_ztrtri_batched_rank_0,& rocblas_ztrtri_batched_rank_1 #endif end interface interface rocblas_strtri_strided_batched function rocblas_strtri_strided_batched_(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) bind(c, name="rocblas_strtri_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strtri_strided_batched_full_rank,& rocblas_strtri_strided_batched_rank_0,& rocblas_strtri_strided_batched_rank_1 #endif end interface interface rocblas_dtrtri_strided_batched function rocblas_dtrtri_strided_batched_(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) bind(c, name="rocblas_dtrtri_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrtri_strided_batched_full_rank,& rocblas_dtrtri_strided_batched_rank_0,& rocblas_dtrtri_strided_batched_rank_1 #endif end interface interface rocblas_ctrtri_strided_batched function rocblas_ctrtri_strided_batched_(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) bind(c, name="rocblas_ctrtri_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrtri_strided_batched_full_rank,& rocblas_ctrtri_strided_batched_rank_0,& rocblas_ctrtri_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> trtri_strided_batched compute the inverse of A_i and write into invA_i where !> A_i and invA_i are the i-th matrices in the batch, !> for i = 1, ..., batch_count !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> uplo [rocblas_fill] !> specifies whether the upper 'rocblas_fill_upper' or lower 'rocblas_fill_lower' !> @param[in] !> diag [rocblas_diagonal] !> = 'rocblas_diagonal_non_unit', A is non-unit triangular; !> = 'rocblas_diagonal_unit', A is unit triangular; !> @param[in] !> n [rocblas_int] !> @param[in] !> A device pointer pointing to address of first matrix A_1. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A. !> @param[in] !> stride_a [rocblas_stride] !> "batch stride a": stride from the start of one A_i matrix to the next A_(i + 1). !> @param[out] !> invA device pointer storing the inverses of each matrix A_i. !> Partial inplace operation is supported, see below. !> If UPLO = 'U', the leading N-by-N upper triangular part of the invA will store !> the inverse of the upper triangular matrix, and the strictly lower !> triangular part of invA is cleared. !> If UPLO = 'L', the leading N-by-N lower triangular part of the invA will store !> the inverse of the lower triangular matrix, and the strictly upper !> triangular part of invA is cleared. !> @param[in] !> ldinvA [rocblas_int] !> specifies the leading dimension of each invA_i. !> @param[in] !> stride_invA [rocblas_stride] !> "batch stride invA": stride from the start of one invA_i matrix to the next invA_(i + 1). !> @param[in] !> batch_count [rocblas_int] !> numbers of matrices in the batch interface rocblas_ztrtri_strided_batched function rocblas_ztrtri_strided_batched_(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) bind(c, name="rocblas_ztrtri_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrtri_strided_batched_full_rank,& rocblas_ztrtri_strided_batched_rank_0,& rocblas_ztrtri_strided_batched_rank_1 #endif end interface interface rocblas_strsm function rocblas_strsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_strsm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strsm_full_rank,& rocblas_strsm_rank_0,& rocblas_strsm_rank_1 #endif end interface interface rocblas_dtrsm function rocblas_dtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_dtrsm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrsm_full_rank,& rocblas_dtrsm_rank_0,& rocblas_dtrsm_rank_1 #endif end interface interface rocblas_ctrsm function rocblas_ctrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_ctrsm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrsm_full_rank,& rocblas_ctrsm_rank_0,& rocblas_ctrsm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> trsm solves !> !> op(A)*X = alpha*B or X*op(A) = alpha*B, !> !> where alpha is a scalar, X and B are m by n matrices, !> A is triangular matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> The matrix X is overwritten on B. !> !> Note about memory allocation: !> When trsm is launched with a k evenly divisible by the internal block size of 128, !> and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated !> memory found in the handle to increase overall performance. This memory can be managed by using !> the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory !> used for temporary storage will default to 1 MB and may result in chunking, which in turn may !> reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set !> to the desired chunk of right hand sides to be used at a time. !> !> (where k is m when rocblas_side_left and is n when rocblas_side_right) !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: op(A)*X = alpha*B. !> rocblas_side_right: X*op(A) = alpha*B. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> transB: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B. n >= 0. !> !> @param[in] !> alpha !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced and B need not be set before !> entry. !> !> @param[in] !> A device pointer storing matrix A. !> of dimension ( lda, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side = rocblas_side_left, lda >= max( 1, m ), !> if side = rocblas_side_right, lda >= max( 1, n ). !> !> @param[in,out] !> B device pointer storing matrix B. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ). !> interface rocblas_ztrsm function rocblas_ztrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="rocblas_ztrsm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrsm_full_rank,& rocblas_ztrsm_rank_0,& rocblas_ztrsm_rank_1 #endif end interface interface rocblas_strsm_batched function rocblas_strsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) bind(c, name="rocblas_strsm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strsm_batched_full_rank,& rocblas_strsm_batched_rank_0,& rocblas_strsm_batched_rank_1 #endif end interface interface rocblas_dtrsm_batched function rocblas_dtrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) bind(c, name="rocblas_dtrsm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrsm_batched_full_rank,& rocblas_dtrsm_batched_rank_0,& rocblas_dtrsm_batched_rank_1 #endif end interface interface rocblas_ctrsm_batched function rocblas_ctrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) bind(c, name="rocblas_ctrsm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrsm_batched_full_rank,& rocblas_ctrsm_batched_rank_0,& rocblas_ctrsm_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> \details !> trsm_batched performs the following batched operation: !> !> op(A_i)*X_i = alpha*B_i or X_i*op(A_i) = alpha*B_i, for i = 1, ..., batch_count. !> !> where alpha is a scalar, X and B are batched m by n matrices, !> A is triangular batched matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> Each matrix X_i is overwritten on B_i for i = 1, ..., batch_count. !> !> Note about memory allocation: !> When trsm is launched with a k evenly divisible by the internal block size of 128, !> and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated !> memory found in the handle to increase overall performance. This memory can be managed by using !> the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory !> used for temporary storage will default to 1 MB and may result in chunking, which in turn may !> reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set !> to the desired chunk of right hand sides to be used at a time. !> (where k is m when rocblas_side_left and is n when rocblas_side_right) !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> side [rocblas_side] !> rocblas_side_left: op(A)*X = alpha*B. !> rocblas_side_right: X*op(A) = alpha*B. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper triangular matrix. !> rocblas_fill_lower: each A_i is a lower triangular matrix. !> @param[in] !> transA [rocblas_operation] !> transB: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of each B_i. m >= 0. !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of each B_i. n >= 0. !> @param[in] !> alpha !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced and B need not be set before !> entry. !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> Matricies are of dimension ( lda, k ), where k is m !> when rocblas_side_left and is n when rocblas_side_right !> only the upper/lower triangular part is accessed. !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of each A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> if side = rocblas_side_right, lda >= max( 1, n ). !> @param[in,out] !> B device array of device pointers storing each matrix B_i on the GPU. !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). !> @param[in] !> batch_count [rocblas_int] !> number of trsm operatons in the batch. interface rocblas_ztrsm_batched function rocblas_ztrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) bind(c, name="rocblas_ztrsm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrsm_batched_full_rank,& rocblas_ztrsm_batched_rank_0,& rocblas_ztrsm_batched_rank_1 #endif end interface interface rocblas_strsm_strided_batched function rocblas_strsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) bind(c, name="rocblas_strsm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_strsm_strided_batched_full_rank,& rocblas_strsm_strided_batched_rank_0,& rocblas_strsm_strided_batched_rank_1 #endif end interface interface rocblas_dtrsm_strided_batched function rocblas_dtrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) bind(c, name="rocblas_dtrsm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dtrsm_strided_batched_full_rank,& rocblas_dtrsm_strided_batched_rank_0,& rocblas_dtrsm_strided_batched_rank_1 #endif end interface interface rocblas_ctrsm_strided_batched function rocblas_ctrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) bind(c, name="rocblas_ctrsm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ctrsm_strided_batched_full_rank,& rocblas_ctrsm_strided_batched_rank_0,& rocblas_ctrsm_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> \details !> trsm_srided_batched performs the following strided batched operation: !> !> op(A_i)*X_i = alpha*B_i or X_i*op(A_i) = alpha*B_i, for i = 1, ..., batch_count. !> !> where alpha is a scalar, X and B are strided batched m by n matrices, !> A is triangular strided batched matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> Each matrix X_i is overwritten on B_i for i = 1, ..., batch_count. !> !> Note about memory allocation: !> When trsm is launched with a k evenly divisible by the internal block size of 128, !> and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated !> memory found in the handle to increase overall performance. This memory can be managed by using !> the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory !> used for temporary storage will default to 1 MB and may result in chunking, which in turn may !> reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set !> to the desired chunk of right hand sides to be used at a time. !> (where k is m when rocblas_side_left and is n when rocblas_side_right) !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> side [rocblas_side] !> rocblas_side_left: op(A)*X = alpha*B. !> rocblas_side_right: X*op(A) = alpha*B. !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper triangular matrix. !> rocblas_fill_lower: each A_i is a lower triangular matrix. !> @param[in] !> transA [rocblas_operation] !> transB: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of each B_i. m >= 0. !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of each B_i. n >= 0. !> @param[in] !> alpha !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced and B need not be set before !> entry. !> @param[in] !> A device pointer pointing to the first matrix A_1. !> of dimension ( lda, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right !> only the upper/lower triangular part is accessed. !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of each A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> if side = rocblas_side_right, lda >= max( 1, n ). !> @param[in] !> stride_a [rocblas_stride] !> stride from the start of one A_i matrix to the next A_(i + 1). !> @param[in,out] !> B device pointer pointing to the first matrix B_1. !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). !> @param[in] !> stride_b [rocblas_stride] !> stride from the start of one B_i matrix to the next B_(i + 1). !> @param[in] !> batch_count [rocblas_int] !> number of trsm operatons in the batch. interface rocblas_ztrsm_strided_batched function rocblas_ztrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) bind(c, name="rocblas_ztrsm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ztrsm_strided_batched_full_rank,& rocblas_ztrsm_strided_batched_rank_0,& rocblas_ztrsm_strided_batched_rank_1 #endif end interface interface rocblas_sgemm function rocblas_sgemm_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_sgemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemm_full_rank,& rocblas_sgemm_rank_0,& rocblas_sgemm_rank_1 #endif end interface interface rocblas_dgemm function rocblas_dgemm_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_dgemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemm_full_rank,& rocblas_dgemm_rank_0,& rocblas_dgemm_rank_1 #endif end interface interface rocblas_hgemm function rocblas_hgemm_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_hgemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hgemm_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: beta type(c_ptr) :: C integer(c_int),value :: ldc end function end interface interface rocblas_cgemm function rocblas_cgemm_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_cgemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgemm_full_rank,& rocblas_cgemm_rank_0,& rocblas_cgemm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> gemm performs one of the matrix-matrix operations !> !> C = alpha*op( A )*op( B ) + beta*C, !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B and C are matrices, with !> op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ) !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ) !> @param[in] !> m [rocblas_int] !> number or rows of matrices op( A ) and C !> @param[in] !> n [rocblas_int] !> number of columns of matrices op( B ) and C !> @param[in] !> k [rocblas_int] !> number of columns of matrix op( A ) and number of rows of matrix op( B ) !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> B device pointer storing matrix B. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of B. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in, out] !> C device pointer storing matrix C on the GPU. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> interface rocblas_zgemm function rocblas_zgemm_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="rocblas_zgemm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgemm_full_rank,& rocblas_zgemm_rank_0,& rocblas_zgemm_rank_1 #endif end interface interface rocblas_sgemm_batched function rocblas_sgemm_batched_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_sgemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemm_batched_full_rank,& rocblas_sgemm_batched_rank_0,& rocblas_sgemm_batched_rank_1 #endif end interface interface rocblas_dgemm_batched function rocblas_dgemm_batched_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_dgemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemm_batched_full_rank,& rocblas_dgemm_batched_rank_0,& rocblas_dgemm_batched_rank_1 #endif end interface interface rocblas_hgemm_batched function rocblas_hgemm_batched_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_hgemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hgemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function end interface interface rocblas_cgemm_batched function rocblas_cgemm_batched_(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_cgemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgemm_batched_full_rank,& rocblas_cgemm_batched_rank_0,& rocblas_cgemm_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> \details !> gemm_batched performs one of the batched matrix-matrix operations !> C_i = alpha*op( A_i )*op( B_i ) + beta*C_i, for i = 1, ..., batch_count. !> where op( X ) is one of !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> alpha and beta are scalars, and A, B and C are strided batched matrices, with !> op( A ) an m by k by batch_count strided_batched matrix, !> op( B ) an k by n by batch_count strided_batched matrix and !> C an m by n by batch_count strided_batched matrix. !> @param[in] !> handle [rocblas_handle !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ) !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ) !> @param[in] !> m [rocblas_int] !> matrix dimention m. !> @param[in] !> n [rocblas_int] !> matrix dimention n. !> @param[in] !> k [rocblas_int] !> matrix dimention k. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> B device array of device pointers storing each matrix B_i. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of each B_i. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in, out] !> C device array of device pointers storing each matrix C_i. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of each C_i. !> @param[in] !> batch_count !> [rocblas_int] !> number of gemm operations in the batch interface rocblas_zgemm_batched function rocblas_zgemm_batched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) bind(c, name="rocblas_zgemm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_operation_none)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgemm_batched_full_rank,& rocblas_zgemm_batched_rank_0,& rocblas_zgemm_batched_rank_1 #endif end interface interface rocblas_sgemm_strided_batched function rocblas_sgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_sgemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemm_strided_batched_full_rank,& rocblas_sgemm_strided_batched_rank_0,& rocblas_sgemm_strided_batched_rank_1 #endif end interface interface rocblas_dgemm_strided_batched function rocblas_dgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_dgemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemm_strided_batched_full_rank,& rocblas_dgemm_strided_batched_rank_0,& rocblas_dgemm_strided_batched_rank_1 #endif end interface interface rocblas_hgemm_strided_batched function rocblas_hgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_hgemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hgemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: alpha type(c_ptr) :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function end interface interface rocblas_hgemm_kernel_name function rocblas_hgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_hgemm_kernel_name") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_hgemm_kernel_name_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: alpha type(c_ptr) :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function end interface interface rocblas_sgemm_kernel_name function rocblas_sgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_sgemm_kernel_name") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_kernel_name_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgemm_kernel_name_full_rank,& rocblas_sgemm_kernel_name_rank_0,& rocblas_sgemm_kernel_name_rank_1 #endif end interface interface rocblas_dgemm_kernel_name function rocblas_dgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_dgemm_kernel_name") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_kernel_name_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgemm_kernel_name_full_rank,& rocblas_dgemm_kernel_name_rank_0,& rocblas_dgemm_kernel_name_rank_1 #endif end interface interface rocblas_cgemm_strided_batched function rocblas_cgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_cgemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_operation_none)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgemm_strided_batched_full_rank,& rocblas_cgemm_strided_batched_rank_0,& rocblas_cgemm_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> gemm_strided_batched performs one of the strided batched matrix-matrix operations !> !> C_i = alpha*op( A_i )*op( B_i ) + beta*C_i, for i = 1, ..., batch_count. !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B and C are strided batched matrices, with !> op( A ) an m by k by batch_count strided_batched matrix, !> op( B ) an k by n by batch_count strided_batched matrix and !> C an m by n by batch_count strided_batched matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ) !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ) !> @param[in] !> m [rocblas_int] !> matrix dimention m. !> @param[in] !> n [rocblas_int] !> matrix dimention n. !> @param[in] !> k [rocblas_int] !> matrix dimention k. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device pointer pointing to the first matrix A_1. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> stride_a [rocblas_stride] !> stride from the start of one A_i matrix to the next A_(i + 1). !> @param[in] !> B device pointer pointing to the first matrix B_1. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of each B_i. !> @param[in] !> stride_b [rocblas_stride] !> stride from the start of one B_i matrix to the next B_(i + 1). !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in, out] !> C device pointer pointing to the first matrix C_1. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of each C_i. !> @param[in] !> stride_c [rocblas_stride] !> stride from the start of one C_i matrix to the next C_(i + 1). !> @param[in] !> batch_count !> [rocblas_int] !> number of gemm operatons in the batch !> interface rocblas_zgemm_strided_batched function rocblas_zgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) bind(c, name="rocblas_zgemm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transa integer(kind(rocblas_operation_none)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgemm_strided_batched_full_rank,& rocblas_zgemm_strided_batched_rank_0,& rocblas_zgemm_strided_batched_rank_1 #endif end interface interface rocblas_sdgmm function rocblas_sdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="rocblas_sdgmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sdgmm_full_rank,& rocblas_sdgmm_rank_0,& rocblas_sdgmm_rank_1 #endif end interface interface rocblas_ddgmm function rocblas_ddgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="rocblas_ddgmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ddgmm_full_rank,& rocblas_ddgmm_rank_0,& rocblas_ddgmm_rank_1 #endif end interface interface rocblas_cdgmm function rocblas_cdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="rocblas_cdgmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdgmm_full_rank,& rocblas_cdgmm_rank_0,& rocblas_cdgmm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> dgmm performs one of the matrix-matrix operations !> !> C = A * diag(x) if side == rocblas_side_right !> C = diag(x) * A if side == rocblas_side_left !> !> where C and A are m by n dimensional matrices. diag( x ) is a diagonal matrix !> and x is vector of dimension n if side == rocblas_side_right and dimension m !> if side == rocblas_side_left. !> !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> side [rocblas_side] !> specifies the side of diag(x) !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment between values of x !> @param[in, out] !> C device pointer storing matrix C. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> interface rocblas_zdgmm function rocblas_zdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="rocblas_zdgmm") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdgmm_full_rank,& rocblas_zdgmm_rank_0,& rocblas_zdgmm_rank_1 #endif end interface interface rocblas_sdgmm_batched function rocblas_sdgmm_batched_(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) bind(c, name="rocblas_sdgmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sdgmm_batched_full_rank,& rocblas_sdgmm_batched_rank_0,& rocblas_sdgmm_batched_rank_1 #endif end interface interface rocblas_ddgmm_batched function rocblas_ddgmm_batched_(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) bind(c, name="rocblas_ddgmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ddgmm_batched_full_rank,& rocblas_ddgmm_batched_rank_0,& rocblas_ddgmm_batched_rank_1 #endif end interface interface rocblas_cdgmm_batched function rocblas_cdgmm_batched_(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) bind(c, name="rocblas_cdgmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdgmm_batched_full_rank,& rocblas_cdgmm_batched_rank_0,& rocblas_cdgmm_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> dgmm_batched performs one of the batched matrix-matrix operations !> !> C_i = A_i * diag(x_i) for i = 0, 1, ... batch_count-1 if side == rocblas_side_right !> C_i = diag(x_i) * A_i for i = 0, 1, ... batch_count-1 if side == rocblas_side_left !> !> where C_i and A_i are m by n dimensional matrices. diag(x_i) is a diagonal matrix !> and x_i is vector of dimension n if side == rocblas_side_right and dimension m !> if side == rocblas_side_left. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> side [rocblas_side] !> specifies the side of diag(x) !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> Each A_i is of dimension ( lda, n ) !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A_i. !> @param[in] !> x device array of device pointers storing each vector x_i on the GPU. !> Each x_i is of dimension n if side == rocblas_side_right and dimension !> m if side == rocblas_side_left !> @param[in] !> incx [rocblas_int] !> specifies the increment between values of x_i !> @param[in, out] !> C device array of device pointers storing each matrix C_i on the GPU. !> Each C_i is of dimension ( ldc, n ). !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> interface rocblas_zdgmm_batched function rocblas_zdgmm_batched_(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) bind(c, name="rocblas_zdgmm_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdgmm_batched_full_rank,& rocblas_zdgmm_batched_rank_0,& rocblas_zdgmm_batched_rank_1 #endif end interface interface rocblas_sdgmm_strided_batched function rocblas_sdgmm_strided_batched_(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) bind(c, name="rocblas_sdgmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sdgmm_strided_batched_full_rank,& rocblas_sdgmm_strided_batched_rank_0,& rocblas_sdgmm_strided_batched_rank_1 #endif end interface interface rocblas_ddgmm_strided_batched function rocblas_ddgmm_strided_batched_(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) bind(c, name="rocblas_ddgmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_ddgmm_strided_batched_full_rank,& rocblas_ddgmm_strided_batched_rank_0,& rocblas_ddgmm_strided_batched_rank_1 #endif end interface interface rocblas_cdgmm_strided_batched function rocblas_cdgmm_strided_batched_(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) bind(c, name="rocblas_cdgmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cdgmm_strided_batched_full_rank,& rocblas_cdgmm_strided_batched_rank_0,& rocblas_cdgmm_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> dgmm_strided_batched performs one of the batched matrix-matrix operations !> !> C_i = A_i * diag(x_i) if side == rocblas_side_right for i = 0, 1, ... batch_count-1 !> C_i = diag(x_i) * A_i if side == rocblas_side_left for i = 0, 1, ... batch_count-1 !> !> where C_i and A_i are m by n dimensional matrices. diag(x_i) is a diagonal matrix !> and x_i is vector of dimension n if side == rocblas_side_right and dimension m !> if side == rocblas_side_left. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> side [rocblas_side] !> specifies the side of diag(x) !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> A device pointer to the first matrix A_0 on the GPU. !> Each A_i is of dimension ( lda, n ) !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x pointer to the first vector x_0 on the GPU. !> Each x_i is of dimension n if side == rocblas_side_right and dimension !> m if side == rocblas_side_left !> @param[in] !> incx [rocblas_int] !> specifies the increment between values of x !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector(x_i) and the next one (x_i+1) !> @param[in, out] !> C device pointer to the first matrix C_0 on the GPU. !> Each C_i is of dimension ( ldc, n ). !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> @param[in] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances i in the batch. !> interface rocblas_zdgmm_strided_batched function rocblas_zdgmm_strided_batched_(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) bind(c, name="rocblas_zdgmm_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zdgmm_strided_batched_full_rank,& rocblas_zdgmm_strided_batched_rank_0,& rocblas_zdgmm_strided_batched_rank_1 #endif end interface interface rocblas_sgeam function rocblas_sgeam_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="rocblas_sgeam") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgeam_full_rank,& rocblas_sgeam_rank_0,& rocblas_sgeam_rank_1 #endif end interface interface rocblas_dgeam function rocblas_dgeam_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="rocblas_dgeam") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgeam_full_rank,& rocblas_dgeam_rank_0,& rocblas_dgeam_rank_1 #endif end interface interface rocblas_cgeam function rocblas_cgeam_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="rocblas_cgeam") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgeam_full_rank,& rocblas_cgeam_rank_0,& rocblas_cgeam_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> geam performs one of the matrix-matrix operations !> !> C = alpha*op( A ) + beta*op( B ), !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B and C are matrices, with !> op( A ) an m by n matrix, op( B ) an m by n matrix, and C an m by n matrix. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ) !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ) !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in] !> B device pointer storing matrix B. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of B. !> @param[in, out] !> C device pointer storing matrix C. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> interface rocblas_zgeam function rocblas_zgeam_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="rocblas_zgeam") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgeam_full_rank,& rocblas_zgeam_rank_0,& rocblas_zgeam_rank_1 #endif end interface interface rocblas_sgeam_batched function rocblas_sgeam_batched_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) bind(c, name="rocblas_sgeam_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgeam_batched_full_rank,& rocblas_sgeam_batched_rank_0,& rocblas_sgeam_batched_rank_1 #endif end interface interface rocblas_dgeam_batched function rocblas_dgeam_batched_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) bind(c, name="rocblas_dgeam_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgeam_batched_full_rank,& rocblas_dgeam_batched_rank_0,& rocblas_dgeam_batched_rank_1 #endif end interface interface rocblas_cgeam_batched function rocblas_cgeam_batched_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) bind(c, name="rocblas_cgeam_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgeam_batched_full_rank,& rocblas_cgeam_batched_rank_0,& rocblas_cgeam_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> geam_batched performs one of the batched matrix-matrix operations !> !> C_i = alpha*op( A_i ) + beta*op( B_i ) for i = 0, 1, ... batch_count - 1 !> !> where alpha and beta are scalars, and op(A_i), op(B_i) and C_i are m by n matrices !> and op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ) !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ) !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when transA == rocblas_operation_none and !> is n when transA == rocblas_operation_transpose. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in] !> B device array of device pointers storing each matrix B_i on the GPU. !> Each B_i is of dimension ( ldb, k ), where k is m !> when transB == rocblas_operation_none and !> is n when transB == rocblas_operation_transpose. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of B. !> @param[in, out] !> C device array of device pointers storing each matrix C_i on the GPU. !> Each C_i is of dimension ( ldc, n ). !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> !> @param[in] !> batch_count [rocblas_int] !> number of instances i in the batch. !> interface rocblas_zgeam_batched function rocblas_zgeam_batched_(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) bind(c, name="rocblas_zgeam_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgeam_batched_full_rank,& rocblas_zgeam_batched_rank_0,& rocblas_zgeam_batched_rank_1 #endif end interface interface rocblas_sgeam_strided_batched function rocblas_sgeam_strided_batched_(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) bind(c, name="rocblas_sgeam_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a real(c_float) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_sgeam_strided_batched_full_rank,& rocblas_sgeam_strided_batched_rank_0,& rocblas_sgeam_strided_batched_rank_1 #endif end interface interface rocblas_dgeam_strided_batched function rocblas_dgeam_strided_batched_(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) bind(c, name="rocblas_dgeam_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a real(c_double) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_dgeam_strided_batched_full_rank,& rocblas_dgeam_strided_batched_rank_0,& rocblas_dgeam_strided_batched_rank_1 #endif end interface interface rocblas_cgeam_strided_batched function rocblas_cgeam_strided_batched_(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) bind(c, name="rocblas_cgeam_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a complex(c_float_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_cgeam_strided_batched_full_rank,& rocblas_cgeam_strided_batched_rank_0,& rocblas_cgeam_strided_batched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> geam_strided_batched performs one of the batched matrix-matrix operations !> !> C_i = alpha*op( A_i ) + beta*op( B_i ) for i = 0, 1, ... batch_count - 1 !> !> where alpha and beta are scalars, and op(A_i), op(B_i) and C_i are m by n matrices !> and op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ) !> !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ) !> !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> !> @param[in] !> A device pointer to the first matrix A_0 on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when transA == rocblas_operation_none and !> is n when transA == rocblas_operation_transpose. !> !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> !> @param[in] !> stride_A [rocblas_stride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> !> @param[in] !> B pointer to the first matrix B_0 on the GPU. !> Each B_i is of dimension ( ldb, k ), where k is m !> when transB == rocblas_operation_none and !> is n when transB == rocblas_operation_transpose. !> !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of B. !> !> @param[in] !> stride_B [rocblas_stride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in, out] !> C pointer to the first matrix C_0 on the GPU. !> Each C_i is of dimension ( ldc, n ). !> !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> !> @param[in] !> stride_C [rocblas_stride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batch_count [rocblas_int] !> number of instances i in the batch. !> interface rocblas_zgeam_strided_batched function rocblas_zgeam_strided_batched_(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) bind(c, name="rocblas_zgeam_strided_batched") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_a complex(c_double_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocblas_zgeam_strided_batched_full_rank,& rocblas_zgeam_strided_batched_rank_0,& rocblas_zgeam_strided_batched_rank_1 #endif end interface !> \brief BLAS EX API !> !> \details !> gemm_ex performs one of the matrix-matrix operations !> !> D = alpha*op( A )*op( B ) + beta*C, !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B, C, and D are matrices, with !> op( A ) an m by k matrix, op( B ) a k by n matrix and C and D are m by n matrices. !> !> Supported types are as follows: !> - rocblas_datatype_f64_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f32_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f16_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = !> compute_type !> - rocblas_datatype_f16_r = a_type = b_type; rocblas_datatype_f32_r = c_type = d_type = !> compute_type !> - rocblas_datatype_bf16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = !> compute_type !> - rocblas_datatype_bf16_r = a_type = b_type; rocblas_datatype_f32_r = c_type = d_type = !> compute_type !> - rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = c_type = d_type = !> compute_type !> - rocblas_datatype_f32_c = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f64_c = a_type = b_type = c_type = d_type = compute_type !> !> ROCm 4.2 supports two different versions of a = b = i8_r (in) and c = d = i32_r (out): !> - Both versions are rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = !> c_type = d_type = compute_type, in addition to a last flag param indicating packing input or not. !> !> - Without setting the last param 'flags' (default=none), this is supported for gfx908 or !> later GPUs only. Input a/b won't be packed into int8x4. So the following size restrictions and !> packing pseudo-code is not neccessary. !> !> - Set the last param 'flags' |= rocblas_gemm_flags_pack_int8x4. Input a/b would be packed !> into int8x4, and this will impose some size restrictions on A or B (See below.) For GPUs before !> gfx908, only packed-int8 version is supported so this flag and packing is required, while !> gfx908 GPUs support both versions. !> !> Below are restrictions for rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = !> c_type = d_type = compute_type; flags |= rocblas_gemm_flags_pack_int8x4: !> - k must be a multiple of 4 !> - lda must be a multiple of 4 if transA == rocblas_operation_transpose !> - ldb must be a multiple of 4 if transB == rocblas_operation_none !> - for transA == rocblas_operation_none or transB == rocblas_operation_transpose the matrices !> A and B must !> have each 4 consecutive values in the k dimension packed. This packing can be achieved !> with the following !> pseudo-code. The code assumes the original matrices are in A and B, and the packed !> matrices are A_packed !> and B_packed. The size of the A_packed matrix is the same as the size of the A matrix, and !> the size of !> the B_packed matrix is the same as the size of the B matrix. !> !> @code !> if(transA == rocblas_operation_none) !> { !> int nb = 4; !> for(int i_m = 0; i_m < m; i_m++) !> { !> for(int i_k = 0; i_k < k; i_k++) !> { !> A_packed[i_k % nb + (i_m + (i_k nb) * lda) * nb] = A[i_m + i_k * lda]; !> } !> } !> } !> else !> { !> A_packed = A; !> } !> if(transB == rocblas_operation_transpose) !> { !> int nb = 4; !> for(int i_n = 0; i_n < m; i_n++) !> { !> for(int i_k = 0; i_k < k; i_k++) !> { !> B_packed[i_k % nb + (i_n + (i_k nb) * ldb) * nb] = B[i_n + i_k * ldb]; !> } !> } !> } !> else !> { !> B_packed = B; !> } !> @endcode !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ). !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ). !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> k [rocblas_int] !> matrix dimension k. !> @param[in] !> alpha [ void *] !> device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. !> @param[in] !> a [void *] !> device pointer storing matrix A. !> @param[in] !> a_type [rocblas_datatype] !> specifies the datatype of matrix A. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of A. !> @param[in] !> b [void *] !> device pointer storing matrix B. !> @param[in] !> b_type [rocblas_datatype] !> specifies the datatype of matrix B. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of B. !> @param[in] !> beta [ void *] !> device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. !> @param[in] !> c [void *] !> device pointer storing matrix C. !> @param[in] !> c_type [rocblas_datatype] !> specifies the datatype of matrix C. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of C. !> @param[out] !> d [void *] !> device pointer storing matrix D. !> @param[in] !> d_type [rocblas_datatype] !> specifies the datatype of matrix D. !> @param[in] !> ldd [rocblas_int] !> specifies the leading dimension of D. !> @param[in] !> compute_type !> [rocblas_datatype] !> specifies the datatype of computation. !> @param[in] !> algo [rocblas_gemm_algo] !> enumerant specifying the algorithm type. !> @param[in] !> solution_index !> [int32_t] !> reserved for future use. !> @param[in] !> flags [uint32_t] !> optional gemm flags. !> interface rocblas_gemm_ex function rocblas_gemm_ex_(handle,transA,transB,m,n,k,alpha,a,a_type,lda,b,b_type,ldb,beta,c,c_type,ldc,d,d_type,ldd,compute_type,algo,solution_index,flags) bind(c, name="rocblas_gemm_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_gemm_ex_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr),value :: a integer(kind(rocblas_datatype_f16_r)),value :: a_type integer(c_int),value :: lda type(c_ptr),value :: b integer(kind(rocblas_datatype_f16_r)),value :: b_type integer(c_int),value :: ldb type(c_ptr),value :: beta type(c_ptr),value :: c integer(kind(rocblas_datatype_f16_r)),value :: c_type integer(c_int),value :: ldc type(c_ptr),value :: d integer(kind(rocblas_datatype_f16_r)),value :: d_type integer(c_int),value :: ldd integer(kind(rocblas_datatype_f16_r)),value :: compute_type integer(kind(rocblas_gemm_algo_standard)),value :: algo integer(c_int32_t),value :: solution_index integer(c_int),value :: flags end function end interface !> \brief BLAS EX API !> \details !> gemm_batched_ex performs one of the batched matrix-matrix operations !> D_i = alpha*op(A_i)*op(B_i) + beta*C_i, for i = 1, ..., batch_count. !> where op( X ) is one of !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> alpha and beta are scalars, and A, B, C, and D are batched pointers to matrices, with !> op( A ) an m by k by batch_count batched matrix, !> op( B ) a k by n by batch_count batched matrix and !> C and D are m by n by batch_count batched matrices. !> The batched matrices are an array of pointers to matrices. !> The number of pointers to matrices is batch_count. !> Supported types are as follows: !> - rocblas_datatype_f64_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f32_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f16_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = !> compute_type !> - rocblas_datatype_bf16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = !> compute_type !> - rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = c_type = d_type = !> compute_type !> - rocblas_datatype_f32_c = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f64_c = a_type = b_type = c_type = d_type = compute_type !> !> ROCm 4.2 supports two different versions of a = b = i8_r (in) and c = d = i32_r (out): !> - Both versions are rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = !> c_type = d_type = compute_type, in addition to a last flag param indicating packing input or not. !> !> - Without setting the last param 'flags' (default=none), this is supported for gfx908 or !> later GPUs only. Input a/b won't be packed into int8x4. So the following size restrictions and !> packing pseudo-code is not neccessary. !> !> - Set the last param 'flags' |= rocblas_gemm_flags_pack_int8x4. Input a/b would be packed !> into int8x4, and this will impose some size restrictions on A or B (See below.) For GPUs before !> gfx908, only packed-int8 version is supported so this flag and packing is required, while !> gfx908 GPUs support both versions. !> !> Below are restrictions for rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = !> c_type = d_type = compute_type; flags |= rocblas_gemm_flags_pack_int8x4: !> - k must be a multiple of 4 !> - lda must be a multiple of 4 if transA == rocblas_operation_transpose !> - ldb must be a multiple of 4 if transB == rocblas_operation_none !> - for transA == rocblas_operation_none or transB == rocblas_operation_transpose the matrices !> A and B must !> have each 4 consecutive values in the k dimension packed. This packing can be achieved !> with the following !> pseudo-code. The code assumes the original matrices are in A and B, and the packed !> matrices are A_packed !> and B_packed. The size of the A_packed matrix is the same as the size of the A matrix, and !> the size of !> the B_packed matrix is the same as the size of the B matrix. !> @code !> if(transA == rocblas_operation_none) !> { !> int nb = 4; !> for(int i_m = 0; i_m < m; i_m++) !> { !> for(int i_k = 0; i_k < k; i_k++) !> { !> A_packed[i_k % nb + (i_m + (i_k nb) * lda) * nb] = A[i_m + i_k * lda]; !> } !> } !> } !> else !> { !> A_packed = A; !> } !> if(transB == rocblas_operation_transpose) !> { !> int nb = 4; !> for(int i_n = 0; i_n < m; i_n++) !> { !> for(int i_k = 0; i_k < k; i_k++) !> { !> B_packed[i_k % nb + (i_n + (i_k nb) * ldb) * nb] = B[i_n + i_k * ldb]; !> } !> } !> } !> else !> { !> B_packed = B; !> } !> @endcode !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ). !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ). !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> k [rocblas_int] !> matrix dimension k. !> @param[in] !> alpha [ void *] !> device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. !> @param[in] !> a [void *] !> device pointer storing array of pointers to each matrix A_i. !> @param[in] !> a_type [rocblas_datatype] !> specifies the datatype of each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> b [void *] !> device pointer storing array of pointers to each matrix B_i. !> @param[in] !> b_type [rocblas_datatype] !> specifies the datatype of each matrix B_i. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of each B_i. !> @param[in] !> beta [ void *] !> device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. !> @param[in] !> c [void *] !> device array of device pointers to each matrix C_i. !> @param[in] !> c_type [rocblas_datatype] !> specifies the datatype of each matrix C_i. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of each C_i. !> @param[out] !> d [void *] !> device array of device pointers to each matrix D_i. !> @param[in] !> d_type [rocblas_datatype] !> specifies the datatype of each matrix D_i. !> @param[in] !> ldd [rocblas_int] !> specifies the leading dimension of each D_i. !> @param[in] !> batch_count !> [rocblas_int] !> number of gemm operations in the batch. !> @param[in] !> compute_type !> [rocblas_datatype] !> specifies the datatype of computation. !> @param[in] !> algo [rocblas_gemm_algo] !> enumerant specifying the algorithm type. !> @param[in] !> solution_index !> [int32_t] !> reserved for future use. !> @param[in] !> flags [uint32_t] !> optional gemm flags. !> interface rocblas_gemm_batched_ex function rocblas_gemm_batched_ex_(handle,transA,transB,m,n,k,alpha,a,a_type,lda,b,b_type,ldb,beta,c,c_type,ldc,d,d_type,ldd,batch_count,compute_type,algo,solution_index,flags) bind(c, name="rocblas_gemm_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_gemm_batched_ex_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr),value :: a integer(kind(rocblas_datatype_f16_r)),value :: a_type integer(c_int),value :: lda type(c_ptr),value :: b integer(kind(rocblas_datatype_f16_r)),value :: b_type integer(c_int),value :: ldb type(c_ptr),value :: beta type(c_ptr),value :: c integer(kind(rocblas_datatype_f16_r)),value :: c_type integer(c_int),value :: ldc type(c_ptr),value :: d integer(kind(rocblas_datatype_f16_r)),value :: d_type integer(c_int),value :: ldd integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: compute_type integer(kind(rocblas_gemm_algo_standard)),value :: algo integer(c_int32_t),value :: solution_index integer(c_int),value :: flags end function end interface !> \brief BLAS EX API !> !> \details !> gemm_strided_batched_ex performs one of the strided_batched matrix-matrix operations !> !> D_i = alpha*op(A_i)*op(B_i) + beta*C_i, for i = 1, ..., batch_count !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B, C, and D are strided_batched matrices, with !> op( A ) an m by k by batch_count strided_batched matrix, !> op( B ) a k by n by batch_count strided_batched matrix and !> C and D are m by n by batch_count strided_batched matrices. !> !> The strided_batched matrices are multiple matrices separated by a ant stride. !> The number of matrices is batch_count. !> !> Supported types are as follows: !> - rocblas_datatype_f64_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f32_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f16_r = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = !> compute_type !> - rocblas_datatype_bf16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = !> compute_type !> - rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = c_type = d_type = !> compute_type !> - rocblas_datatype_f32_c = a_type = b_type = c_type = d_type = compute_type !> - rocblas_datatype_f64_c = a_type = b_type = c_type = d_type = compute_type !> !> ROCm 4.2 supports two different versions of a = b = i8_r (in) and c = d = i32_r (out): !> - Both versions are rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = !> c_type = d_type = compute_type, in addition to a last flag param indicating packing input or not. !> !> - Without setting the last param 'flags' (default=none), this is supported for gfx908 or !> later GPUs only. Input a/b won't be packed into int8x4. So the following size restrictions and !> packing pseudo-code is not neccessary. !> !> - Set the last param 'flags' |= rocblas_gemm_flags_pack_int8x4. Input a/b would be packed !> into int8x4, and this will impose some size restrictions on A or B (See below.) For GPUs before !> gfx908, only packed-int8 version is supported so this flag and packing is required, while !> gfx908 GPUs support both versions. !> !> Below are restrictions for rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = !> c_type = d_type = compute_type; flags |= rocblas_gemm_flags_pack_int8x4: !> - k must be a multiple of 4 !> - lda must be a multiple of 4 if transA == rocblas_operation_transpose !> - ldb must be a multiple of 4 if transB == rocblas_operation_none !> - for transA == rocblas_operation_none or transB == rocblas_operation_transpose the matrices !> A and B must !> have each 4 consecutive values in the k dimension packed. This packing can be achieved !> with the following !> pseudo-code. The code assumes the original matrices are in A and B, and the packed !> matrices are A_packed !> and B_packed. The size of the A_packed matrix is the same as the size of the A matrix, and !> the size of !> the B_packed matrix is the same as the size of the B matrix. !> !> @code !> if(transA == rocblas_operation_none) !> { !> int nb = 4; !> for(int i_m = 0; i_m < m; i_m++) !> { !> for(int i_k = 0; i_k < k; i_k++) !> { !> A_packed[i_k % nb + (i_m + (i_k nb) * lda) * nb] = A[i_m + i_k * lda]; !> } !> } !> } !> else !> { !> A_packed = A; !> } !> if(transB == rocblas_operation_transpose) !> { !> int nb = 4; !> for(int i_n = 0; i_n < m; i_n++) !> { !> for(int i_k = 0; i_k < k; i_k++) !> { !> B_packed[i_k % nb + (i_n + (i_k nb) * ldb) * nb] = B[i_n + i_k * ldb]; !> } !> } !> } !> else !> { !> B_packed = B; !> } !> @endcode !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> transA [rocblas_operation] !> specifies the form of op( A ). !> @param[in] !> transB [rocblas_operation] !> specifies the form of op( B ). !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> k [rocblas_int] !> matrix dimension k. !> @param[in] !> alpha [ void *] !> device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. !> @param[in] !> a [void *] !> device pointer pointing to first matrix A_1. !> @param[in] !> a_type [rocblas_datatype] !> specifies the datatype of each matrix A_i. !> @param[in] !> lda [rocblas_int] !> specifies the leading dimension of each A_i. !> @param[in] !> stride_a [rocblas_stride] !> specifies stride from start of one A_i matrix to the next A_(i + 1). !> @param[in] !> b [void *] !> device pointer pointing to first matrix B_1. !> @param[in] !> b_type [rocblas_datatype] !> specifies the datatype of each matrix B_i. !> @param[in] !> ldb [rocblas_int] !> specifies the leading dimension of each B_i. !> @param[in] !> stride_b [rocblas_stride] !> specifies stride from start of one B_i matrix to the next B_(i + 1). !> @param[in] !> beta [ void *] !> device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. !> @param[in] !> c [void *] !> device pointer pointing to first matrix C_1. !> @param[in] !> c_type [rocblas_datatype] !> specifies the datatype of each matrix C_i. !> @param[in] !> ldc [rocblas_int] !> specifies the leading dimension of each C_i. !> @param[in] !> stride_c [rocblas_stride] !> specifies stride from start of one C_i matrix to the next C_(i + 1). !> @param[out] !> d [void *] !> device pointer storing each matrix D_i. !> @param[in] !> d_type [rocblas_datatype] !> specifies the datatype of each matrix D_i. !> @param[in] !> ldd [rocblas_int] !> specifies the leading dimension of each D_i. !> @param[in] !> stride_d [rocblas_stride] !> specifies stride from start of one D_i matrix to the next D_(i + 1). !> @param[in] !> batch_count !> [rocblas_int] !> number of gemm operations in the batch. !> @param[in] !> compute_type !> [rocblas_datatype] !> specifies the datatype of computation. !> @param[in] !> algo [rocblas_gemm_algo] !> enumerant specifying the algorithm type. !> @param[in] !> solution_index !> [int32_t] !> reserved for future use. !> @param[in] !> flags [uint32_t] !> optional gemm flags. !> interface rocblas_gemm_strided_batched_ex function rocblas_gemm_strided_batched_ex_(handle,transA,transB,m,n,k,alpha,a,a_type,lda,stride_a,b,b_type,ldb,stride_b,beta,c,c_type,ldc,stride_c,d,d_type,ldd,stride_d,batch_count,compute_type,algo,solution_index,flags) bind(c, name="rocblas_gemm_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_gemm_strided_batched_ex_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_operation_none)),value :: transB integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr),value :: a integer(kind(rocblas_datatype_f16_r)),value :: a_type integer(c_int),value :: lda integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(kind(rocblas_datatype_f16_r)),value :: b_type integer(c_int),value :: ldb integer(c_int64_t),value :: stride_b type(c_ptr),value :: beta type(c_ptr),value :: c integer(kind(rocblas_datatype_f16_r)),value :: c_type integer(c_int),value :: ldc integer(c_int64_t),value :: stride_c type(c_ptr),value :: d integer(kind(rocblas_datatype_f16_r)),value :: d_type integer(c_int),value :: ldd integer(c_int64_t),value :: stride_d integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: compute_type integer(kind(rocblas_gemm_algo_standard)),value :: algo integer(c_int32_t),value :: solution_index integer(c_int),value :: flags end function end interface !> \brief BLAS EX API !> !> \details !> gemm_ext2 performs the matrix-matrix operations !> !> D = alpha * A * B + beta * C, !> !> alpha and beta are scalars, and A, B, C, and D are matrices, with A a m by k !> matrtix, B a k by n matrix, and C and D are m by n matrices. Each matrix A, B, C, D !> has independent row and column strides. !> !> This is a beta feature. !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> m [rocblas_int] !> matrix dimension m. !> @param[in] !> n [rocblas_int] !> matrix dimension n. !> @param[in] !> k [rocblas_int] !> matrix dimension k. !> @param[in] !> alpha [ void *] !> device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. !> @param[in] !> a [void *] !> device pointer storing matrix A. !> @param[in] !> a_type [rocblas_datatype] !> specifies the datatype of matrix A. !> @param[in] !> row_stride_a [rocblas_int] !> specifies the row stride of A. !> @param[in] !> col_stride_a [rocblas_int] !> specifies the column stride of A. !> @param[in] !> b [void *] !> device pointer storing matrix B. !> @param[in] !> b_type [rocblas_datatype] !> specifies the datatype of matrix B. !> @param[in] !> row_stride_b [rocblas_int] !> specifies the row stride of B. !> @param[in] !> col_stride_a [rocblas_int] !> specifies the column stride of B. !> @param[in] !> beta [ void *] !> device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. !> @param[in] !> c [void *] !> device pointer storing matrix C. !> @param[in] !> c_type [rocblas_datatype] !> specifies the datatype of matrix C. !> @param[in] !> row_stride_c [rocblas_int] !> specifies the row stride of C. !> @param[in] !> col_stride_c [rocblas_int] !> specifies the column stride of C. !> @param[out] !> d [void *] !> device pointer storing matrix D. !> @param[in] !> d_type [rocblas_datatype] !> specifies the datatype of matrix D. !> @param[in] !> row_stride_d [rocblas_int] !> specifies the row stride of D. !> @param[in] !> col_stride_d [rocblas_int] !> specifies the column stride of D. !> @param[in] !> compute_type !> [rocblas_datatype] !> specifies the datatype of computation. !> @param[in] !> algo [rocblas_gemm_algo] !> enumerant specifying the algorithm type. !> @param[in] !> solution_index !> [int32_t] !> reserved for future use. !> @param[in] !> flags [uint32_t] !> optional gemm flags. !> interface rocblas_gemm_ext2 function rocblas_gemm_ext2_(handle,m,n,k,alpha,a,a_type,row_stride_a,col_stride_a,b,b_type,row_stride_b,col_stride_b,beta,c,c_type,row_stride_c,col_stride_c,d,d_type,row_stride_d,col_stride_d,compute_type,algo,solution_index,flags) bind(c, name="rocblas_gemm_ext2") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_gemm_ext2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr),value :: a integer(kind(rocblas_datatype_f16_r)),value :: a_type integer(c_int64_t),value :: row_stride_a integer(c_int64_t),value :: col_stride_a type(c_ptr),value :: b integer(kind(rocblas_datatype_f16_r)),value :: b_type integer(c_int64_t),value :: row_stride_b integer(c_int64_t),value :: col_stride_b type(c_ptr),value :: beta type(c_ptr),value :: c integer(kind(rocblas_datatype_f16_r)),value :: c_type integer(c_int64_t),value :: row_stride_c integer(c_int64_t),value :: col_stride_c type(c_ptr),value :: d integer(kind(rocblas_datatype_f16_r)),value :: d_type integer(c_int64_t),value :: row_stride_d integer(c_int64_t),value :: col_stride_d integer(kind(rocblas_datatype_f16_r)),value :: compute_type integer(kind(rocblas_gemm_algo_standard)),value :: algo integer(c_int32_t),value :: solution_index integer(c_int),value :: flags end function end interface !> BLAS EX API !> !> \details !> trsm_ex solves !> !> op(A)*X = alpha*B or X*op(A) = alpha*B, !> !> where alpha is a scalar, X and B are m by n matrices, !> A is triangular matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> The matrix X is overwritten on B. !> !> This function gives the user the ability to reuse the invA matrix between runs. !> If invA == NULL, rocblas_trsm_ex will automatically calculate invA on every run. !> !> Setting up invA: !> The accepted invA matrix consists of the packed 128x128 inverses of the diagonal blocks of !> matrix A, followed by any smaller diagonal block that remains. !> To set up invA it is recommended that rocblas_trtri_batched be used with matrix A as the input. !> !> Device memory of size 128 x k should be allocated for invA ahead of time, where k is m when !> rocblas_side_left and is n when rocblas_side_right. The actual number of elements in invA !> should be passed as invA_size. !> !> To begin, rocblas_trtri_batched must be called on the full 128x128 sized diagonal blocks of !> matrix A. Below are the restricted parameters: !> - n = 128 !> - ldinvA = 128 !> - stride_invA = 128x128 !> - batch_count = k 128, !> !> Then any remaining block may be added: !> - n = k % 128 !> - invA = invA + stride_invA * previous_batch_count !> - ldinvA = 128 !> - batch_count = 1 !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: op(A)*X = alpha*B. !> rocblas_side_right: X*op(A) = alpha*B. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: A is an upper triangular matrix. !> rocblas_fill_lower: A is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> transB: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: A is assumed to be unit triangular. !> rocblas_diagonal_non_unit: A is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of B. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of B. n >= 0. !> !> @param[in] !> alpha [void *] !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced, and B need not be set before !> entry. !> !> @param[in] !> A [void *] !> device pointer storing matrix A. !> of dimension ( lda, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side = rocblas_side_left, lda >= max( 1, m ), !> if side = rocblas_side_right, lda >= max( 1, n ). !> !> @param[in, out] !> B [void *] !> device pointer storing matrix B. !> B is of dimension ( ldb, n ). !> Before entry, the leading m by n part of the array B must !> contain the right-hand side matrix B, and on exit is !> overwritten by the solution matrix X. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ). !> !> @param[in] !> invA [void *] !> device pointer storing the inverse diagonal blocks of A. !> invA is of dimension ( ld_invA, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right. !> ld_invA must be equal to 128. !> !> @param[in] !> invA_size [rocblas_int] !> invA_size specifies the number of elements of device memory in invA. !> !> @param[in] !> compute_type [rocblas_datatype] !> specifies the datatype of computation !> interface rocblas_trsm_ex function rocblas_trsm_ex_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,invA,invA_size,compute_type) bind(c, name="rocblas_trsm_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_trsm_ex_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: invA integer(c_int),value :: invA_size integer(kind(rocblas_datatype_f16_r)),value :: compute_type end function end interface !> BLAS EX API !> !> \details !> trsm_batched_ex solves !> !> op(A_i)*X_i = alpha*B_i or X_i*op(A_i) = alpha*B_i, !> !> for i = 1, ..., batch_count; and where alpha is a scalar, X and B are arrays of m by n matrices, !> A is an array of triangular matrix and each op(A_i) is one of !> !> op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H. !> !> Each matrix X_i is overwritten on B_i. !> !> This function gives the user the ability to reuse the invA matrix between runs. !> If invA == NULL, rocblas_trsm_batched_ex will automatically calculate each invA_i on every run. !> !> Setting up invA: !> Each accepted invA_i matrix consists of the packed 128x128 inverses of the diagonal blocks of !> matrix A_i, followed by any smaller diagonal block that remains. !> To set up each invA_i it is recommended that rocblas_trtri_batched be used with matrix A_i as the input. !> invA is an array of pointers of batch_count length holding each invA_i. !> !> Device memory of size 128 x k should be allocated for each invA_i ahead of time, where k is m when !> rocblas_side_left and is n when rocblas_side_right. The actual number of elements in each invA_i !> should be passed as invA_size. !> !> To begin, rocblas_trtri_batched must be called on the full 128x128 sized diagonal blocks of each !> matrix A_i. Below are the restricted parameters: !> - n = 128 !> - ldinvA = 128 !> - stride_invA = 128x128 !> - batch_count = k 128, !> !> Then any remaining block may be added: !> - n = k % 128 !> - invA = invA + stride_invA * previous_batch_count !> - ldinvA = 128 !> - batch_count = 1 !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: op(A)*X = alpha*B. !> rocblas_side_right: X*op(A) = alpha*B. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper triangular matrix. !> rocblas_fill_lower: each A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> transB: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of each B_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of each B_i. n >= 0. !> !> @param[in] !> alpha [void *] !> device pointer or host pointer alpha specifying the scalar alpha. When alpha is !> &zero then A is not referenced, and B need not be set before !> entry. !> !> @param[in] !> A [void *] !> device array of device pointers storing each matrix A_i. !> each A_i is of dimension ( lda, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of each A_i. !> if side = rocblas_side_left, lda >= max( 1, m ), !> if side = rocblas_side_right, lda >= max( 1, n ). !> !> @param[in, out] !> B [void *] !> device array of device pointers storing each matrix B_i. !> each B_i is of dimension ( ldb, n ). !> Before entry, the leading m by n part of the array B_i must !> contain the right-hand side matrix B_i, and on exit is !> overwritten by the solution matrix X_i !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). !> !> @param[in] !> batch_count [rocblas_int] !> specifies how many batches. !> !> @param[in] !> invA [void *] !> device array of device pointers storing the inverse diagonal blocks of each A_i. !> each invA_i is of dimension ( ld_invA, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right. !> ld_invA must be equal to 128. !> !> @param[in] !> invA_size [rocblas_int] !> invA_size specifies the number of elements of device memory in each invA_i. !> !> @param[in] !> compute_type [rocblas_datatype] !> specifies the datatype of computation !> interface rocblas_trsm_batched_ex function rocblas_trsm_batched_ex_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count,invA,invA_size,compute_type) bind(c, name="rocblas_trsm_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_trsm_batched_ex_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count type(c_ptr),value :: invA integer(c_int),value :: invA_size integer(kind(rocblas_datatype_f16_r)),value :: compute_type end function end interface !> BLAS EX API !> !> \details !> trsm_strided_batched_ex solves !> !> op(A_i)*X_i = alpha*B_i or X_i*op(A_i) = alpha*B_i, !> !> for i = 1, ..., batch_count; and where alpha is a scalar, X and B are strided batched m by n matrices, !> A is a strided batched triangular matrix and op(A_i) is one of !> !> op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H. !> !> Each matrix X_i is overwritten on B_i. !> !> This function gives the user the ability to reuse each invA_i matrix between runs. !> If invA == NULL, rocblas_trsm_batched_ex will automatically calculate each invA_i on every run. !> !> Setting up invA: !> Each accepted invA_i matrix consists of the packed 128x128 inverses of the diagonal blocks of !> matrix A_i, followed by any smaller diagonal block that remains. !> To set up invA_i it is recommended that rocblas_trtri_batched be used with matrix A_i as the input. !> invA is a contiguous piece of memory holding each invA_i. !> !> Device memory of size 128 x k should be allocated for each invA_i ahead of time, where k is m when !> rocblas_side_left and is n when rocblas_side_right. The actual number of elements in each invA_i !> should be passed as invA_size. !> !> To begin, rocblas_trtri_batched must be called on the full 128x128 sized diagonal blocks of each !> matrix A_i. Below are the restricted parameters: !> - n = 128 !> - ldinvA = 128 !> - stride_invA = 128x128 !> - batch_count = k 128, !> !> Then any remaining block may be added: !> - n = k % 128 !> - invA = invA + stride_invA * previous_batch_count !> - ldinvA = 128 !> - batch_count = 1 !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> !> @param[in] !> side [rocblas_side] !> rocblas_side_left: op(A)*X = alpha*B. !> rocblas_side_right: X*op(A) = alpha*B. !> !> @param[in] !> uplo [rocblas_fill] !> rocblas_fill_upper: each A_i is an upper triangular matrix. !> rocblas_fill_lower: each A_i is a lower triangular matrix. !> !> @param[in] !> transA [rocblas_operation] !> transB: op(A) = A. !> rocblas_operation_transpose: op(A) = A^T. !> rocblas_operation_conjugate_transpose: op(A) = A^H. !> !> @param[in] !> diag [rocblas_diagonal] !> rocblas_diagonal_unit: each A_i is assumed to be unit triangular. !> rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. !> !> @param[in] !> m [rocblas_int] !> m specifies the number of rows of each B_i. m >= 0. !> !> @param[in] !> n [rocblas_int] !> n specifies the number of columns of each B_i. n >= 0. !> !> @param[in] !> alpha [void *] !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced, and B need not be set before !> entry. !> !> @param[in] !> A [void *] !> device pointer storing matrix A. !> of dimension ( lda, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [rocblas_int] !> lda specifies the first dimension of A. !> if side = rocblas_side_left, lda >= max( 1, m ), !> if side = rocblas_side_right, lda >= max( 1, n ). !> !> @param[in] !> stride_A [rocblas_stride] !> The stride between each A matrix. !> !> @param[in, out] !> B [void *] !> device pointer pointing to first matrix B_i. !> each B_i is of dimension ( ldb, n ). !> Before entry, the leading m by n part of each array B_i must !> contain the right-hand side of matrix B_i, and on exit is !> overwritten by the solution matrix X_i. !> !> @param[in] !> ldb [rocblas_int] !> ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). !> !> @param[in] !> stride_B [rocblas_stride] !> The stride between each B_i matrix. !> !> @param[in] !> batch_count [rocblas_int] !> specifies how many batches. !> !> @param[in] !> invA [void *] !> device pointer storing the inverse diagonal blocks of each A_i. !> invA points to the first invA_1. !> each invA_i is of dimension ( ld_invA, k ), where k is m !> when rocblas_side_left and !> is n when rocblas_side_right. !> ld_invA must be equal to 128. !> !> @param[in] !> invA_size [rocblas_int] !> invA_size specifies the number of elements of device memory in each invA_i. !> !> @param[in] !> stride_invA [rocblas_stride] !> The stride between each invA matrix. !> !> @param[in] !> compute_type [rocblas_datatype] !> specifies the datatype of computation !> interface rocblas_trsm_strided_batched_ex function rocblas_trsm_strided_batched_ex_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,batch_count,invA,invA_size,stride_invA,compute_type) bind(c, name="rocblas_trsm_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_trsm_strided_batched_ex_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: transA integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B integer(c_int),value :: batch_count type(c_ptr),value :: invA integer(c_int),value :: invA_size integer(c_int64_t),value :: stride_invA integer(kind(rocblas_datatype_f16_r)),value :: compute_type end function end interface !> \brief BLAS EX API !> !> \details !> axpy_ex computes ant alpha multiplied by vector x, plus vector y !> !> y := alpha * x + y !> !> Currently supported datatypes are as follows: !> !> ------------------------------------------------- !> | alpha_type | x_type | y_type | execution_type | !> |------------|--------|--------|----------------| !> | f16_r | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f16_r | f32_r | !> | f32_r | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> ------------------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x and y. !> @param[in] !> alpha device pointer or host pointer to specify the scalar alpha. !> @param[in] !> alpha_type [rocblas_datatype] !> specifies the datatype of alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_axpy_ex function rocblas_axpy_ex_(handle,n,alpha,alpha_type,x,x_type,incx,y,y_type,incy,execution_type) bind(c, name="rocblas_axpy_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_axpy_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(rocblas_datatype_f16_r)),value :: alpha_type type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> axpy_batched_ex computes ant alpha multiplied by vector x, plus vector y over !> a set of batched vectors. !> !> y := alpha * x + y !> !> Currently supported datatypes are as follows: !> !> ------------------------------------------------- !> | alpha_type | x_type | y_type | execution_type | !> |------------|--------|--------|----------------| !> | f16_r | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f16_r | f32_r | !> | f32_r | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> ------------------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[in] !> alpha device pointer or host pointer to specify the scalar alpha. !> @param[in] !> alpha_type [rocblas_datatype] !> specifies the datatype of alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_axpy_batched_ex function rocblas_axpy_batched_ex_(handle,n,alpha,alpha_type,x,x_type,incx,y,y_type,incy,batch_count,execution_type) bind(c, name="rocblas_axpy_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_axpy_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(rocblas_datatype_f16_r)),value :: alpha_type type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> axpy_strided_batched_ex computes ant alpha multiplied by vector x, plus vector y over !> a set of strided batched vectors. !> !> y := alpha * x + y !> !> Currently supported datatypes are as follows: !> !> ------------------------------------------------- !> | alpha_type | x_type | y_type | execution_type | !> |------------|--------|--------|----------------| !> | f16_r | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f16_r | f32_r | !> | f32_r | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> ------------------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[in] !> alpha device pointer or host pointer to specify the scalar alpha. !> @param[in] !> alpha_type [rocblas_datatype] !> specifies the datatype of alpha. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) to the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size, for a typical !> case this means stridex >= n * incx. !> @param[inout] !> y device pointer to the first vector y_1. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [rocblas_stride] !> stride from the start of one vector (y_i) to the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size, for a typical !> case this means stridey >= n * incy. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_axpy_strided_batched_ex function rocblas_axpy_strided_batched_ex_(handle,n,alpha,alpha_type,x,x_type,incx,stridex,y,y_type,incy,stridey,batch_count,execution_type) bind(c, name="rocblas_axpy_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_axpy_strided_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(rocblas_datatype_f16_r)),value :: alpha_type type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> dot_ex performs the dot product of vectors x and y !> !> result = x * y; !> !> dotc_ex performs the dot product of the conjugate of complex vector x and complex vector y !> !> result = conjugate (x) * y; !> !> Currently supported datatypes are as follows: !> !> -------------------------------------------------- !> | x_type | y_type | result_type | execution_type | !> |--------|--------|-------------|----------------| !> | f16_r | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f16_r | f32_r | !> | bf16_r | bf16_r | bf16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> -------------------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x and y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of y. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the dot product. !> return is 0.0 if n <= 0. !> @param[in] !> result_type [rocblas_datatype] !> specifies the datatype of the result. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_dot_ex function rocblas_dot_ex_(handle,n,x,x_type,incx,y,y_type,incy,myResult,result_type,execution_type) bind(c, name="rocblas_dot_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dot_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy type(c_ptr),value :: myResult integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface interface rocblas_dotc_ex function rocblas_dotc_ex_(handle,n,x,x_type,incx,y,y_type,incy,myResult,result_type,execution_type) bind(c, name="rocblas_dotc_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dotc_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy type(c_ptr),value :: myResult integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> dot_batched_ex performs a batch of dot products of vectors x and y !> !> result_i = x_i * y_i; !> !> dotc_batched_ex performs a batch of dot products of the conjugate of complex vector x and complex vector y !> !> result_i = conjugate (x_i) * y_i; !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors, for i = 1, ..., batch_count !> !> Currently supported datatypes are as follows: !> !> -------------------------------------------------- !> | x_type | y_type | result_type | execution_type | !> |--------|--------|-------------|----------------| !> | f16_r | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f16_r | f32_r | !> | bf16_r | bf16_r | bf16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> -------------------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[inout] !> result !> device array or host array of batch_count size to store the dot products of each batch. !> return 0.0 for each element if n <= 0. !> @param[in] !> result_type [rocblas_datatype] !> specifies the datatype of the result. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_dot_batched_ex function rocblas_dot_batched_ex_(handle,n,x,x_type,incx,y,y_type,incy,batch_count,myResult,result_type,execution_type) bind(c, name="rocblas_dot_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dot_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface interface rocblas_dotc_batched_ex function rocblas_dotc_batched_ex_(handle,n,x,x_type,incx,y,y_type,incy,batch_count,myResult,result_type,execution_type) bind(c, name="rocblas_dotc_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dotc_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> dot_strided_batched_ex performs a batch of dot products of vectors x and y !> !> result_i = x_i * y_i; !> !> dotc_strided_batched_ex performs a batch of dot products of the conjugate of complex vector x and complex vector y !> !> result_i = conjugate (x_i) * y_i; !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors, for i = 1, ..., batch_count !> !> Currently supported datatypes are as follows: !> !> -------------------------------------------------- !> | x_type | y_type | result_type | execution_type | !> |--------|--------|-------------|----------------| !> | f16_r | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f16_r | f32_r | !> | bf16_r | bf16_r | bf16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> -------------------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in each x_i and y_i. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> stride from the start of one vector (y_i) and the next one (y_i+1) !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[inout] !> result !> device array or host array of batch_count size to store the dot products of each batch. !> return 0.0 for each element if n <= 0. !> @param[in] !> result_type [rocblas_datatype] !> specifies the datatype of the result. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_dot_strided_batched_ex function rocblas_dot_strided_batched_ex_(handle,n,x,x_type,incx,stride_x,y,y_type,incy,stride_y,batch_count,myResult,result_type,execution_type) bind(c, name="rocblas_dot_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dot_strided_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface interface rocblas_dotc_strided_batched_ex function rocblas_dotc_strided_batched_ex_(handle,n,x,x_type,incx,stride_x,y,y_type,incy,stride_y,batch_count,myResult,result_type,execution_type) bind(c, name="rocblas_dotc_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dotc_strided_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int64_t),value :: stride_y integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS_EX API !> !> \details !> nrm2_ex computes the euclidean norm of a real or complex vector !> !> result := sqrt( x'*x ) for real vectors !> result := sqrt( x**H*x ) for complex vectors !> !> Currently supported datatypes are as follows: !> !> ------------------------------------- !> | x_type | result | execution_type | !> |---------|--------|----------------| !> | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | !> | f32_c | f32_r | f32_r | !> | f64_c | f64_r | f64_r | !> ------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of the vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the nrm2 product. !> return is 0.0 if n, incx<=0. !> @param[in] !> result_type [rocblas_datatype] !> specifies the datatype of the result. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. interface rocblas_nrm2_ex function rocblas_nrm2_ex_(handle,n,x,x_type,incx,results,result_type,execution_type) bind(c, name="rocblas_nrm2_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_nrm2_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: results integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS_EX API !> !> \details !> nrm2_batched_ex computes the euclidean norm over a batch of real or complex vectors !> !> result := sqrt( x_i'*x_i ) for real vectors x, for i = 1, ..., batch_count !> result := sqrt( x_i**H*x_i ) for complex vectors x, for i = 1, ..., batch_count !> !> Currently supported datatypes are as follows: !> !> ------------------------------------- !> | x_type | result | execution_type | !> |---------|--------|----------------| !> | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | !> | f32_c | f32_r | f32_r | !> | f64_c | f64_r | f64_r | !> ------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[out] !> results !> device pointer or host pointer to array of batch_count size for nrm2 results. !> return is 0.0 for each element if n <= 0, incx<=0. !> @param[in] !> result_type [rocblas_datatype] !> specifies the datatype of the result. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_nrm2_batched_ex function rocblas_nrm2_batched_ex_(handle,n,x,x_type,incx,batch_count,results,result_type,execution_type) bind(c, name="rocblas_nrm2_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_nrm2_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: results integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS_EX API !> !> \details !> nrm2_strided_batched_ex computes the euclidean norm over a batch of real or complex vectors !> !> := sqrt( x_i'*x_i ) for real vectors x, for i = 1, ..., batch_count !> := sqrt( x_i**H*x_i ) for complex vectors, for i = 1, ..., batch_count !> !> Currently supported datatypes are as follows: !> !> ------------------------------------- !> | x_type | result | execution_type | !> |---------|--------|----------------| !> | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | !> | f32_c | f32_r | f32_r | !> | f64_c | f64_r | f64_r | !> ------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch !> @param[out] !> results !> device pointer or host pointer to array for storing contiguous batch_count results. !> return is 0.0 for each element if n <= 0, incx<=0. !> @param[in] !> result_type [rocblas_datatype] !> specifies the datatype of the result. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_nrm2_strided_batched_ex function rocblas_nrm2_strided_batched_ex_(handle,n,x,x_type,incx,stride_x,batch_count,results,result_type,execution_type) bind(c, name="rocblas_nrm2_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_nrm2_strided_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int64_t),value :: stride_x integer(c_int),value :: batch_count type(c_ptr),value :: results integer(kind(rocblas_datatype_f16_r)),value :: result_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> rot_ex applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to vectors x and y. !> Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> !> In the case where cs_type is real: !> x := c * x + s * y !> y := c * y - s * x !> !> In the case where cs_type is complex, the imaginary part of c is ignored: !> x := real(c) * x + s * y !> y := real(c) * y - conj(s) * x !> !> Currently supported datatypes are as follows: !> !> ------------------------------------------------ !> | x_type | y_type | cs_type | execution_type | !> |---------|---------|---------|----------------| !> | bf16_r | bf16_r | bf16_r | f32_r | !> | f16_r | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f32_c | f32_c | f32_r | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> | f64_c | f64_c | f64_r | f64_c | !> ------------------------------------------------ !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of vector y. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of y. !> @param[in] !> c device pointer or host pointer storing scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer storing scalar sine component of the rotation matrix. !> @param[in] !> cs_type [rocblas_datatype] !> specifies the datatype of c and s. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_rot_ex function rocblas_rot_ex_(handle,n,x,x_type,incx,y,y_type,incy,c,s,cs_type,execution_type) bind(c, name="rocblas_rot_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_rot_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(kind(rocblas_datatype_f16_r)),value :: cs_type integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> rot_batched_ex applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to batched vectors x_i and y_i, for i = 1, ..., batch_count. !> Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> !> In the case where cs_type is real: !> x := c * x + s * y !> y := c * y - s * x !> !> In the case where cs_type is complex, the imaginary part of c is ignored: !> x := real(c) * x + s * y !> y := real(c) * y - conj(s) * x !> !> Currently supported datatypes are as follows: !> !> ------------------------------------------------ !> | x_type | y_type | cs_type | execution_type | !> |---------|---------|---------|----------------| !> | bf16_r | bf16_r | bf16_r | f32_r | !> | f16_r | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f32_c | f32_c | f32_r | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> | f64_c | f64_c | f64_r | f64_c | !> ------------------------------------------------ !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i and y_i vectors. !> @param[inout] !> x device array of deivce pointers storing each vector x_i. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of each y_i. !> @param[in] !> c device pointer or host pointer to scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer to scalar sine component of the rotation matrix. !> @param[in] !> cs_type [rocblas_datatype] !> specifies the datatype of c and s. !> @param[in] !> batch_count [rocblas_int] !> the number of x and y arrays, i.e. the number of batches. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_rot_batched_ex function rocblas_rot_batched_ex_(handle,n,x,x_type,incx,y,y_type,incy,c,s,cs_type,batch_count,execution_type) bind(c, name="rocblas_rot_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_rot_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(kind(rocblas_datatype_f16_r)),value :: cs_type integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS Level 1 API !> !> \details !> rot_strided_batched_ex applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to strided batched vectors x_i and y_i, for i = 1, ..., batch_count. !> Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode. !> !> In the case where cs_type is real: !> x := c * x + s * y !> y := c * y - s * x !> !> In the case where cs_type is complex, the imaginary part of c is ignored: !> x := real(c) * x + s * y !> y := real(c) * y - conj(s) * x !> !> Currently supported datatypes are as follows: !> !> ------------------------------------------------ !> | x_type | y_type | cs_type | execution_type | !> |---------|---------|---------|----------------| !> | bf16_r | bf16_r | bf16_r | f32_r | !> | f16_r | f16_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | f32_c | !> | f32_c | f32_c | f32_r | f32_c | !> | f64_c | f64_c | f64_c | f64_c | !> | f64_c | f64_c | f64_r | f64_c | !> ------------------------------------------------ !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> number of elements in each x_i and y_i vectors. !> @param[inout] !> x device pointer to the first vector x_1. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment between elements of each x_i. !> @param[in] !> stride_x [rocblas_stride] !> specifies the increment from the beginning of x_i to the beginning of x_(i+1) !> @param[inout] !> y device pointer to the first vector y_1. !> @param[in] !> y_type [rocblas_datatype] !> specifies the datatype of each vector y_i. !> @param[in] !> incy [rocblas_int] !> specifies the increment between elements of each y_i. !> @param[in] !> stride_y [rocblas_stride] !> specifies the increment from the beginning of y_i to the beginning of y_(i+1) !> @param[in] !> c device pointer or host pointer to scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer to scalar sine component of the rotation matrix. !> @param[in] !> cs_type [rocblas_datatype] !> specifies the datatype of c and s. !> @param[in] !> batch_count [rocblas_int] !> the number of x and y arrays, i.e. the number of batches. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_rot_strided_batched_ex function rocblas_rot_strided_batched_ex_(handle,n,x,x_type,incx,stride_x,y,y_type,incy,stride_y,c,s,cs_type,batch_count,execution_type) bind(c, name="rocblas_rot_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_rot_strided_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: y integer(kind(rocblas_datatype_f16_r)),value :: y_type integer(c_int),value :: incy integer(c_int64_t),value :: stride_y type(c_ptr),value :: c type(c_ptr),value :: s integer(kind(rocblas_datatype_f16_r)),value :: cs_type integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> scal_ex scales each element of vector x with scalar alpha. !> !> x := alpha * x !> !> Currently supported datatypes are as follows: !> !> ---------------------------------------- !> | alpha_type | x_type | execution_type | !> |------------|--------|----------------| !> | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f32_r | !> | f32_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | !> | f32_r | f32_c | f32_c | !> | f64_r | f64_c | f64_c | !> ---------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> alpha device pointer or host pointer for the scalar alpha. !> @param[in] !> alpha_type [rocblas_datatype] !> specifies the datatype of alpha. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of vector x. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of x. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_scal_ex function rocblas_scal_ex_(handle,n,alpha,alpha_type,x,x_type,incx,execution_type) bind(c, name="rocblas_scal_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scal_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(rocblas_datatype_f16_r)),value :: alpha_type type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> scal_batched_ex scales each element of each vector x_i with scalar alpha. !> !> x_i := alpha * x_i !> !> Currently supported datatypes are as follows: !> !> ---------------------------------------- !> | alpha_type | x_type | execution_type | !> |------------|--------|----------------| !> | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f32_r | !> | f32_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | !> | f32_r | f32_c | f32_c | !> | f64_r | f64_c | f64_c | !> ---------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> alpha device pointer or host pointer for the scalar alpha. !> @param[in] !> alpha_type [rocblas_datatype] !> specifies the datatype of alpha. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_scal_batched_ex function rocblas_scal_batched_ex_(handle,n,alpha,alpha_type,x,x_type,incx,batch_count,execution_type) bind(c, name="rocblas_scal_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scal_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(rocblas_datatype_f16_r)),value :: alpha_type type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief BLAS EX API !> !> \details !> scal_strided_batched_ex scales each element of vector x with scalar alpha over a set !> of strided batched vectors. !> !> x := alpha * x !> !> Currently supported datatypes are as follows: !> !> ---------------------------------------- !> | alpha_type | x_type | execution_type | !> |------------|--------|----------------| !> | f16_r | f16_r | f16_r | !> | f16_r | f16_r | f32_r | !> | f32_r | f16_r | f32_r | !> | f32_r | f32_r | f32_r | !> | f64_r | f64_r | f64_r | !> | f32_c | f32_c | f32_c | !> | f64_c | f64_c | f64_c | !> | f32_r | f32_c | f32_c | !> | f64_r | f64_c | f64_c | !> ---------------------------------------- !> !> @param[in] !> handle [rocblas_handle] !> handle to the rocblas library context queue. !> @param[in] !> n [rocblas_int] !> the number of elements in x. !> @param[in] !> alpha device pointer or host pointer for the scalar alpha. !> @param[in] !> alpha_type [rocblas_datatype] !> specifies the datatype of alpha. !> @param[inout] !> x device pointer to the first vector x_1. !> @param[in] !> x_type [rocblas_datatype] !> specifies the datatype of each vector x_i. !> @param[in] !> incx [rocblas_int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [rocblas_stride] !> stride from the start of one vector (x_i) to the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size, for a typical !> case this means stridex >= n * incx. !> @param[in] !> batch_count [rocblas_int] !> number of instances in the batch. !> @param[in] !> execution_type [rocblas_datatype] !> specifies the datatype of computation. !> interface rocblas_scal_strided_batched_ex function rocblas_scal_strided_batched_ex_(handle,n,alpha,alpha_type,x,x_type,incx,stridex,batch_count,execution_type) bind(c, name="rocblas_scal_strided_batched_ex") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scal_strided_batched_ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(rocblas_datatype_f16_r)),value :: alpha_type type(c_ptr),value :: x integer(kind(rocblas_datatype_f16_r)),value :: x_type integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count integer(kind(rocblas_datatype_f16_r)),value :: execution_type end function end interface !> \brief loads char* buf with the rocblas library version. size_t len !> is the maximum length of char* buf. !> \details !> !> @param[in, out] !> buf pointer to buffer for version string !> !> @param[in] !> len length of buf !> interface rocblas_get_version_string function rocblas_get_version_string_(buf,len) bind(c, name="rocblas_get_version_string") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_version_string_ type(c_ptr),value :: buf integer(c_size_t),value :: len end function end interface !> \brief Queries the minimum buffer size for a successful call to !> \ref rocblas_get_version_string !> \details !> !> @param[out] !> len pointer to size_t for storing the length !> interface rocblas_get_version_string_size function rocblas_get_version_string_size_(len) bind(c, name="rocblas_get_version_string_size") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_version_string_size_ type(c_ptr),value :: len end function end interface !> \brief !> \details !> Indicates that subsequent rocBLAS kernel calls should collect the optimal device memory size in bytes for their given kernel arguments, !> and keep track of the maximum. !> Each kernel call can reuse temporary device memory on the same stream, so the maximum is collected. !> Returns rocblas_status_size_query_mismatch if another size query is already in progress; returns rocblas_status_success otherwise. !> @param[in] !> handle rocblas handle interface rocblas_start_device_memory_size_query function rocblas_start_device_memory_size_query_(handle) bind(c, name="rocblas_start_device_memory_size_query") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_start_device_memory_size_query_ type(c_ptr),value :: handle end function end interface !> \brief !> \details !> Stops collecting optimal device memory size information !> Returns rocblas_status_size_query_mismatch if a collection is not underway; rocblas_status_invalid_handle if handle is nullptr; !> rocblas_status_invalid_pointer if size is nullptr; rocblas_status_success otherwise !> @param[in] !> handle rocblas handle !> @param[out] !> size maximum of the optimal sizes collected interface rocblas_stop_device_memory_size_query function rocblas_stop_device_memory_size_query_(handle,mySize) bind(c, name="rocblas_stop_device_memory_size_query") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stop_device_memory_size_query_ type(c_ptr),value :: handle integer(c_size_t) :: mySize end function end interface interface rocblas_device_malloc_ptr function rocblas_device_malloc_ptr_(ptr,res) bind(c, name="rocblas_device_malloc_ptr") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_device_malloc_ptr_ type(c_ptr),value :: ptr type(c_ptr) :: res end function end interface interface rocblas_device_malloc_get function rocblas_device_malloc_get_(ptr,index,res) bind(c, name="rocblas_device_malloc_get") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_device_malloc_get_ type(c_ptr),value :: ptr integer(c_size_t),value :: index type(c_ptr) :: res end function end interface interface rocblas_device_malloc_free function rocblas_device_malloc_free_(ptr) bind(c, name="rocblas_device_malloc_free") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_device_malloc_free_ type(c_ptr),value :: ptr end function end interface !> \brief !> \details !> Gets the current device memory size for the handle !> Returns rocblas_status_invalid_handle if handle is nullptr; rocblas_status_invalid_pointer if size is nullptr; rocblas_status_success otherwise !> @param[in] !> handle rocblas handle !> @param[out] !> size current device memory size for the handle interface rocblas_get_device_memory_size function rocblas_get_device_memory_size_(handle,mySize) bind(c, name="rocblas_get_device_memory_size") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_device_memory_size_ type(c_ptr),value :: handle integer(c_size_t) :: mySize end function end interface !> \brief !> \details !> Changes the size of allocated device memory at runtime. !> !> Any previously allocated device memory managed by the handle is freed. !> !> If size > 0 sets the device memory size to the specified size (in bytes) !> If size == 0 frees the memory allocated so far, and lets rocBLAS manage device memory in the future, expanding it when necessary !> Returns rocblas_status_invalid_handle if handle is nullptr; rocblas_status_invalid_pointer if size is nullptr; rocblas_status_success otherwise !> @param[in] !> handle rocblas handle !> @param[in] !> size size of allocated device memory interface rocblas_set_device_memory_size function rocblas_set_device_memory_size_(handle,mySize) bind(c, name="rocblas_set_device_memory_size") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_device_memory_size_ type(c_ptr),value :: handle integer(c_size_t),value :: mySize end function end interface !> \brief !> \details !> Sets the device workspace for the handle to use. !> !> Any previously allocated device memory managed by the handle is freed. !> !> Returns rocblas_status_invalid_handle if handle is nullptr; rocblas_status_success otherwise !> @param[in] !> handle rocblas handle !> @param[in] !> addr address of workspace memory !> @param[in] !> size size of workspace memory !> interface rocblas_set_workspace function rocblas_set_workspace_(handle,addr,mySize) bind(c, name="rocblas_set_workspace") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_workspace_ type(c_ptr),value :: handle type(c_ptr),value :: addr integer(c_size_t),value :: mySize end function end interface !> \brief create handle interface rocblas_create_handle function rocblas_create_handle_(handle) bind(c, name="rocblas_create_handle") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_create_handle_ type(c_ptr) :: handle end function end interface !> \brief destroy handle interface rocblas_destroy_handle function rocblas_destroy_handle_(handle) bind(c, name="rocblas_destroy_handle") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_destroy_handle_ type(c_ptr),value :: handle end function end interface !> \brief set stream for handle interface rocblas_set_stream function rocblas_set_stream_(handle,stream) bind(c, name="rocblas_set_stream") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_stream_ type(c_ptr),value :: handle type(c_ptr),value :: stream end function end interface !> \brief get stream [0] from handle interface rocblas_get_stream function rocblas_get_stream_(handle,stream) bind(c, name="rocblas_get_stream") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_stream_ type(c_ptr),value :: handle type(c_ptr) :: stream end function end interface !> \brief set rocblas_pointer_mode interface rocblas_set_pointer_mode function rocblas_set_pointer_mode_(handle,pointer_mode) bind(c, name="rocblas_set_pointer_mode") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_pointer_mode_ type(c_ptr),value :: handle integer(kind(rocblas_pointer_mode_host)),value :: pointer_mode end function end interface !> \brief get rocblas_pointer_mode interface rocblas_get_pointer_mode function rocblas_get_pointer_mode_(handle,pointer_mode) bind(c, name="rocblas_get_pointer_mode") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_pointer_mode_ type(c_ptr),value :: handle type(c_ptr),value :: pointer_mode end function end interface !> \brief set rocblas_atomics_mode interface rocblas_set_atomics_mode function rocblas_set_atomics_mode_(handle,atomics_mode) bind(c, name="rocblas_set_atomics_mode") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_atomics_mode_ type(c_ptr),value :: handle integer(kind(rocblas_atomics_not_allowed)),value :: atomics_mode end function end interface !> \brief get rocblas_atomics_mode interface rocblas_get_atomics_mode function rocblas_get_atomics_mode_(handle,atomics_mode) bind(c, name="rocblas_get_atomics_mode") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_atomics_mode_ type(c_ptr),value :: handle type(c_ptr),value :: atomics_mode end function end interface !> \brief query the preferable supported int8 input layout for gemm !> \details !> Indicates the supported int8 input layout for gemm according to the device. !> If the device supports packed-int8x4 (1) only, output flag is rocblas_gemm_flags_pack_int8x4 !> and users must bitwise-or your flag with rocblas_gemm_flags_pack_int8x4. !> If output flag is rocblas_gemm_flags_none (0), then unpacked int8 is preferable and suggested. !> @param[in] !> handle [rocblas_handle] !> the handle of device !> @param[out] !> flag pointer to rocblas_gemm_flags interface rocblas_query_int8_layout_flag function rocblas_query_int8_layout_flag_(handle,flag) bind(c, name="rocblas_query_int8_layout_flag") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_query_int8_layout_flag_ type(c_ptr),value :: handle type(c_ptr),value :: flag end function end interface !> Function to set start/stop event handlers (for internal use only) interface rocblas_set_start_stop_events function rocblas_set_start_stop_events_(handle,startEvent,stopEvent) bind(c, name="rocblas_set_start_stop_events") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_start_stop_events_ type(c_ptr),value :: handle type(c_ptr),value :: startEvent type(c_ptr),value :: stopEvent end function end interface interface rocblas_set_solution_fitness_query function rocblas_set_solution_fitness_query_(handle,fitness) bind(c, name="rocblas_set_solution_fitness_query") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_solution_fitness_query_ type(c_ptr),value :: handle type(c_ptr),value :: fitness end function end interface !> \brief specifies the performance metric that solution selection uses !> \details !> Determines which performance metric will be used by Tensile when selecting the optimal solution !> for gemm problems. If a valid solution benchmarked for this performance metric does not exist !> for a problem, Tensile will default to a solution benchmarked for overall performance instead. !> @param[in] !> handle [rocblas_handle] !> the handle of device !> @param[in] !> metric [rocblas_performance_metric] !> the performance metric to be used interface rocblas_set_performance_metric function rocblas_set_performance_metric_(handle,metric) bind(c, name="rocblas_set_performance_metric") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_set_performance_metric_ type(c_ptr),value :: handle integer(kind(rocblas_default_performance_metric)),value :: metric end function end interface !> \brief returns the performance metric being used for solution selection !> \details !> Returns the performance metric used by Tensile to select the optimal solution for gemm problems. !> @param[in] !> handle [rocblas_handle] !> the handle of device !> @param[out] !> metric [rocblas_performance_metric*] !> pointer to where the metric will be stored interface rocblas_get_performance_metric function rocblas_get_performance_metric_(handle,metric) bind(c, name="rocblas_get_performance_metric") use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_get_performance_metric_ type(c_ptr),value :: handle type(c_ptr),value :: metric end function end interface #ifdef USE_FPOINTER_INTERFACES contains function rocblas_cscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_cscal_rank_0 = rocblas_cscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_cscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_cscal_rank_1 = rocblas_cscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_zscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_zscal_rank_0 = rocblas_zscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_zscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_zscal_rank_1 = rocblas_zscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_csscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_csscal_rank_0 = rocblas_csscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_csscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_csscal_rank_1 = rocblas_csscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_zdscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_zdscal_rank_0 = rocblas_zdscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_zdscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_zdscal_rank_1 = rocblas_zdscal_(handle,n,alpha,c_loc(x),incx) end function function rocblas_sscal_batched_full_rank(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_sscal_batched_full_rank = rocblas_sscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_sscal_batched_rank_0(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_sscal_batched_rank_0 = rocblas_sscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_sscal_batched_rank_1(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_sscal_batched_rank_1 = rocblas_sscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_dscal_batched_full_rank(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dscal_batched_full_rank = rocblas_dscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_dscal_batched_rank_0(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dscal_batched_rank_0 = rocblas_dscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_dscal_batched_rank_1(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dscal_batched_rank_1 = rocblas_dscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_cscal_batched_full_rank(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_cscal_batched_full_rank = rocblas_cscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_cscal_batched_rank_0(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_cscal_batched_rank_0 = rocblas_cscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_cscal_batched_rank_1(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_cscal_batched_rank_1 = rocblas_cscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_zscal_batched_full_rank(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_zscal_batched_full_rank = rocblas_zscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_zscal_batched_rank_0(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_zscal_batched_rank_0 = rocblas_zscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_zscal_batched_rank_1(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_zscal_batched_rank_1 = rocblas_zscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_csscal_batched_full_rank(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_csscal_batched_full_rank = rocblas_csscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_csscal_batched_rank_0(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_csscal_batched_rank_0 = rocblas_csscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_csscal_batched_rank_1(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_csscal_batched_rank_1 = rocblas_csscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_zdscal_batched_full_rank(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_zdscal_batched_full_rank = rocblas_zdscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_zdscal_batched_rank_0(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_zdscal_batched_rank_0 = rocblas_zdscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_zdscal_batched_rank_1(handle,n,alpha,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_zdscal_batched_rank_1 = rocblas_zdscal_batched_(handle,n,alpha,c_loc(x),incx,batch_count) end function function rocblas_sscal_strided_batched_rank_0(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_sscal_strided_batched_rank_0 = rocblas_sscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_sscal_strided_batched_rank_1(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sscal_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_sscal_strided_batched_rank_1 = rocblas_sscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dscal_strided_batched_rank_0(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dscal_strided_batched_rank_0 = rocblas_dscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dscal_strided_batched_rank_1(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dscal_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dscal_strided_batched_rank_1 = rocblas_dscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_cscal_strided_batched_rank_0(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_cscal_strided_batched_rank_0 = rocblas_cscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_cscal_strided_batched_rank_1(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cscal_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_cscal_strided_batched_rank_1 = rocblas_cscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_zscal_strided_batched_rank_0(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_zscal_strided_batched_rank_0 = rocblas_zscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_zscal_strided_batched_rank_1(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zscal_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_zscal_strided_batched_rank_1 = rocblas_zscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_csscal_strided_batched_rank_0(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_csscal_strided_batched_rank_0 = rocblas_csscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_csscal_strided_batched_rank_1(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csscal_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_csscal_strided_batched_rank_1 = rocblas_csscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_zdscal_strided_batched_rank_0(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_zdscal_strided_batched_rank_0 = rocblas_zdscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_zdscal_strided_batched_rank_1(handle,n,alpha,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdscal_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_zdscal_strided_batched_rank_1 = rocblas_zdscal_strided_batched_(handle,n,alpha,c_loc(x),incx,stride_x,batch_count) end function function rocblas_scopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy ! rocblas_scopy_rank_0 = rocblas_scopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_scopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_scopy_rank_1 = rocblas_scopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_dcopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy ! rocblas_dcopy_rank_0 = rocblas_dcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_dcopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dcopy_rank_1 = rocblas_dcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_ccopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_ccopy_rank_0 = rocblas_ccopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_ccopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_ccopy_rank_1 = rocblas_ccopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_zcopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zcopy_rank_0 = rocblas_zcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_zcopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zcopy_rank_1 = rocblas_zcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_scopy_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_scopy_batched_full_rank = rocblas_scopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_scopy_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_scopy_batched_rank_0 = rocblas_scopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_scopy_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_scopy_batched_rank_1 = rocblas_scopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_dcopy_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dcopy_batched_full_rank = rocblas_dcopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_dcopy_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dcopy_batched_rank_0 = rocblas_dcopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_dcopy_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dcopy_batched_rank_1 = rocblas_dcopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_ccopy_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ccopy_batched_full_rank = rocblas_ccopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_ccopy_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ccopy_batched_rank_0 = rocblas_ccopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_ccopy_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ccopy_batched_rank_1 = rocblas_ccopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zcopy_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zcopy_batched_full_rank = rocblas_zcopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zcopy_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zcopy_batched_rank_0 = rocblas_zcopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zcopy_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zcopy_batched_rank_1 = rocblas_zcopy_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_scopy_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_scopy_strided_batched_rank_0 = rocblas_scopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_scopy_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scopy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_scopy_strided_batched_rank_1 = rocblas_scopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_dcopy_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dcopy_strided_batched_rank_0 = rocblas_dcopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_dcopy_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dcopy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dcopy_strided_batched_rank_1 = rocblas_dcopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_ccopy_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ccopy_strided_batched_rank_0 = rocblas_ccopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_ccopy_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ccopy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ccopy_strided_batched_rank_1 = rocblas_ccopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_zcopy_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zcopy_strided_batched_rank_0 = rocblas_zcopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_zcopy_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zcopy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zcopy_strided_batched_rank_1 = rocblas_zcopy_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_sdot_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_sdot_rank_0 = rocblas_sdot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_sdot_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_sdot_rank_1 = rocblas_sdot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_ddot_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_ddot_rank_0 = rocblas_ddot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_ddot_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_ddot_rank_1 = rocblas_ddot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_cdotu_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_cdotu_rank_0 = rocblas_cdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_cdotu_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_cdotu_rank_1 = rocblas_cdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_zdotu_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_zdotu_rank_0 = rocblas_zdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_zdotu_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_zdotu_rank_1 = rocblas_zdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_cdotc_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_cdotc_rank_0 = rocblas_cdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_cdotc_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_cdotc_rank_1 = rocblas_cdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_zdotc_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_zdotc_rank_0 = rocblas_zdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_zdotc_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! rocblas_zdotc_rank_1 = rocblas_zdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function rocblas_sdot_batched_full_rank(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_sdot_batched_full_rank = rocblas_sdot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_sdot_batched_rank_0(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_sdot_batched_rank_0 = rocblas_sdot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_sdot_batched_rank_1(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_sdot_batched_rank_1 = rocblas_sdot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_ddot_batched_full_rank(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_ddot_batched_full_rank = rocblas_ddot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_ddot_batched_rank_0(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_ddot_batched_rank_0 = rocblas_ddot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_ddot_batched_rank_1(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_ddot_batched_rank_1 = rocblas_ddot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_cdotu_batched_full_rank(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotu_batched_full_rank = rocblas_cdotu_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_cdotu_batched_rank_0(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotu_batched_rank_0 = rocblas_cdotu_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_cdotu_batched_rank_1(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotu_batched_rank_1 = rocblas_cdotu_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_zdotu_batched_full_rank(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotu_batched_full_rank = rocblas_zdotu_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_zdotu_batched_rank_0(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotu_batched_rank_0 = rocblas_zdotu_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_zdotu_batched_rank_1(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotu_batched_rank_1 = rocblas_zdotu_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_cdotc_batched_full_rank(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotc_batched_full_rank = rocblas_cdotc_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_cdotc_batched_rank_0(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotc_batched_rank_0 = rocblas_cdotc_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_cdotc_batched_rank_1(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotc_batched_rank_1 = rocblas_cdotc_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_zdotc_batched_full_rank(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotc_batched_full_rank = rocblas_zdotc_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_zdotc_batched_rank_0(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotc_batched_rank_0 = rocblas_zdotc_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_zdotc_batched_rank_1(handle,n,x,incx,y,incy,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotc_batched_rank_1 = rocblas_zdotc_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count,myResult) end function function rocblas_sdot_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_sdot_strided_batched_rank_0 = rocblas_sdot_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_sdot_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_sdot_strided_batched_rank_1 = rocblas_sdot_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_ddot_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_ddot_strided_batched_rank_0 = rocblas_ddot_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_ddot_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_ddot_strided_batched_rank_1 = rocblas_ddot_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_cdotu_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotu_strided_batched_rank_0 = rocblas_cdotu_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_cdotu_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotu_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotu_strided_batched_rank_1 = rocblas_cdotu_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_zdotu_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotu_strided_batched_rank_0 = rocblas_zdotu_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_zdotu_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotu_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotu_strided_batched_rank_1 = rocblas_zdotu_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_cdotc_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotc_strided_batched_rank_0 = rocblas_cdotc_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_cdotc_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdotc_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_cdotc_strided_batched_rank_1 = rocblas_cdotc_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_zdotc_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotc_strided_batched_rank_0 = rocblas_zdotc_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_zdotc_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdotc_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_zdotc_strided_batched_rank_1 = rocblas_zdotc_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count,myResult) end function function rocblas_cswap_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_cswap_rank_0 = rocblas_cswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_cswap_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_cswap_rank_1 = rocblas_cswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_zswap_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zswap_rank_0 = rocblas_zswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_zswap_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zswap_rank_1 = rocblas_zswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function rocblas_sswap_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sswap_batched_full_rank = rocblas_sswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_sswap_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sswap_batched_rank_0 = rocblas_sswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_sswap_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sswap_batched_rank_1 = rocblas_sswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_dswap_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dswap_batched_full_rank = rocblas_dswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_dswap_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dswap_batched_rank_0 = rocblas_dswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_dswap_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dswap_batched_rank_1 = rocblas_dswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_cswap_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cswap_batched_full_rank = rocblas_cswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_cswap_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cswap_batched_rank_0 = rocblas_cswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_cswap_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cswap_batched_rank_1 = rocblas_cswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zswap_batched_full_rank(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zswap_batched_full_rank = rocblas_zswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zswap_batched_rank_0(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zswap_batched_rank_0 = rocblas_zswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zswap_batched_rank_1(handle,n,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zswap_batched_rank_1 = rocblas_zswap_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_sswap_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sswap_strided_batched_rank_0 = rocblas_sswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_sswap_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sswap_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sswap_strided_batched_rank_1 = rocblas_sswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_dswap_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dswap_strided_batched_rank_0 = rocblas_dswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_dswap_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dswap_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dswap_strided_batched_rank_1 = rocblas_dswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_cswap_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_cswap_strided_batched_rank_0 = rocblas_cswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_cswap_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cswap_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_cswap_strided_batched_rank_1 = rocblas_cswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_zswap_strided_batched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zswap_strided_batched_rank_0 = rocblas_zswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_zswap_strided_batched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zswap_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zswap_strided_batched_rank_1 = rocblas_zswap_strided_batched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_saxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy ! rocblas_saxpy_rank_0 = rocblas_saxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_saxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_saxpy_rank_1 = rocblas_saxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_daxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy ! rocblas_daxpy_rank_0 = rocblas_daxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_daxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_daxpy_rank_1 = rocblas_daxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_caxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_caxpy_rank_0 = rocblas_caxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_caxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_caxpy_rank_1 = rocblas_caxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_zaxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zaxpy_rank_0 = rocblas_zaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_zaxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zaxpy_rank_1 = rocblas_zaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function rocblas_saxpy_batched_full_rank(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_saxpy_batched_full_rank = rocblas_saxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_saxpy_batched_rank_0(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_saxpy_batched_rank_0 = rocblas_saxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_saxpy_batched_rank_1(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_saxpy_batched_rank_1 = rocblas_saxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_daxpy_batched_full_rank(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_daxpy_batched_full_rank = rocblas_daxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_daxpy_batched_rank_0(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_daxpy_batched_rank_0 = rocblas_daxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_daxpy_batched_rank_1(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_daxpy_batched_rank_1 = rocblas_daxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_caxpy_batched_full_rank(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_caxpy_batched_full_rank = rocblas_caxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_caxpy_batched_rank_0(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_caxpy_batched_rank_0 = rocblas_caxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_caxpy_batched_rank_1(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_caxpy_batched_rank_1 = rocblas_caxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zaxpy_batched_full_rank(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zaxpy_batched_full_rank = rocblas_zaxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zaxpy_batched_rank_0(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zaxpy_batched_rank_0 = rocblas_zaxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_zaxpy_batched_rank_1(handle,n,alpha,x,incx,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zaxpy_batched_rank_1 = rocblas_zaxpy_batched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batch_count) end function function rocblas_saxpy_strided_batched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_saxpy_strided_batched_rank_0 = rocblas_saxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_saxpy_strided_batched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_saxpy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_saxpy_strided_batched_rank_1 = rocblas_saxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_daxpy_strided_batched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_daxpy_strided_batched_rank_0 = rocblas_daxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_daxpy_strided_batched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_daxpy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_daxpy_strided_batched_rank_1 = rocblas_daxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_caxpy_strided_batched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_caxpy_strided_batched_rank_0 = rocblas_caxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_caxpy_strided_batched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_caxpy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_caxpy_strided_batched_rank_1 = rocblas_caxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_zaxpy_strided_batched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zaxpy_strided_batched_rank_0 = rocblas_zaxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_zaxpy_strided_batched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zaxpy_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zaxpy_strided_batched_rank_1 = rocblas_zaxpy_strided_batched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batch_count) end function function rocblas_scasum_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_scasum_rank_0 = rocblas_scasum_(handle,n,c_loc(x),incx,myResult) end function function rocblas_scasum_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_scasum_rank_1 = rocblas_scasum_(handle,n,c_loc(x),incx,myResult) end function function rocblas_dzasum_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_dzasum_rank_0 = rocblas_dzasum_(handle,n,c_loc(x),incx,myResult) end function function rocblas_dzasum_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_dzasum_rank_1 = rocblas_dzasum_(handle,n,c_loc(x),incx,myResult) end function function rocblas_sasum_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_sasum_batched_full_rank = rocblas_sasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_sasum_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_sasum_batched_rank_0 = rocblas_sasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_sasum_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_sasum_batched_rank_1 = rocblas_sasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dasum_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dasum_batched_full_rank = rocblas_dasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dasum_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dasum_batched_rank_0 = rocblas_dasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dasum_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dasum_batched_rank_1 = rocblas_dasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_scasum_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scasum_batched_full_rank = rocblas_scasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_scasum_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scasum_batched_rank_0 = rocblas_scasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_scasum_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scasum_batched_rank_1 = rocblas_scasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dzasum_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dzasum_batched_full_rank = rocblas_dzasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dzasum_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dzasum_batched_rank_0 = rocblas_dzasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dzasum_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dzasum_batched_rank_1 = rocblas_dzasum_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_sasum_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_sasum_strided_batched_rank_0 = rocblas_sasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_sasum_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sasum_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_sasum_strided_batched_rank_1 = rocblas_sasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dasum_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dasum_strided_batched_rank_0 = rocblas_dasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dasum_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dasum_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dasum_strided_batched_rank_1 = rocblas_dasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_scasum_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scasum_strided_batched_rank_0 = rocblas_scasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_scasum_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scasum_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scasum_strided_batched_rank_1 = rocblas_scasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dzasum_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dzasum_strided_batched_rank_0 = rocblas_dzasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dzasum_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dzasum_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dzasum_strided_batched_rank_1 = rocblas_dzasum_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_scnrm2_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_scnrm2_rank_0 = rocblas_scnrm2_(handle,n,c_loc(x),incx,myResult) end function function rocblas_scnrm2_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_scnrm2_rank_1 = rocblas_scnrm2_(handle,n,c_loc(x),incx,myResult) end function function rocblas_dznrm2_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_dznrm2_rank_0 = rocblas_dznrm2_(handle,n,c_loc(x),incx,myResult) end function function rocblas_dznrm2_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_dznrm2_rank_1 = rocblas_dznrm2_(handle,n,c_loc(x),incx,myResult) end function function rocblas_snrm2_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_snrm2_batched_full_rank = rocblas_snrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_snrm2_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_snrm2_batched_rank_0 = rocblas_snrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_snrm2_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_snrm2_batched_rank_1 = rocblas_snrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dnrm2_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dnrm2_batched_full_rank = rocblas_dnrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dnrm2_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dnrm2_batched_rank_0 = rocblas_dnrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dnrm2_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dnrm2_batched_rank_1 = rocblas_dnrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_scnrm2_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scnrm2_batched_full_rank = rocblas_scnrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_scnrm2_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scnrm2_batched_rank_0 = rocblas_scnrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_scnrm2_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scnrm2_batched_rank_1 = rocblas_scnrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dznrm2_batched_full_rank(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dznrm2_batched_full_rank = rocblas_dznrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dznrm2_batched_rank_0(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dznrm2_batched_rank_0 = rocblas_dznrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_dznrm2_batched_rank_1(handle,n,x,incx,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dznrm2_batched_rank_1 = rocblas_dznrm2_batched_(handle,n,c_loc(x),incx,batch_count,results) end function function rocblas_snrm2_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_snrm2_strided_batched_rank_0 = rocblas_snrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_snrm2_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_snrm2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_snrm2_strided_batched_rank_1 = rocblas_snrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dnrm2_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dnrm2_strided_batched_rank_0 = rocblas_dnrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dnrm2_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dnrm2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dnrm2_strided_batched_rank_1 = rocblas_dnrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_scnrm2_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scnrm2_strided_batched_rank_0 = rocblas_scnrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_scnrm2_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_scnrm2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_scnrm2_strided_batched_rank_1 = rocblas_scnrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dznrm2_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dznrm2_strided_batched_rank_0 = rocblas_dznrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_dznrm2_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,results) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dznrm2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: results ! rocblas_dznrm2_strided_batched_rank_1 = rocblas_dznrm2_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,results) end function function rocblas_icamax_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_icamax_rank_0 = rocblas_icamax_(handle,n,c_loc(x),incx,myResult) end function function rocblas_icamax_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_icamax_rank_1 = rocblas_icamax_(handle,n,c_loc(x),incx,myResult) end function function rocblas_izamax_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_izamax_rank_0 = rocblas_izamax_(handle,n,c_loc(x),incx,myResult) end function function rocblas_izamax_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_izamax_rank_1 = rocblas_izamax_(handle,n,c_loc(x),incx,myResult) end function function rocblas_isamax_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamax_batched_full_rank = rocblas_isamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_isamax_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamax_batched_rank_0 = rocblas_isamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_isamax_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamax_batched_rank_1 = rocblas_isamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_idamax_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamax_batched_full_rank = rocblas_idamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_idamax_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamax_batched_rank_0 = rocblas_idamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_idamax_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamax_batched_rank_1 = rocblas_idamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_icamax_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamax_batched_full_rank = rocblas_icamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_icamax_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamax_batched_rank_0 = rocblas_icamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_icamax_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamax_batched_rank_1 = rocblas_icamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_izamax_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamax_batched_full_rank = rocblas_izamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_izamax_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamax_batched_rank_0 = rocblas_izamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_izamax_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamax_batched_rank_1 = rocblas_izamax_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_isamax_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamax_strided_batched_rank_0 = rocblas_isamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_isamax_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamax_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamax_strided_batched_rank_1 = rocblas_isamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_idamax_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamax_strided_batched_rank_0 = rocblas_idamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_idamax_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamax_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamax_strided_batched_rank_1 = rocblas_idamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_icamax_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamax_strided_batched_rank_0 = rocblas_icamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_icamax_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamax_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamax_strided_batched_rank_1 = rocblas_icamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_izamax_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamax_strided_batched_rank_0 = rocblas_izamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_izamax_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamax_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamax_strided_batched_rank_1 = rocblas_izamax_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_icamin_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_icamin_rank_0 = rocblas_icamin_(handle,n,c_loc(x),incx,myResult) end function function rocblas_icamin_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_icamin_rank_1 = rocblas_icamin_(handle,n,c_loc(x),incx,myResult) end function function rocblas_izamin_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_izamin_rank_0 = rocblas_izamin_(handle,n,c_loc(x),incx,myResult) end function function rocblas_izamin_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! rocblas_izamin_rank_1 = rocblas_izamin_(handle,n,c_loc(x),incx,myResult) end function function rocblas_isamin_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamin_batched_full_rank = rocblas_isamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_isamin_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamin_batched_rank_0 = rocblas_isamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_isamin_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamin_batched_rank_1 = rocblas_isamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_idamin_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamin_batched_full_rank = rocblas_idamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_idamin_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamin_batched_rank_0 = rocblas_idamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_idamin_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamin_batched_rank_1 = rocblas_idamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_icamin_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamin_batched_full_rank = rocblas_icamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_icamin_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamin_batched_rank_0 = rocblas_icamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_icamin_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamin_batched_rank_1 = rocblas_icamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_izamin_batched_full_rank(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamin_batched_full_rank = rocblas_izamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_izamin_batched_rank_0(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamin_batched_rank_0 = rocblas_izamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_izamin_batched_rank_1(handle,n,x,incx,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamin_batched_rank_1 = rocblas_izamin_batched_(handle,n,c_loc(x),incx,batch_count,myResult) end function function rocblas_isamin_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamin_strided_batched_rank_0 = rocblas_isamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_isamin_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_isamin_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_isamin_strided_batched_rank_1 = rocblas_isamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_idamin_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamin_strided_batched_rank_0 = rocblas_idamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_idamin_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_idamin_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_idamin_strided_batched_rank_1 = rocblas_idamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_icamin_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamin_strided_batched_rank_0 = rocblas_icamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_icamin_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_icamin_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_icamin_strided_batched_rank_1 = rocblas_icamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_izamin_strided_batched_rank_0(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamin_strided_batched_rank_0 = rocblas_izamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_izamin_strided_batched_rank_1(handle,n,x,incx,stridex,batch_count,myResult) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_izamin_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count type(c_ptr) :: myResult ! rocblas_izamin_strided_batched_rank_1 = rocblas_izamin_strided_batched_(handle,n,c_loc(x),incx,stridex,batch_count,myResult) end function function rocblas_srot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_srot_rank_0 = rocblas_srot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_srot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_srot_rank_1 = rocblas_srot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_drot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_drot_rank_0 = rocblas_drot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_drot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_drot_rank_1 = rocblas_drot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_crot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_crot_rank_0 = rocblas_crot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_crot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_crot_rank_1 = rocblas_crot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_csrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_csrot_rank_0 = rocblas_csrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_csrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_csrot_rank_1 = rocblas_csrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_zrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_zrot_rank_0 = rocblas_zrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_zrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_zrot_rank_1 = rocblas_zrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_zdrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_zdrot_rank_0 = rocblas_zdrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_zdrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! rocblas_zdrot_rank_1 = rocblas_zdrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function rocblas_srot_batched_full_rank(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_srot_batched_full_rank = rocblas_srot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_srot_batched_rank_0(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_srot_batched_rank_0 = rocblas_srot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_srot_batched_rank_1(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_srot_batched_rank_1 = rocblas_srot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_drot_batched_full_rank(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_drot_batched_full_rank = rocblas_drot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_drot_batched_rank_0(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_drot_batched_rank_0 = rocblas_drot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_drot_batched_rank_1(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_drot_batched_rank_1 = rocblas_drot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_crot_batched_full_rank(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_crot_batched_full_rank = rocblas_crot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_crot_batched_rank_0(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_crot_batched_rank_0 = rocblas_crot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_crot_batched_rank_1(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_crot_batched_rank_1 = rocblas_crot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_csrot_batched_full_rank(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_csrot_batched_full_rank = rocblas_csrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_csrot_batched_rank_0(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_csrot_batched_rank_0 = rocblas_csrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_csrot_batched_rank_1(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_csrot_batched_rank_1 = rocblas_csrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_zrot_batched_full_rank(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zrot_batched_full_rank = rocblas_zrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_zrot_batched_rank_0(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zrot_batched_rank_0 = rocblas_zrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_zrot_batched_rank_1(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zrot_batched_rank_1 = rocblas_zrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_zdrot_batched_full_rank(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zdrot_batched_full_rank = rocblas_zdrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_zdrot_batched_rank_0(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zdrot_batched_rank_0 = rocblas_zdrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_zdrot_batched_rank_1(handle,n,x,incx,y,incy,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zdrot_batched_rank_1 = rocblas_zdrot_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batch_count) end function function rocblas_srot_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_srot_strided_batched_rank_0 = rocblas_srot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_srot_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_srot_strided_batched_rank_1 = rocblas_srot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_drot_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_drot_strided_batched_rank_0 = rocblas_drot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_drot_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_drot_strided_batched_rank_1 = rocblas_drot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_crot_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_crot_strided_batched_rank_0 = rocblas_crot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_crot_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_crot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_crot_strided_batched_rank_1 = rocblas_crot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_csrot_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_csrot_strided_batched_rank_0 = rocblas_csrot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_csrot_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csrot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_csrot_strided_batched_rank_1 = rocblas_csrot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_zrot_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zrot_strided_batched_rank_0 = rocblas_zrot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_zrot_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zrot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zrot_strided_batched_rank_1 = rocblas_zrot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_zdrot_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zdrot_strided_batched_rank_0 = rocblas_zdrot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_zdrot_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,c,s,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdrot_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batch_count ! rocblas_zdrot_strided_batched_rank_1 = rocblas_zdrot_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c,s,batch_count) end function function rocblas_srotm_rank_0(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: param ! rocblas_srotm_rank_0 = rocblas_srotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function rocblas_srotm_rank_1(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param ! rocblas_srotm_rank_1 = rocblas_srotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function rocblas_drotm_rank_0(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: param ! rocblas_drotm_rank_0 = rocblas_drotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function rocblas_drotm_rank_1(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param ! rocblas_drotm_rank_1 = rocblas_drotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function rocblas_srotm_batched_full_rank(handle,n,x,incx,y,incy,param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batch_count ! rocblas_srotm_batched_full_rank = rocblas_srotm_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batch_count) end function function rocblas_srotm_batched_rank_0(handle,n,x,incx,y,incy,param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batch_count ! rocblas_srotm_batched_rank_0 = rocblas_srotm_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batch_count) end function function rocblas_srotm_batched_rank_1(handle,n,x,incx,y,incy,param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batch_count ! rocblas_srotm_batched_rank_1 = rocblas_srotm_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batch_count) end function function rocblas_drotm_batched_full_rank(handle,n,x,incx,y,incy,param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batch_count ! rocblas_drotm_batched_full_rank = rocblas_drotm_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batch_count) end function function rocblas_drotm_batched_rank_0(handle,n,x,incx,y,incy,param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batch_count ! rocblas_drotm_batched_rank_0 = rocblas_drotm_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batch_count) end function function rocblas_drotm_batched_rank_1(handle,n,x,incx,y,incy,param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batch_count ! rocblas_drotm_batched_rank_1 = rocblas_drotm_batched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batch_count) end function function rocblas_srotm_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,param,stride_param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: param integer(c_int64_t) :: stride_param integer(c_int) :: batch_count ! rocblas_srotm_strided_batched_rank_0 = rocblas_srotm_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,param,stride_param,batch_count) end function function rocblas_srotm_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,param,stride_param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_srotm_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: param integer(c_int64_t) :: stride_param integer(c_int) :: batch_count ! rocblas_srotm_strided_batched_rank_1 = rocblas_srotm_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,param,stride_param,batch_count) end function function rocblas_drotm_strided_batched_rank_0(handle,n,x,incx,stride_x,y,incy,stride_y,param,stride_param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: param integer(c_int64_t) :: stride_param integer(c_int) :: batch_count ! rocblas_drotm_strided_batched_rank_0 = rocblas_drotm_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,param,stride_param,batch_count) end function function rocblas_drotm_strided_batched_rank_1(handle,n,x,incx,stride_x,y,incy,stride_y,param,stride_param,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_drotm_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: param integer(c_int64_t) :: stride_param integer(c_int) :: batch_count ! rocblas_drotm_strided_batched_rank_1 = rocblas_drotm_strided_batched_(handle,n,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,param,stride_param,batch_count) end function function rocblas_sgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_sgbmv_full_rank = rocblas_sgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! rocblas_sgbmv_rank_0 = rocblas_sgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_sgbmv_rank_1 = rocblas_sgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dgbmv_full_rank = rocblas_dgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! rocblas_dgbmv_rank_0 = rocblas_dgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dgbmv_rank_1 = rocblas_dgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_cgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_cgbmv_full_rank = rocblas_cgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_cgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_cgbmv_rank_0 = rocblas_cgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_cgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_cgbmv_rank_1 = rocblas_cgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zgbmv_full_rank = rocblas_zgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zgbmv_rank_0 = rocblas_zgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zgbmv_rank_1 = rocblas_zgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sgbmv_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sgbmv_batched_full_rank = rocblas_sgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sgbmv_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sgbmv_batched_rank_0 = rocblas_sgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sgbmv_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sgbmv_batched_rank_1 = rocblas_sgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dgbmv_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dgbmv_batched_full_rank = rocblas_dgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dgbmv_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dgbmv_batched_rank_0 = rocblas_dgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dgbmv_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dgbmv_batched_rank_1 = rocblas_dgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_cgbmv_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cgbmv_batched_full_rank = rocblas_cgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_cgbmv_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cgbmv_batched_rank_0 = rocblas_cgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_cgbmv_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cgbmv_batched_rank_1 = rocblas_cgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zgbmv_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zgbmv_batched_full_rank = rocblas_zgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zgbmv_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zgbmv_batched_rank_0 = rocblas_zgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zgbmv_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zgbmv_batched_rank_1 = rocblas_zgbmv_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sgbmv_strided_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_sgbmv_strided_batched_full_rank = rocblas_sgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_sgbmv_strided_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_sgbmv_strided_batched_rank_0 = rocblas_sgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_sgbmv_strided_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_sgbmv_strided_batched_rank_1 = rocblas_sgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_dgbmv_strided_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_dgbmv_strided_batched_full_rank = rocblas_dgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_dgbmv_strided_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_dgbmv_strided_batched_rank_0 = rocblas_dgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_dgbmv_strided_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_dgbmv_strided_batched_rank_1 = rocblas_dgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_cgbmv_strided_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_cgbmv_strided_batched_full_rank = rocblas_cgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_cgbmv_strided_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_cgbmv_strided_batched_rank_0 = rocblas_cgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_cgbmv_strided_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_cgbmv_strided_batched_rank_1 = rocblas_cgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zgbmv_strided_batched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zgbmv_strided_batched_full_rank = rocblas_zgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zgbmv_strided_batched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zgbmv_strided_batched_rank_0 = rocblas_zgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zgbmv_strided_batched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zgbmv_strided_batched_rank_1 = rocblas_zgbmv_strided_batched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_sgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_sgemv_full_rank = rocblas_sgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! rocblas_sgemv_rank_0 = rocblas_sgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_sgemv_rank_1 = rocblas_sgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dgemv_full_rank = rocblas_dgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! rocblas_dgemv_rank_0 = rocblas_dgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dgemv_rank_1 = rocblas_dgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_cgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_cgemv_full_rank = rocblas_cgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_cgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_cgemv_rank_0 = rocblas_cgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_cgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_cgemv_rank_1 = rocblas_cgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zgemv_full_rank = rocblas_zgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zgemv_rank_0 = rocblas_zgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zgemv_rank_1 = rocblas_zgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sgemv_batched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sgemv_batched_full_rank = rocblas_sgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sgemv_batched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sgemv_batched_rank_0 = rocblas_sgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sgemv_batched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sgemv_batched_rank_1 = rocblas_sgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dgemv_batched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dgemv_batched_full_rank = rocblas_dgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dgemv_batched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dgemv_batched_rank_0 = rocblas_dgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dgemv_batched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dgemv_batched_rank_1 = rocblas_dgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_cgemv_batched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cgemv_batched_full_rank = rocblas_cgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_cgemv_batched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cgemv_batched_rank_0 = rocblas_cgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_cgemv_batched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_cgemv_batched_rank_1 = rocblas_cgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zgemv_batched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zgemv_batched_full_rank = rocblas_zgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zgemv_batched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zgemv_batched_rank_0 = rocblas_zgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zgemv_batched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zgemv_batched_rank_1 = rocblas_zgemv_batched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sgemv_strided_batched_full_rank(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sgemv_strided_batched_full_rank = rocblas_sgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_sgemv_strided_batched_rank_0(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sgemv_strided_batched_rank_0 = rocblas_sgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_sgemv_strided_batched_rank_1(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sgemv_strided_batched_rank_1 = rocblas_sgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dgemv_strided_batched_full_rank(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dgemv_strided_batched_full_rank = rocblas_dgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dgemv_strided_batched_rank_0(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dgemv_strided_batched_rank_0 = rocblas_dgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dgemv_strided_batched_rank_1(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dgemv_strided_batched_rank_1 = rocblas_dgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_cgemv_strided_batched_full_rank(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_cgemv_strided_batched_full_rank = rocblas_cgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_cgemv_strided_batched_rank_0(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_cgemv_strided_batched_rank_0 = rocblas_cgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_cgemv_strided_batched_rank_1(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_cgemv_strided_batched_rank_1 = rocblas_cgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_zgemv_strided_batched_full_rank(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zgemv_strided_batched_full_rank = rocblas_zgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_zgemv_strided_batched_rank_0(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zgemv_strided_batched_rank_0 = rocblas_zgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_zgemv_strided_batched_rank_1(handle,transA,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zgemv_strided_batched_rank_1 = rocblas_zgemv_strided_batched_(handle,transA,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_chbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_chbmv_full_rank = rocblas_chbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_chbmv_rank_0 = rocblas_chbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_chbmv_rank_1 = rocblas_chbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zhbmv_full_rank = rocblas_zhbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zhbmv_rank_0 = rocblas_zhbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zhbmv_rank_1 = rocblas_zhbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chbmv_batched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chbmv_batched_full_rank = rocblas_chbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chbmv_batched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chbmv_batched_rank_0 = rocblas_chbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chbmv_batched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chbmv_batched_rank_1 = rocblas_chbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhbmv_batched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhbmv_batched_full_rank = rocblas_zhbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhbmv_batched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhbmv_batched_rank_0 = rocblas_zhbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhbmv_batched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhbmv_batched_rank_1 = rocblas_zhbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chbmv_strided_batched_full_rank(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chbmv_strided_batched_full_rank = rocblas_chbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chbmv_strided_batched_rank_0(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chbmv_strided_batched_rank_0 = rocblas_chbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chbmv_strided_batched_rank_1(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chbmv_strided_batched_rank_1 = rocblas_chbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhbmv_strided_batched_full_rank(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhbmv_strided_batched_full_rank = rocblas_zhbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhbmv_strided_batched_rank_0(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhbmv_strided_batched_rank_0 = rocblas_zhbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhbmv_strided_batched_rank_1(handle,uplo,n,k,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhbmv_strided_batched_rank_1 = rocblas_zhbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chemv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_chemv_full_rank = rocblas_chemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chemv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_chemv_rank_0 = rocblas_chemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chemv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_chemv_rank_1 = rocblas_chemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhemv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zhemv_full_rank = rocblas_zhemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhemv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zhemv_rank_0 = rocblas_zhemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhemv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zhemv_rank_1 = rocblas_zhemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chemv_batched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chemv_batched_full_rank = rocblas_chemv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chemv_batched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chemv_batched_rank_0 = rocblas_chemv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chemv_batched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chemv_batched_rank_1 = rocblas_chemv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhemv_batched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhemv_batched_full_rank = rocblas_zhemv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhemv_batched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhemv_batched_rank_0 = rocblas_zhemv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhemv_batched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhemv_batched_rank_1 = rocblas_zhemv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chemv_strided_batched_full_rank(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chemv_strided_batched_full_rank = rocblas_chemv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chemv_strided_batched_rank_0(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chemv_strided_batched_rank_0 = rocblas_chemv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chemv_strided_batched_rank_1(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chemv_strided_batched_rank_1 = rocblas_chemv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhemv_strided_batched_full_rank(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhemv_strided_batched_full_rank = rocblas_zhemv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhemv_strided_batched_rank_0(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhemv_strided_batched_rank_0 = rocblas_zhemv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhemv_strided_batched_rank_1(handle,uplo,n,alpha,A,lda,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhemv_strided_batched_rank_1 = rocblas_zhemv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_cher_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_cher_full_rank = rocblas_cher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_cher_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda ! rocblas_cher_rank_0 = rocblas_cher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_cher_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_cher_rank_1 = rocblas_cher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_zher_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_zher_full_rank = rocblas_zher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_zher_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda ! rocblas_zher_rank_0 = rocblas_zher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_zher_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_zher_rank_1 = rocblas_zher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_cher_batched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cher_batched_full_rank = rocblas_cher_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_cher_batched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cher_batched_rank_0 = rocblas_cher_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_cher_batched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cher_batched_rank_1 = rocblas_cher_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_zher_batched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zher_batched_full_rank = rocblas_zher_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_zher_batched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zher_batched_rank_0 = rocblas_zher_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_zher_batched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zher_batched_rank_1 = rocblas_zher_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_cher_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cher_strided_batched_full_rank = rocblas_cher_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(A),lda,stride_A,batch_count) end function function rocblas_cher_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cher_strided_batched_rank_0 = rocblas_cher_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(A),lda,stride_A,batch_count) end function function rocblas_cher_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cher_strided_batched_rank_1 = rocblas_cher_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(A),lda,stride_A,batch_count) end function function rocblas_zher_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zher_strided_batched_full_rank = rocblas_zher_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(A),lda,stride_A,batch_count) end function function rocblas_zher_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zher_strided_batched_rank_0 = rocblas_zher_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(A),lda,stride_A,batch_count) end function function rocblas_zher_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zher_strided_batched_rank_1 = rocblas_zher_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(A),lda,stride_A,batch_count) end function function rocblas_cher2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_cher2_full_rank = rocblas_cher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cher2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! rocblas_cher2_rank_0 = rocblas_cher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cher2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_cher2_rank_1 = rocblas_cher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zher2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_zher2_full_rank = rocblas_zher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zher2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! rocblas_zher2_rank_0 = rocblas_zher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zher2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_zher2_rank_1 = rocblas_zher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cher2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cher2_batched_full_rank = rocblas_cher2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cher2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cher2_batched_rank_0 = rocblas_cher2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cher2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cher2_batched_rank_1 = rocblas_cher2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zher2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zher2_batched_full_rank = rocblas_zher2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zher2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zher2_batched_rank_0 = rocblas_zher2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zher2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zher2_batched_rank_1 = rocblas_zher2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cher2_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cher2_strided_batched_full_rank = rocblas_cher2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c_loc(A),lda,stride_A,batch_count) end function function rocblas_cher2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cher2_strided_batched_rank_0 = rocblas_cher2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c_loc(A),lda,stride_A,batch_count) end function function rocblas_cher2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cher2_strided_batched_rank_1 = rocblas_cher2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c_loc(A),lda,stride_A,batch_count) end function function rocblas_zher2_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zher2_strided_batched_full_rank = rocblas_zher2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c_loc(A),lda,stride_A,batch_count) end function function rocblas_zher2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zher2_strided_batched_rank_0 = rocblas_zher2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c_loc(A),lda,stride_A,batch_count) end function function rocblas_zher2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,A,lda,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zher2_strided_batched_rank_1 = rocblas_zher2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,c_loc(A),lda,stride_A,batch_count) end function function rocblas_chpmv_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_chpmv_rank_0 = rocblas_chpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chpmv_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_chpmv_rank_1 = rocblas_chpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhpmv_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zhpmv_rank_0 = rocblas_zhpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zhpmv_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zhpmv_rank_1 = rocblas_zhpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_chpmv_batched_full_rank(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chpmv_batched_full_rank = rocblas_chpmv_batched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chpmv_batched_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chpmv_batched_rank_0 = rocblas_chpmv_batched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chpmv_batched_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_chpmv_batched_rank_1 = rocblas_chpmv_batched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhpmv_batched_full_rank(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhpmv_batched_full_rank = rocblas_zhpmv_batched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhpmv_batched_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhpmv_batched_rank_0 = rocblas_zhpmv_batched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zhpmv_batched_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zhpmv_batched_rank_1 = rocblas_zhpmv_batched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_chpmv_strided_batched_rank_0(handle,uplo,n,alpha,AP,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chpmv_strided_batched_rank_0 = rocblas_chpmv_strided_batched_(handle,uplo,n,alpha,AP,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chpmv_strided_batched_rank_1(handle,uplo,n,alpha,AP,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_chpmv_strided_batched_rank_1 = rocblas_chpmv_strided_batched_(handle,uplo,n,alpha,AP,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhpmv_strided_batched_rank_0(handle,uplo,n,alpha,AP,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhpmv_strided_batched_rank_0 = rocblas_zhpmv_strided_batched_(handle,uplo,n,alpha,AP,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_zhpmv_strided_batched_rank_1(handle,uplo,n,alpha,AP,stride_A,x,incx,stride_x,beta,y,incy,stride_y,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y integer(c_int) :: batch_count ! rocblas_zhpmv_strided_batched_rank_1 = rocblas_zhpmv_strided_batched_(handle,uplo,n,alpha,AP,stride_A,c_loc(x),incx,stride_x,beta,c_loc(y),incy,stride_y,batch_count) end function function rocblas_chpr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_chpr_rank_0 = rocblas_chpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_chpr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_chpr_rank_1 = rocblas_chpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_zhpr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_zhpr_rank_0 = rocblas_zhpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_zhpr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_zhpr_rank_1 = rocblas_zhpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_chpr_batched_full_rank(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_chpr_batched_full_rank = rocblas_chpr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_chpr_batched_rank_0(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_chpr_batched_rank_0 = rocblas_chpr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_chpr_batched_rank_1(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_chpr_batched_rank_1 = rocblas_chpr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_zhpr_batched_full_rank(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zhpr_batched_full_rank = rocblas_zhpr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_zhpr_batched_rank_0(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zhpr_batched_rank_0 = rocblas_zhpr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_zhpr_batched_rank_1(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zhpr_batched_rank_1 = rocblas_zhpr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_chpr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_chpr_strided_batched_rank_0 = rocblas_chpr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_chpr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_chpr_strided_batched_rank_1 = rocblas_chpr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_zhpr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zhpr_strided_batched_rank_0 = rocblas_zhpr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_zhpr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zhpr_strided_batched_rank_1 = rocblas_zhpr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_chpr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_chpr2_rank_0 = rocblas_chpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_chpr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_chpr2_rank_1 = rocblas_chpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_zhpr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_zhpr2_rank_0 = rocblas_zhpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_zhpr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_zhpr2_rank_1 = rocblas_zhpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_chpr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_chpr2_batched_full_rank = rocblas_chpr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_chpr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_chpr2_batched_rank_0 = rocblas_chpr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_chpr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_chpr2_batched_rank_1 = rocblas_chpr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_zhpr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zhpr2_batched_full_rank = rocblas_zhpr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_zhpr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zhpr2_batched_rank_0 = rocblas_zhpr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_zhpr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zhpr2_batched_rank_1 = rocblas_zhpr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_chpr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_chpr2_strided_batched_rank_0 = rocblas_chpr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_chpr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chpr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_chpr2_strided_batched_rank_1 = rocblas_chpr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_zhpr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zhpr2_strided_batched_rank_0 = rocblas_zhpr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_zhpr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhpr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zhpr2_strided_batched_rank_1 = rocblas_zhpr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_strmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_strmv_full_rank = rocblas_strmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_strmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! rocblas_strmv_rank_0 = rocblas_strmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_strmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_strmv_rank_1 = rocblas_strmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtrmv_full_rank = rocblas_dtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! rocblas_dtrmv_rank_0 = rocblas_dtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtrmv_rank_1 = rocblas_dtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctrmv_full_rank = rocblas_ctrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_ctrmv_rank_0 = rocblas_ctrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctrmv_rank_1 = rocblas_ctrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztrmv_full_rank = rocblas_ztrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_ztrmv_rank_0 = rocblas_ztrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztrmv_rank_1 = rocblas_ztrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_strmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_strmv_strided_batched_full_rank = rocblas_strmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_strmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridea real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_strmv_strided_batched_rank_0 = rocblas_strmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_strmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_strmv_strided_batched_rank_1 = rocblas_strmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_dtrmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_dtrmv_strided_batched_full_rank = rocblas_dtrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_dtrmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridea real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_dtrmv_strided_batched_rank_0 = rocblas_dtrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_dtrmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_dtrmv_strided_batched_rank_1 = rocblas_dtrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ctrmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ctrmv_strided_batched_full_rank = rocblas_ctrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ctrmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridea complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ctrmv_strided_batched_rank_0 = rocblas_ctrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ctrmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ctrmv_strided_batched_rank_1 = rocblas_ctrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ztrmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ztrmv_strided_batched_full_rank = rocblas_ztrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ztrmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridea complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ztrmv_strided_batched_rank_0 = rocblas_ztrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ztrmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridea complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ztrmv_strided_batched_rank_1 = rocblas_ztrmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_stpmv_full_rank(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stpmv_full_rank = rocblas_stpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_stpmv_rank_0(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A real(c_float),target :: x integer(c_int) :: incx ! rocblas_stpmv_rank_0 = rocblas_stpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_stpmv_rank_1(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stpmv_rank_1 = rocblas_stpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_dtpmv_full_rank(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtpmv_full_rank = rocblas_dtpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_dtpmv_rank_0(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A real(c_double),target :: x integer(c_int) :: incx ! rocblas_dtpmv_rank_0 = rocblas_dtpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_dtpmv_rank_1(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtpmv_rank_1 = rocblas_dtpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_ctpmv_full_rank(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctpmv_full_rank = rocblas_ctpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_ctpmv_rank_0(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_ctpmv_rank_0 = rocblas_ctpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_ctpmv_rank_1(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctpmv_rank_1 = rocblas_ctpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_ztpmv_full_rank(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztpmv_full_rank = rocblas_ztpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_ztpmv_rank_0(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_ztpmv_rank_0 = rocblas_ztpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_ztpmv_rank_1(handle,uplo,transA,diag,m,A,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztpmv_rank_1 = rocblas_ztpmv_(handle,uplo,transA,diag,m,c_loc(A),c_loc(x),incx) end function function rocblas_stpmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int64_t) :: stridea real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_stpmv_strided_batched_full_rank = rocblas_stpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_stpmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int64_t) :: stridea real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_stpmv_strided_batched_rank_0 = rocblas_stpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_stpmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int64_t) :: stridea real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_stpmv_strided_batched_rank_1 = rocblas_stpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_dtpmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int64_t) :: stridea real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_dtpmv_strided_batched_full_rank = rocblas_dtpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_dtpmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int64_t) :: stridea real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_dtpmv_strided_batched_rank_0 = rocblas_dtpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_dtpmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int64_t) :: stridea real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_dtpmv_strided_batched_rank_1 = rocblas_dtpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ctpmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int64_t) :: stridea complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ctpmv_strided_batched_full_rank = rocblas_ctpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ctpmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int64_t) :: stridea complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ctpmv_strided_batched_rank_0 = rocblas_ctpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ctpmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int64_t) :: stridea complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ctpmv_strided_batched_rank_1 = rocblas_ctpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ztpmv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int64_t) :: stridea complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ztpmv_strided_batched_full_rank = rocblas_ztpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ztpmv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int64_t) :: stridea complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ztpmv_strided_batched_rank_0 = rocblas_ztpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_ztpmv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,stridea,x,incx,stridex,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int64_t) :: stridea complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batch_count ! rocblas_ztpmv_strided_batched_rank_1 = rocblas_ztpmv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),stridea,c_loc(x),incx,stridex,batch_count) end function function rocblas_stbmv_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stbmv_full_rank = rocblas_stbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_stbmv_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! rocblas_stbmv_rank_0 = rocblas_stbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_stbmv_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stbmv_rank_1 = rocblas_stbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtbmv_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtbmv_full_rank = rocblas_dtbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtbmv_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! rocblas_dtbmv_rank_0 = rocblas_dtbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtbmv_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtbmv_rank_1 = rocblas_dtbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctbmv_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctbmv_full_rank = rocblas_ctbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctbmv_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_ctbmv_rank_0 = rocblas_ctbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctbmv_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctbmv_rank_1 = rocblas_ctbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztbmv_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztbmv_full_rank = rocblas_ztbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztbmv_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_ztbmv_rank_0 = rocblas_ztbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztbmv_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztbmv_rank_1 = rocblas_ztbmv_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_stbmv_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stbmv_batched_full_rank = rocblas_stbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_stbmv_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stbmv_batched_rank_0 = rocblas_stbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_stbmv_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stbmv_batched_rank_1 = rocblas_stbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtbmv_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtbmv_batched_full_rank = rocblas_dtbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtbmv_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtbmv_batched_rank_0 = rocblas_dtbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtbmv_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtbmv_batched_rank_1 = rocblas_dtbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctbmv_batched_full_rank(handle,uplo,trans,diag,m,k,A,da,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: da complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctbmv_batched_full_rank = rocblas_ctbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),da,c_loc(x),incx,batch_count) end function function rocblas_ctbmv_batched_rank_0(handle,uplo,trans,diag,m,k,A,da,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: da complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctbmv_batched_rank_0 = rocblas_ctbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),da,c_loc(x),incx,batch_count) end function function rocblas_ctbmv_batched_rank_1(handle,uplo,trans,diag,m,k,A,da,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: da complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctbmv_batched_rank_1 = rocblas_ctbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),da,c_loc(x),incx,batch_count) end function function rocblas_ztbmv_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztbmv_batched_full_rank = rocblas_ztbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztbmv_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztbmv_batched_rank_0 = rocblas_ztbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztbmv_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztbmv_batched_rank_1 = rocblas_ztbmv_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_stbmv_strided_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stbmv_strided_batched_full_rank = rocblas_stbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stbmv_strided_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stbmv_strided_batched_rank_0 = rocblas_stbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stbmv_strided_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stbmv_strided_batched_rank_1 = rocblas_stbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtbmv_strided_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtbmv_strided_batched_full_rank = rocblas_dtbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtbmv_strided_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtbmv_strided_batched_rank_0 = rocblas_dtbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtbmv_strided_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtbmv_strided_batched_rank_1 = rocblas_dtbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctbmv_strided_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctbmv_strided_batched_full_rank = rocblas_ctbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctbmv_strided_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctbmv_strided_batched_rank_0 = rocblas_ctbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctbmv_strided_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctbmv_strided_batched_rank_1 = rocblas_ctbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztbmv_strided_batched_full_rank(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztbmv_strided_batched_full_rank = rocblas_ztbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztbmv_strided_batched_rank_0(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztbmv_strided_batched_rank_0 = rocblas_ztbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztbmv_strided_batched_rank_1(handle,uplo,trans,diag,m,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztbmv_strided_batched_rank_1 = rocblas_ztbmv_strided_batched_(handle,uplo,trans,diag,m,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stbsv_full_rank = rocblas_stbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_stbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! rocblas_stbsv_rank_0 = rocblas_stbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_stbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stbsv_rank_1 = rocblas_stbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtbsv_full_rank = rocblas_dtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! rocblas_dtbsv_rank_0 = rocblas_dtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtbsv_rank_1 = rocblas_dtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctbsv_full_rank = rocblas_ctbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_ctbsv_rank_0 = rocblas_ctbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctbsv_rank_1 = rocblas_ctbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztbsv_full_rank = rocblas_ztbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_ztbsv_rank_0 = rocblas_ztbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztbsv_rank_1 = rocblas_ztbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function rocblas_stbsv_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stbsv_batched_full_rank = rocblas_stbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_stbsv_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stbsv_batched_rank_0 = rocblas_stbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_stbsv_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stbsv_batched_rank_1 = rocblas_stbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtbsv_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtbsv_batched_full_rank = rocblas_dtbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtbsv_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtbsv_batched_rank_0 = rocblas_dtbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtbsv_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtbsv_batched_rank_1 = rocblas_dtbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctbsv_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctbsv_batched_full_rank = rocblas_ctbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctbsv_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctbsv_batched_rank_0 = rocblas_ctbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctbsv_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctbsv_batched_rank_1 = rocblas_ctbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztbsv_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztbsv_batched_full_rank = rocblas_ztbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztbsv_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztbsv_batched_rank_0 = rocblas_ztbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztbsv_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztbsv_batched_rank_1 = rocblas_ztbsv_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_stbsv_strided_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stbsv_strided_batched_full_rank = rocblas_stbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stbsv_strided_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stbsv_strided_batched_rank_0 = rocblas_stbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stbsv_strided_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stbsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stbsv_strided_batched_rank_1 = rocblas_stbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtbsv_strided_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtbsv_strided_batched_full_rank = rocblas_dtbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtbsv_strided_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtbsv_strided_batched_rank_0 = rocblas_dtbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtbsv_strided_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtbsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtbsv_strided_batched_rank_1 = rocblas_dtbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctbsv_strided_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctbsv_strided_batched_full_rank = rocblas_ctbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctbsv_strided_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctbsv_strided_batched_rank_0 = rocblas_ctbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctbsv_strided_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctbsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctbsv_strided_batched_rank_1 = rocblas_ctbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztbsv_strided_batched_full_rank(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztbsv_strided_batched_full_rank = rocblas_ztbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztbsv_strided_batched_rank_0(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztbsv_strided_batched_rank_0 = rocblas_ztbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztbsv_strided_batched_rank_1(handle,uplo,transA,diag,n,k,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztbsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztbsv_strided_batched_rank_1 = rocblas_ztbsv_strided_batched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_strsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_strsv_full_rank = rocblas_strsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_strsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! rocblas_strsv_rank_0 = rocblas_strsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_strsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_strsv_rank_1 = rocblas_strsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtrsv_full_rank = rocblas_dtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! rocblas_dtrsv_rank_0 = rocblas_dtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_dtrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtrsv_rank_1 = rocblas_dtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctrsv_full_rank = rocblas_ctrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_ctrsv_rank_0 = rocblas_ctrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ctrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctrsv_rank_1 = rocblas_ctrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztrsv_full_rank = rocblas_ztrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_ztrsv_rank_0 = rocblas_ztrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_ztrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztrsv_rank_1 = rocblas_ztrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function rocblas_strsv_batched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_strsv_batched_full_rank = rocblas_strsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_strsv_batched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_strsv_batched_rank_0 = rocblas_strsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_strsv_batched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_strsv_batched_rank_1 = rocblas_strsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtrsv_batched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtrsv_batched_full_rank = rocblas_dtrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtrsv_batched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtrsv_batched_rank_0 = rocblas_dtrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_dtrsv_batched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtrsv_batched_rank_1 = rocblas_dtrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctrsv_batched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctrsv_batched_full_rank = rocblas_ctrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctrsv_batched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctrsv_batched_rank_0 = rocblas_ctrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ctrsv_batched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctrsv_batched_rank_1 = rocblas_ctrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztrsv_batched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztrsv_batched_full_rank = rocblas_ztrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztrsv_batched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztrsv_batched_rank_0 = rocblas_ztrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_ztrsv_batched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztrsv_batched_rank_1 = rocblas_ztrsv_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batch_count) end function function rocblas_strsv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_strsv_strided_batched_full_rank = rocblas_strsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_strsv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_strsv_strided_batched_rank_0 = rocblas_strsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_strsv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_strsv_strided_batched_rank_1 = rocblas_strsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtrsv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtrsv_strided_batched_full_rank = rocblas_dtrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtrsv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtrsv_strided_batched_rank_0 = rocblas_dtrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtrsv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtrsv_strided_batched_rank_1 = rocblas_dtrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctrsv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctrsv_strided_batched_full_rank = rocblas_ctrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctrsv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctrsv_strided_batched_rank_0 = rocblas_ctrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctrsv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctrsv_strided_batched_rank_1 = rocblas_ctrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztrsv_strided_batched_full_rank(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztrsv_strided_batched_full_rank = rocblas_ztrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztrsv_strided_batched_rank_0(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztrsv_strided_batched_rank_0 = rocblas_ztrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztrsv_strided_batched_rank_1(handle,uplo,transA,diag,m,A,lda,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztrsv_strided_batched_rank_1 = rocblas_ztrsv_strided_batched_(handle,uplo,transA,diag,m,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stpsv_rank_0(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx ! rocblas_stpsv_rank_0 = rocblas_stpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_stpsv_rank_1(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_stpsv_rank_1 = rocblas_stpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_dtpsv_rank_0(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx ! rocblas_dtpsv_rank_0 = rocblas_dtpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_dtpsv_rank_1(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_dtpsv_rank_1 = rocblas_dtpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_ctpsv_rank_0(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx ! rocblas_ctpsv_rank_0 = rocblas_ctpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_ctpsv_rank_1(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ctpsv_rank_1 = rocblas_ctpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_ztpsv_rank_0(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx ! rocblas_ztpsv_rank_0 = rocblas_ztpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_ztpsv_rank_1(handle,uplo,transA,diag,n,AP,x,incx) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocblas_ztpsv_rank_1 = rocblas_ztpsv_(handle,uplo,transA,diag,n,AP,c_loc(x),incx) end function function rocblas_stpsv_batched_full_rank(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stpsv_batched_full_rank = rocblas_stpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_stpsv_batched_rank_0(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stpsv_batched_rank_0 = rocblas_stpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_stpsv_batched_rank_1(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_stpsv_batched_rank_1 = rocblas_stpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_dtpsv_batched_full_rank(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtpsv_batched_full_rank = rocblas_dtpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_dtpsv_batched_rank_0(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtpsv_batched_rank_0 = rocblas_dtpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_dtpsv_batched_rank_1(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_dtpsv_batched_rank_1 = rocblas_dtpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_ctpsv_batched_full_rank(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctpsv_batched_full_rank = rocblas_ctpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_ctpsv_batched_rank_0(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctpsv_batched_rank_0 = rocblas_ctpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_ctpsv_batched_rank_1(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ctpsv_batched_rank_1 = rocblas_ctpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_ztpsv_batched_full_rank(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztpsv_batched_full_rank = rocblas_ztpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_ztpsv_batched_rank_0(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztpsv_batched_rank_0 = rocblas_ztpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_ztpsv_batched_rank_1(handle,uplo,transA,diag,n,AP,x,incx,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batch_count ! rocblas_ztpsv_batched_rank_1 = rocblas_ztpsv_batched_(handle,uplo,transA,diag,n,AP,c_loc(x),incx,batch_count) end function function rocblas_stpsv_strided_batched_rank_0(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stpsv_strided_batched_rank_0 = rocblas_stpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_stpsv_strided_batched_rank_1(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_stpsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_stpsv_strided_batched_rank_1 = rocblas_stpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtpsv_strided_batched_rank_0(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtpsv_strided_batched_rank_0 = rocblas_dtpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_dtpsv_strided_batched_rank_1(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtpsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_dtpsv_strided_batched_rank_1 = rocblas_dtpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctpsv_strided_batched_rank_0(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctpsv_strided_batched_rank_0 = rocblas_ctpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ctpsv_strided_batched_rank_1(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctpsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ctpsv_strided_batched_rank_1 = rocblas_ctpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztpsv_strided_batched_rank_0(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztpsv_strided_batched_rank_0 = rocblas_ztpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ztpsv_strided_batched_rank_1(handle,uplo,transA,diag,n,AP,stride_A,x,incx,stride_x,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztpsv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n type(c_ptr) :: AP integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x integer(c_int) :: batch_count ! rocblas_ztpsv_strided_batched_rank_1 = rocblas_ztpsv_strided_batched_(handle,uplo,transA,diag,n,AP,stride_A,c_loc(x),incx,stride_x,batch_count) end function function rocblas_ssymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_ssymv_full_rank = rocblas_ssymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_ssymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! rocblas_ssymv_rank_0 = rocblas_ssymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_ssymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_ssymv_rank_1 = rocblas_ssymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dsymv_full_rank = rocblas_dsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! rocblas_dsymv_rank_0 = rocblas_dsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dsymv_rank_1 = rocblas_dsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_csymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_csymv_full_rank = rocblas_csymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_csymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! rocblas_csymv_rank_0 = rocblas_csymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_csymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_csymv_rank_1 = rocblas_csymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zsymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zsymv_full_rank = rocblas_zsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zsymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! rocblas_zsymv_rank_0 = rocblas_zsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_zsymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_zsymv_rank_1 = rocblas_zsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_ssymv_batched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ssymv_batched_full_rank = rocblas_ssymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssymv_batched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ssymv_batched_rank_0 = rocblas_ssymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssymv_batched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ssymv_batched_rank_1 = rocblas_ssymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dsymv_batched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dsymv_batched_full_rank = rocblas_dsymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dsymv_batched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dsymv_batched_rank_0 = rocblas_dsymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dsymv_batched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dsymv_batched_rank_1 = rocblas_dsymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_csymv_batched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_csymv_batched_full_rank = rocblas_csymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_csymv_batched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_csymv_batched_rank_0 = rocblas_csymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_csymv_batched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_csymv_batched_rank_1 = rocblas_csymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zsymv_batched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zsymv_batched_full_rank = rocblas_zsymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zsymv_batched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zsymv_batched_rank_0 = rocblas_zsymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_zsymv_batched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_zsymv_batched_rank_1 = rocblas_zsymv_batched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssymv_strided_batched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ssymv_strided_batched_full_rank = rocblas_ssymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_ssymv_strided_batched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ssymv_strided_batched_rank_0 = rocblas_ssymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_ssymv_strided_batched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ssymv_strided_batched_rank_1 = rocblas_ssymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dsymv_strided_batched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dsymv_strided_batched_full_rank = rocblas_dsymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dsymv_strided_batched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dsymv_strided_batched_rank_0 = rocblas_dsymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dsymv_strided_batched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dsymv_strided_batched_rank_1 = rocblas_dsymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_csymv_strided_batched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_csymv_strided_batched_full_rank = rocblas_csymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_csymv_strided_batched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_csymv_strided_batched_rank_0 = rocblas_csymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_csymv_strided_batched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_csymv_strided_batched_rank_1 = rocblas_csymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_zsymv_strided_batched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zsymv_strided_batched_full_rank = rocblas_zsymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_zsymv_strided_batched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zsymv_strided_batched_rank_0 = rocblas_zsymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_zsymv_strided_batched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_zsymv_strided_batched_rank_1 = rocblas_zsymv_strided_batched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_sspmv_full_rank(handle,uplo,n,alpha,A,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_sspmv_full_rank = rocblas_sspmv_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sspmv_rank_0(handle,uplo,n,alpha,A,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! rocblas_sspmv_rank_0 = rocblas_sspmv_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sspmv_rank_1(handle,uplo,n,alpha,A,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_sspmv_rank_1 = rocblas_sspmv_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dspmv_full_rank(handle,uplo,n,alpha,A,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dspmv_full_rank = rocblas_dspmv_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dspmv_rank_0(handle,uplo,n,alpha,A,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! rocblas_dspmv_rank_0 = rocblas_dspmv_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dspmv_rank_1(handle,uplo,n,alpha,A,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dspmv_rank_1 = rocblas_dspmv_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_sspmv_batched_full_rank(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sspmv_batched_full_rank = rocblas_sspmv_batched_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sspmv_batched_rank_0(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sspmv_batched_rank_0 = rocblas_sspmv_batched_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sspmv_batched_rank_1(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_sspmv_batched_rank_1 = rocblas_sspmv_batched_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dspmv_batched_full_rank(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dspmv_batched_full_rank = rocblas_dspmv_batched_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dspmv_batched_rank_0(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dspmv_batched_rank_0 = rocblas_dspmv_batched_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dspmv_batched_rank_1(handle,uplo,n,alpha,A,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dspmv_batched_rank_1 = rocblas_dspmv_batched_(handle,uplo,n,alpha,c_loc(A),c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_sspmv_strided_batched_full_rank(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sspmv_strided_batched_full_rank = rocblas_sspmv_strided_batched_(handle,uplo,n,alpha,c_loc(A),strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_sspmv_strided_batched_rank_0(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sspmv_strided_batched_rank_0 = rocblas_sspmv_strided_batched_(handle,uplo,n,alpha,c_loc(A),strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_sspmv_strided_batched_rank_1(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_sspmv_strided_batched_rank_1 = rocblas_sspmv_strided_batched_(handle,uplo,n,alpha,c_loc(A),strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dspmv_strided_batched_full_rank(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dspmv_strided_batched_full_rank = rocblas_dspmv_strided_batched_(handle,uplo,n,alpha,c_loc(A),strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dspmv_strided_batched_rank_0(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dspmv_strided_batched_rank_0 = rocblas_dspmv_strided_batched_(handle,uplo,n,alpha,c_loc(A),strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dspmv_strided_batched_rank_1(handle,uplo,n,alpha,A,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dspmv_strided_batched_rank_1 = rocblas_dspmv_strided_batched_(handle,uplo,n,alpha,c_loc(A),strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_ssbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_ssbmv_full_rank = rocblas_ssbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_ssbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! rocblas_ssbmv_rank_0 = rocblas_ssbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_ssbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_ssbmv_rank_1 = rocblas_ssbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dsbmv_full_rank = rocblas_dsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! rocblas_dsbmv_rank_0 = rocblas_dsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! rocblas_dsbmv_rank_1 = rocblas_dsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function rocblas_dsbmv_batched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dsbmv_batched_full_rank = rocblas_dsbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dsbmv_batched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dsbmv_batched_rank_0 = rocblas_dsbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_dsbmv_batched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_dsbmv_batched_rank_1 = rocblas_dsbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssbmv_batched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ssbmv_batched_full_rank = rocblas_ssbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssbmv_batched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ssbmv_batched_rank_0 = rocblas_ssbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssbmv_batched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batch_count ! rocblas_ssbmv_batched_rank_1 = rocblas_ssbmv_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batch_count) end function function rocblas_ssbmv_strided_batched_full_rank(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ssbmv_strided_batched_full_rank = rocblas_ssbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_ssbmv_strided_batched_rank_0(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ssbmv_strided_batched_rank_0 = rocblas_ssbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_ssbmv_strided_batched_rank_1(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_ssbmv_strided_batched_rank_1 = rocblas_ssbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dsbmv_strided_batched_full_rank(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dsbmv_strided_batched_full_rank = rocblas_dsbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dsbmv_strided_batched_rank_0(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dsbmv_strided_batched_rank_0 = rocblas_dsbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_dsbmv_strided_batched_rank_1(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsbmv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batch_count ! rocblas_dsbmv_strided_batched_rank_1 = rocblas_dsbmv_strided_batched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batch_count) end function function rocblas_sger_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_sger_full_rank = rocblas_sger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_sger_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda ! rocblas_sger_rank_0 = rocblas_sger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_sger_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_sger_rank_1 = rocblas_sger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_dger_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_dger_full_rank = rocblas_dger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_dger_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda ! rocblas_dger_rank_0 = rocblas_dger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_dger_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_dger_rank_1 = rocblas_dger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cgeru_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_cgeru_full_rank = rocblas_cgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cgeru_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! rocblas_cgeru_rank_0 = rocblas_cgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cgeru_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_cgeru_rank_1 = rocblas_cgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zgeru_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_zgeru_full_rank = rocblas_zgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zgeru_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! rocblas_zgeru_rank_0 = rocblas_zgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zgeru_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_zgeru_rank_1 = rocblas_zgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cgerc_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_cgerc_full_rank = rocblas_cgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cgerc_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! rocblas_cgerc_rank_0 = rocblas_cgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_cgerc_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_cgerc_rank_1 = rocblas_cgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zgerc_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_zgerc_full_rank = rocblas_zgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zgerc_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! rocblas_zgerc_rank_0 = rocblas_zgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zgerc_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_zgerc_rank_1 = rocblas_zgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_sger_batched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_sger_batched_full_rank = rocblas_sger_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_sger_batched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_sger_batched_rank_0 = rocblas_sger_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_sger_batched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_sger_batched_rank_1 = rocblas_sger_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_dger_batched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dger_batched_full_rank = rocblas_dger_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_dger_batched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dger_batched_rank_0 = rocblas_dger_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_dger_batched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dger_batched_rank_1 = rocblas_dger_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cgeru_batched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cgeru_batched_full_rank = rocblas_cgeru_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cgeru_batched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cgeru_batched_rank_0 = rocblas_cgeru_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cgeru_batched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cgeru_batched_rank_1 = rocblas_cgeru_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zgeru_batched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zgeru_batched_full_rank = rocblas_zgeru_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zgeru_batched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zgeru_batched_rank_0 = rocblas_zgeru_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zgeru_batched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zgeru_batched_rank_1 = rocblas_zgeru_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cgerc_batched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cgerc_batched_full_rank = rocblas_cgerc_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cgerc_batched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cgerc_batched_rank_0 = rocblas_cgerc_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_cgerc_batched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_cgerc_batched_rank_1 = rocblas_cgerc_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zgerc_batched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zgerc_batched_full_rank = rocblas_zgerc_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zgerc_batched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zgerc_batched_rank_0 = rocblas_zgerc_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zgerc_batched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zgerc_batched_rank_1 = rocblas_zgerc_batched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_sger_strided_batched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_sger_strided_batched_full_rank = rocblas_sger_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_sger_strided_batched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_sger_strided_batched_rank_0 = rocblas_sger_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_sger_strided_batched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sger_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_sger_strided_batched_rank_1 = rocblas_sger_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_dger_strided_batched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dger_strided_batched_full_rank = rocblas_dger_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_dger_strided_batched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dger_strided_batched_rank_0 = rocblas_dger_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_dger_strided_batched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dger_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dger_strided_batched_rank_1 = rocblas_dger_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_cgeru_strided_batched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_cgeru_strided_batched_full_rank = rocblas_cgeru_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_cgeru_strided_batched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_cgeru_strided_batched_rank_0 = rocblas_cgeru_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_cgeru_strided_batched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeru_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_cgeru_strided_batched_rank_1 = rocblas_cgeru_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zgeru_strided_batched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zgeru_strided_batched_full_rank = rocblas_zgeru_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zgeru_strided_batched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zgeru_strided_batched_rank_0 = rocblas_zgeru_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zgeru_strided_batched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeru_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zgeru_strided_batched_rank_1 = rocblas_zgeru_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_cgerc_strided_batched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_cgerc_strided_batched_full_rank = rocblas_cgerc_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_cgerc_strided_batched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_cgerc_strided_batched_rank_0 = rocblas_cgerc_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_cgerc_strided_batched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgerc_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_cgerc_strided_batched_rank_1 = rocblas_cgerc_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zgerc_strided_batched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zgerc_strided_batched_full_rank = rocblas_zgerc_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zgerc_strided_batched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zgerc_strided_batched_rank_0 = rocblas_zgerc_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zgerc_strided_batched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgerc_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zgerc_strided_batched_rank_1 = rocblas_zgerc_strided_batched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_sspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_sspr_rank_0 = rocblas_sspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_sspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_sspr_rank_1 = rocblas_sspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_dspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_dspr_rank_0 = rocblas_dspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_dspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_dspr_rank_1 = rocblas_dspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_cspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_cspr_rank_0 = rocblas_cspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_cspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_cspr_rank_1 = rocblas_cspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_zspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_zspr_rank_0 = rocblas_zspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_zspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! rocblas_zspr_rank_1 = rocblas_zspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function rocblas_sspr_batched_full_rank(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_sspr_batched_full_rank = rocblas_sspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_sspr_batched_rank_0(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_sspr_batched_rank_0 = rocblas_sspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_sspr_batched_rank_1(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_sspr_batched_rank_1 = rocblas_sspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_dspr_batched_full_rank(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_dspr_batched_full_rank = rocblas_dspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_dspr_batched_rank_0(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_dspr_batched_rank_0 = rocblas_dspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_dspr_batched_rank_1(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_dspr_batched_rank_1 = rocblas_dspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_cspr_batched_full_rank(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_cspr_batched_full_rank = rocblas_cspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_cspr_batched_rank_0(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_cspr_batched_rank_0 = rocblas_cspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_cspr_batched_rank_1(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_cspr_batched_rank_1 = rocblas_cspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_zspr_batched_full_rank(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zspr_batched_full_rank = rocblas_zspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_zspr_batched_rank_0(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zspr_batched_rank_0 = rocblas_zspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_zspr_batched_rank_1(handle,uplo,n,alpha,x,incx,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_zspr_batched_rank_1 = rocblas_zspr_batched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batch_count) end function function rocblas_sspr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_sspr_strided_batched_rank_0 = rocblas_sspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_sspr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_sspr_strided_batched_rank_1 = rocblas_sspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_dspr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_dspr_strided_batched_rank_0 = rocblas_dspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_dspr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_dspr_strided_batched_rank_1 = rocblas_dspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_cspr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cspr_strided_batched_rank_0 = rocblas_cspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_cspr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cspr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_cspr_strided_batched_rank_1 = rocblas_cspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_zspr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zspr_strided_batched_rank_0 = rocblas_zspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_zspr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zspr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_zspr_strided_batched_rank_1 = rocblas_zspr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,AP,stride_A,batch_count) end function function rocblas_sspr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_sspr2_rank_0 = rocblas_sspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_sspr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_sspr2_rank_1 = rocblas_sspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_dspr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_dspr2_rank_0 = rocblas_dspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_dspr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! rocblas_dspr2_rank_1 = rocblas_dspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function rocblas_sspr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_sspr2_batched_full_rank = rocblas_sspr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_sspr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_sspr2_batched_rank_0 = rocblas_sspr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_sspr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_sspr2_batched_rank_1 = rocblas_sspr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_dspr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_dspr2_batched_full_rank = rocblas_dspr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_dspr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_dspr2_batched_rank_0 = rocblas_dspr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_dspr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batch_count ! rocblas_dspr2_batched_rank_1 = rocblas_dspr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batch_count) end function function rocblas_sspr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_sspr2_strided_batched_rank_0 = rocblas_sspr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_sspr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sspr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_sspr2_strided_batched_rank_1 = rocblas_sspr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_dspr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_dspr2_strided_batched_rank_0 = rocblas_dspr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_dspr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stride_x,y,incy,stride_y,AP,stride_A,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dspr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stride_y type(c_ptr) :: AP integer(c_int64_t) :: stride_A integer(c_int) :: batch_count ! rocblas_dspr2_strided_batched_rank_1 = rocblas_dspr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stride_x,c_loc(y),incy,stride_y,AP,stride_A,batch_count) end function function rocblas_ssyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_ssyr_full_rank = rocblas_ssyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_ssyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: A integer(c_int) :: lda ! rocblas_ssyr_rank_0 = rocblas_ssyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_ssyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_ssyr_rank_1 = rocblas_ssyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_dsyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_dsyr_full_rank = rocblas_dsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_dsyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: A integer(c_int) :: lda ! rocblas_dsyr_rank_0 = rocblas_dsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_dsyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_dsyr_rank_1 = rocblas_dsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_csyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_csyr_full_rank = rocblas_csyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_csyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda ! rocblas_csyr_rank_0 = rocblas_csyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_csyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_csyr_rank_1 = rocblas_csyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_zsyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_zsyr_full_rank = rocblas_zsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_zsyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda ! rocblas_zsyr_rank_0 = rocblas_zsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_zsyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_zsyr_rank_1 = rocblas_zsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function rocblas_ssyr_batched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_ssyr_batched_full_rank = rocblas_ssyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_ssyr_batched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_ssyr_batched_rank_0 = rocblas_ssyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_ssyr_batched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_ssyr_batched_rank_1 = rocblas_ssyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_dsyr_batched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dsyr_batched_full_rank = rocblas_dsyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_dsyr_batched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dsyr_batched_rank_0 = rocblas_dsyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_dsyr_batched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dsyr_batched_rank_1 = rocblas_dsyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_csyr_batched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_csyr_batched_full_rank = rocblas_csyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_csyr_batched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_csyr_batched_rank_0 = rocblas_csyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_csyr_batched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_csyr_batched_rank_1 = rocblas_csyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_zsyr_batched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zsyr_batched_full_rank = rocblas_zsyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_zsyr_batched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zsyr_batched_rank_0 = rocblas_zsyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_zsyr_batched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zsyr_batched_rank_1 = rocblas_zsyr_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batch_count) end function function rocblas_ssyr_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_ssyr_strided_batched_full_rank = rocblas_ssyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_ssyr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_ssyr_strided_batched_rank_0 = rocblas_ssyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_ssyr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_ssyr_strided_batched_rank_1 = rocblas_ssyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_dsyr_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dsyr_strided_batched_full_rank = rocblas_dsyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_dsyr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dsyr_strided_batched_rank_0 = rocblas_dsyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_dsyr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dsyr_strided_batched_rank_1 = rocblas_dsyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_csyr_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_csyr_strided_batched_full_rank = rocblas_csyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_csyr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_csyr_strided_batched_rank_0 = rocblas_csyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_csyr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_csyr_strided_batched_rank_1 = rocblas_csyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_zsyr_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zsyr_strided_batched_full_rank = rocblas_zsyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_zsyr_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zsyr_strided_batched_rank_0 = rocblas_zsyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_zsyr_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zsyr_strided_batched_rank_1 = rocblas_zsyr_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batch_count) end function function rocblas_ssyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_ssyr2_full_rank = rocblas_ssyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_ssyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda ! rocblas_ssyr2_rank_0 = rocblas_ssyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_ssyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_ssyr2_rank_1 = rocblas_ssyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_dsyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_dsyr2_full_rank = rocblas_dsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_dsyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda ! rocblas_dsyr2_rank_0 = rocblas_dsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_dsyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_dsyr2_rank_1 = rocblas_dsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_csyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_csyr2_full_rank = rocblas_csyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_csyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! rocblas_csyr2_rank_0 = rocblas_csyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_csyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_csyr2_rank_1 = rocblas_csyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zsyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocblas_zsyr2_full_rank = rocblas_zsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zsyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! rocblas_zsyr2_rank_0 = rocblas_zsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_zsyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocblas_zsyr2_rank_1 = rocblas_zsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function rocblas_ssyr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_ssyr2_batched_full_rank = rocblas_ssyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_ssyr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_ssyr2_batched_rank_0 = rocblas_ssyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_ssyr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_ssyr2_batched_rank_1 = rocblas_ssyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_dsyr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dsyr2_batched_full_rank = rocblas_dsyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_dsyr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dsyr2_batched_rank_0 = rocblas_dsyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_dsyr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_dsyr2_batched_rank_1 = rocblas_dsyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_csyr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_csyr2_batched_full_rank = rocblas_csyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_csyr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_csyr2_batched_rank_0 = rocblas_csyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_csyr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_csyr2_batched_rank_1 = rocblas_csyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zsyr2_batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zsyr2_batched_full_rank = rocblas_zsyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zsyr2_batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zsyr2_batched_rank_0 = rocblas_zsyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_zsyr2_batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batch_count ! rocblas_zsyr2_batched_rank_1 = rocblas_zsyr2_batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batch_count) end function function rocblas_ssyr2_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_ssyr2_strided_batched_full_rank = rocblas_ssyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_ssyr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_ssyr2_strided_batched_rank_0 = rocblas_ssyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_ssyr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_ssyr2_strided_batched_rank_1 = rocblas_ssyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_dsyr2_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dsyr2_strided_batched_full_rank = rocblas_dsyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_dsyr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dsyr2_strided_batched_rank_0 = rocblas_dsyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_dsyr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_dsyr2_strided_batched_rank_1 = rocblas_dsyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_csyr2_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_csyr2_strided_batched_full_rank = rocblas_csyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_csyr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_csyr2_strided_batched_rank_0 = rocblas_csyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_csyr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_csyr2_strided_batched_rank_1 = rocblas_csyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zsyr2_strided_batched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zsyr2_strided_batched_full_rank = rocblas_zsyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zsyr2_strided_batched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zsyr2_strided_batched_rank_0 = rocblas_zsyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_zsyr2_strided_batched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batch_count ! rocblas_zsyr2_strided_batched_rank_1 = rocblas_zsyr2_strided_batched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batch_count) end function function rocblas_chemm_full_rank(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_chemm_full_rank = rocblas_chemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_chemm_rank_0(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_chemm_rank_0 = rocblas_chemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_chemm_rank_1(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_chemm_rank_1 = rocblas_chemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zhemm_full_rank(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zhemm_full_rank = rocblas_zhemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zhemm_rank_0(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zhemm_rank_0 = rocblas_zhemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zhemm_rank_1(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zhemm_rank_1 = rocblas_zhemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_chemm_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_chemm_batched_full_rank = rocblas_chemm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_chemm_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_chemm_batched_rank_0 = rocblas_chemm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_chemm_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_chemm_batched_rank_1 = rocblas_chemm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zhemm_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zhemm_batched_full_rank = rocblas_zhemm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zhemm_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zhemm_batched_rank_0 = rocblas_zhemm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zhemm_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zhemm_batched_rank_1 = rocblas_zhemm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_chemm_strided_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_chemm_strided_batched_full_rank = rocblas_chemm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_chemm_strided_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_chemm_strided_batched_rank_0 = rocblas_chemm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_chemm_strided_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_chemm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_chemm_strided_batched_rank_1 = rocblas_chemm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zhemm_strided_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zhemm_strided_batched_full_rank = rocblas_zhemm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zhemm_strided_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zhemm_strided_batched_rank_0 = rocblas_zhemm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zhemm_strided_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zhemm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zhemm_strided_batched_rank_1 = rocblas_zhemm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cherk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_cherk_full_rank = rocblas_cherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_cherk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_cherk_rank_0 = rocblas_cherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_cherk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_cherk_rank_1 = rocblas_cherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_zherk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zherk_full_rank = rocblas_zherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_zherk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zherk_rank_0 = rocblas_zherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_zherk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zherk_rank_1 = rocblas_zherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_cherk_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cherk_batched_full_rank = rocblas_cherk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_cherk_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cherk_batched_rank_0 = rocblas_cherk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_cherk_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cherk_batched_rank_1 = rocblas_cherk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_zherk_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zherk_batched_full_rank = rocblas_zherk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_zherk_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zherk_batched_rank_0 = rocblas_zherk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_zherk_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zherk_batched_rank_1 = rocblas_zherk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_cherk_strided_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cherk_strided_batched_full_rank = rocblas_cherk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cherk_strided_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cherk_strided_batched_rank_0 = rocblas_cherk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cherk_strided_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherk_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cherk_strided_batched_rank_1 = rocblas_cherk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zherk_strided_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zherk_strided_batched_full_rank = rocblas_zherk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zherk_strided_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zherk_strided_batched_rank_0 = rocblas_zherk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zherk_strided_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherk_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zherk_strided_batched_rank_1 = rocblas_zherk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cher2k_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_cher2k_full_rank = rocblas_cher2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cher2k_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_cher2k_rank_0 = rocblas_cher2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cher2k_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_cher2k_rank_1 = rocblas_cher2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zher2k_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zher2k_full_rank = rocblas_zher2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zher2k_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zher2k_rank_0 = rocblas_zher2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zher2k_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zher2k_rank_1 = rocblas_zher2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cher2k_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cher2k_batched_full_rank = rocblas_cher2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cher2k_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cher2k_batched_rank_0 = rocblas_cher2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cher2k_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cher2k_batched_rank_1 = rocblas_cher2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zher2k_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zher2k_batched_full_rank = rocblas_zher2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zher2k_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zher2k_batched_rank_0 = rocblas_zher2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zher2k_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zher2k_batched_rank_1 = rocblas_zher2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cher2k_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cher2k_strided_batched_full_rank = rocblas_cher2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cher2k_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cher2k_strided_batched_rank_0 = rocblas_cher2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cher2k_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cher2k_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cher2k_strided_batched_rank_1 = rocblas_cher2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zher2k_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zher2k_strided_batched_full_rank = rocblas_zher2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zher2k_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zher2k_strided_batched_rank_0 = rocblas_zher2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zher2k_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zher2k_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zher2k_strided_batched_rank_1 = rocblas_zher2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cherkx_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_cherkx_full_rank = rocblas_cherkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cherkx_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_cherkx_rank_0 = rocblas_cherkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cherkx_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_cherkx_rank_1 = rocblas_cherkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zherkx_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zherkx_full_rank = rocblas_zherkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zherkx_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zherkx_rank_0 = rocblas_zherkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zherkx_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zherkx_rank_1 = rocblas_zherkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cherkx_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cherkx_batched_full_rank = rocblas_cherkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cherkx_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cherkx_batched_rank_0 = rocblas_cherkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cherkx_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cherkx_batched_rank_1 = rocblas_cherkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zherkx_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zherkx_batched_full_rank = rocblas_zherkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zherkx_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zherkx_batched_rank_0 = rocblas_zherkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zherkx_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zherkx_batched_rank_1 = rocblas_zherkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cherkx_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cherkx_strided_batched_full_rank = rocblas_cherkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cherkx_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cherkx_strided_batched_rank_0 = rocblas_cherkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_cherkx_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cherkx_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_cherkx_strided_batched_rank_1 = rocblas_cherkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zherkx_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zherkx_strided_batched_full_rank = rocblas_zherkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zherkx_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zherkx_strided_batched_rank_0 = rocblas_zherkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zherkx_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zherkx_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zherkx_strided_batched_rank_1 = rocblas_zherkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_ssymm_full_rank = rocblas_ssymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocblas_ssymm_rank_0 = rocblas_ssymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_ssymm_rank_1 = rocblas_ssymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_dsymm_full_rank = rocblas_dsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocblas_dsymm_rank_0 = rocblas_dsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_dsymm_rank_1 = rocblas_dsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_csymm_full_rank = rocblas_csymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_csymm_rank_0 = rocblas_csymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_csymm_rank_1 = rocblas_csymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zsymm_full_rank = rocblas_zsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zsymm_rank_0 = rocblas_zsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zsymm_rank_1 = rocblas_zsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssymm_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssymm_batched_full_rank = rocblas_ssymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssymm_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssymm_batched_rank_0 = rocblas_ssymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssymm_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssymm_batched_rank_1 = rocblas_ssymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsymm_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsymm_batched_full_rank = rocblas_dsymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsymm_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsymm_batched_rank_0 = rocblas_dsymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsymm_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsymm_batched_rank_1 = rocblas_dsymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csymm_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csymm_batched_full_rank = rocblas_csymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csymm_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csymm_batched_rank_0 = rocblas_csymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csymm_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csymm_batched_rank_1 = rocblas_csymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsymm_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsymm_batched_full_rank = rocblas_zsymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsymm_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsymm_batched_rank_0 = rocblas_zsymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsymm_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsymm_batched_rank_1 = rocblas_zsymm_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssymm_strided_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssymm_strided_batched_full_rank = rocblas_ssymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssymm_strided_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssymm_strided_batched_rank_0 = rocblas_ssymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssymm_strided_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssymm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssymm_strided_batched_rank_1 = rocblas_ssymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsymm_strided_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsymm_strided_batched_full_rank = rocblas_dsymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsymm_strided_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsymm_strided_batched_rank_0 = rocblas_dsymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsymm_strided_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsymm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsymm_strided_batched_rank_1 = rocblas_dsymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csymm_strided_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csymm_strided_batched_full_rank = rocblas_csymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csymm_strided_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csymm_strided_batched_rank_0 = rocblas_csymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csymm_strided_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csymm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csymm_strided_batched_rank_1 = rocblas_csymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsymm_strided_batched_full_rank(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsymm_strided_batched_full_rank = rocblas_zsymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsymm_strided_batched_rank_0(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsymm_strided_batched_rank_0 = rocblas_zsymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsymm_strided_batched_rank_1(handle,side,uplo,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsymm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsymm_strided_batched_rank_1 = rocblas_zsymm_strided_batched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_ssyrk_full_rank = rocblas_ssyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_ssyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocblas_ssyrk_rank_0 = rocblas_ssyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_ssyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_ssyrk_rank_1 = rocblas_ssyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_dsyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_dsyrk_full_rank = rocblas_dsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_dsyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocblas_dsyrk_rank_0 = rocblas_dsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_dsyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_dsyrk_rank_1 = rocblas_dsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_csyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_csyrk_full_rank = rocblas_csyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_csyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_csyrk_rank_0 = rocblas_csyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_csyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_csyrk_rank_1 = rocblas_csyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_zsyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zsyrk_full_rank = rocblas_zsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_zsyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zsyrk_rank_0 = rocblas_zsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_zsyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zsyrk_rank_1 = rocblas_zsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function rocblas_ssyrk_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyrk_batched_full_rank = rocblas_ssyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyrk_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyrk_batched_rank_0 = rocblas_ssyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyrk_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyrk_batched_rank_1 = rocblas_ssyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyrk_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyrk_batched_full_rank = rocblas_dsyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyrk_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyrk_batched_rank_0 = rocblas_dsyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyrk_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyrk_batched_rank_1 = rocblas_dsyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyrk_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyrk_batched_full_rank = rocblas_csyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyrk_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyrk_batched_rank_0 = rocblas_csyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyrk_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyrk_batched_rank_1 = rocblas_csyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyrk_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyrk_batched_full_rank = rocblas_zsyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyrk_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyrk_batched_rank_0 = rocblas_zsyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyrk_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyrk_batched_rank_1 = rocblas_zsyrk_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyrk_strided_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyrk_strided_batched_full_rank = rocblas_ssyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyrk_strided_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyrk_strided_batched_rank_0 = rocblas_ssyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyrk_strided_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrk_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyrk_strided_batched_rank_1 = rocblas_ssyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyrk_strided_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyrk_strided_batched_full_rank = rocblas_dsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyrk_strided_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyrk_strided_batched_rank_0 = rocblas_dsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyrk_strided_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrk_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyrk_strided_batched_rank_1 = rocblas_dsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyrk_strided_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyrk_strided_batched_full_rank = rocblas_csyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyrk_strided_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyrk_strided_batched_rank_0 = rocblas_csyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyrk_strided_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrk_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyrk_strided_batched_rank_1 = rocblas_csyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyrk_strided_batched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyrk_strided_batched_full_rank = rocblas_zsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyrk_strided_batched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyrk_strided_batched_rank_0 = rocblas_zsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyrk_strided_batched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,stride_A,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrk_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyrk_strided_batched_rank_1 = rocblas_zsyrk_strided_batched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,stride_A,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyr2k_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_ssyr2k_full_rank = rocblas_ssyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssyr2k_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocblas_ssyr2k_rank_0 = rocblas_ssyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssyr2k_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_ssyr2k_rank_1 = rocblas_ssyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsyr2k_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_dsyr2k_full_rank = rocblas_dsyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsyr2k_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocblas_dsyr2k_rank_0 = rocblas_dsyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsyr2k_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_dsyr2k_rank_1 = rocblas_dsyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csyr2k_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_csyr2k_full_rank = rocblas_csyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csyr2k_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_csyr2k_rank_0 = rocblas_csyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csyr2k_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_csyr2k_rank_1 = rocblas_csyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsyr2k_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zsyr2k_full_rank = rocblas_zsyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsyr2k_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zsyr2k_rank_0 = rocblas_zsyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsyr2k_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zsyr2k_rank_1 = rocblas_zsyr2k_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssyr2k_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyr2k_batched_full_rank = rocblas_ssyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyr2k_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyr2k_batched_rank_0 = rocblas_ssyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyr2k_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyr2k_batched_rank_1 = rocblas_ssyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyr2k_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyr2k_batched_full_rank = rocblas_dsyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyr2k_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyr2k_batched_rank_0 = rocblas_dsyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyr2k_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyr2k_batched_rank_1 = rocblas_dsyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyr2k_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyr2k_batched_full_rank = rocblas_csyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyr2k_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyr2k_batched_rank_0 = rocblas_csyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyr2k_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyr2k_batched_rank_1 = rocblas_csyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyr2k_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyr2k_batched_full_rank = rocblas_zsyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyr2k_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyr2k_batched_rank_0 = rocblas_zsyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyr2k_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyr2k_batched_rank_1 = rocblas_zsyr2k_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyr2k_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyr2k_strided_batched_full_rank = rocblas_ssyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyr2k_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyr2k_strided_batched_rank_0 = rocblas_ssyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyr2k_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyr2k_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyr2k_strided_batched_rank_1 = rocblas_ssyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyr2k_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyr2k_strided_batched_full_rank = rocblas_dsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyr2k_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyr2k_strided_batched_rank_0 = rocblas_dsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyr2k_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyr2k_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyr2k_strided_batched_rank_1 = rocblas_dsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyr2k_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyr2k_strided_batched_full_rank = rocblas_csyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyr2k_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyr2k_strided_batched_rank_0 = rocblas_csyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyr2k_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyr2k_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyr2k_strided_batched_rank_1 = rocblas_csyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyr2k_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyr2k_strided_batched_full_rank = rocblas_zsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyr2k_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyr2k_strided_batched_rank_0 = rocblas_zsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyr2k_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyr2k_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyr2k_strided_batched_rank_1 = rocblas_zsyr2k_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyrkx_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_ssyrkx_full_rank = rocblas_ssyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssyrkx_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocblas_ssyrkx_rank_0 = rocblas_ssyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssyrkx_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_ssyrkx_rank_1 = rocblas_ssyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsyrkx_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_dsyrkx_full_rank = rocblas_dsyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsyrkx_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocblas_dsyrkx_rank_0 = rocblas_dsyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dsyrkx_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_dsyrkx_rank_1 = rocblas_dsyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csyrkx_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_csyrkx_full_rank = rocblas_csyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csyrkx_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_csyrkx_rank_0 = rocblas_csyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_csyrkx_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_csyrkx_rank_1 = rocblas_csyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsyrkx_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zsyrkx_full_rank = rocblas_zsyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsyrkx_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zsyrkx_rank_0 = rocblas_zsyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zsyrkx_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zsyrkx_rank_1 = rocblas_zsyrkx_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_ssyrkx_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyrkx_batched_full_rank = rocblas_ssyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyrkx_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyrkx_batched_rank_0 = rocblas_ssyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyrkx_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ssyrkx_batched_rank_1 = rocblas_ssyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyrkx_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyrkx_batched_full_rank = rocblas_dsyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyrkx_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyrkx_batched_rank_0 = rocblas_dsyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dsyrkx_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dsyrkx_batched_rank_1 = rocblas_dsyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyrkx_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyrkx_batched_full_rank = rocblas_csyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyrkx_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyrkx_batched_rank_0 = rocblas_csyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_csyrkx_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_csyrkx_batched_rank_1 = rocblas_csyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyrkx_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyrkx_batched_full_rank = rocblas_zsyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyrkx_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyrkx_batched_rank_0 = rocblas_zsyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zsyrkx_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zsyrkx_batched_rank_1 = rocblas_zsyrkx_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_ssyrkx_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyrkx_strided_batched_full_rank = rocblas_ssyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyrkx_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyrkx_strided_batched_rank_0 = rocblas_ssyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_ssyrkx_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ssyrkx_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_ssyrkx_strided_batched_rank_1 = rocblas_ssyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyrkx_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyrkx_strided_batched_full_rank = rocblas_dsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyrkx_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyrkx_strided_batched_rank_0 = rocblas_dsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_dsyrkx_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dsyrkx_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_dsyrkx_strided_batched_rank_1 = rocblas_dsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyrkx_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyrkx_strided_batched_full_rank = rocblas_csyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyrkx_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyrkx_strided_batched_rank_0 = rocblas_csyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_csyrkx_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_csyrkx_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_csyrkx_strided_batched_rank_1 = rocblas_csyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyrkx_strided_batched_full_rank(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyrkx_strided_batched_full_rank = rocblas_zsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyrkx_strided_batched_rank_0(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyrkx_strided_batched_rank_0 = rocblas_zsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_zsyrkx_strided_batched_rank_1(handle,uplo,trans,n,k,alpha,A,lda,stride_A,B,ldb,stride_B,beta,C,ldc,stride_C,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zsyrkx_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_B complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batch_count ! rocblas_zsyrkx_strided_batched_rank_1 = rocblas_zsyrkx_strided_batched_(handle,uplo,trans,n,k,alpha,c_loc(A),lda,stride_A,c_loc(B),ldb,stride_B,beta,c_loc(C),ldc,stride_C,batch_count) end function function rocblas_strmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_strmm_full_rank = rocblas_strmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_strmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! rocblas_strmm_rank_0 = rocblas_strmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_strmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_strmm_rank_1 = rocblas_strmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_dtrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_dtrmm_full_rank = rocblas_dtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_dtrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! rocblas_dtrmm_rank_0 = rocblas_dtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_dtrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_dtrmm_rank_1 = rocblas_dtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ctrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_ctrmm_full_rank = rocblas_ctrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ctrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! rocblas_ctrmm_rank_0 = rocblas_ctrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ctrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_ctrmm_rank_1 = rocblas_ctrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ztrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_ztrmm_full_rank = rocblas_ztrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ztrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! rocblas_ztrmm_rank_0 = rocblas_ztrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ztrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_ztrmm_rank_1 = rocblas_ztrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_strtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! rocblas_strtri_full_rank = rocblas_strtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_strtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: invA integer(c_int) :: ldinvA ! rocblas_strtri_rank_0 = rocblas_strtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_strtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: invA integer(c_int) :: ldinvA ! rocblas_strtri_rank_1 = rocblas_strtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_dtrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! rocblas_dtrtri_full_rank = rocblas_dtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_dtrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: invA integer(c_int) :: ldinvA ! rocblas_dtrtri_rank_0 = rocblas_dtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_dtrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: invA integer(c_int) :: ldinvA ! rocblas_dtrtri_rank_1 = rocblas_dtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_ctrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! rocblas_ctrtri_full_rank = rocblas_ctrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_ctrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: invA integer(c_int) :: ldinvA ! rocblas_ctrtri_rank_0 = rocblas_ctrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_ctrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA ! rocblas_ctrtri_rank_1 = rocblas_ctrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_ztrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! rocblas_ztrtri_full_rank = rocblas_ztrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_ztrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: invA integer(c_int) :: ldinvA ! rocblas_ztrtri_rank_0 = rocblas_ztrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_ztrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA ! rocblas_ztrtri_rank_1 = rocblas_ztrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function rocblas_strtri_batched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_strtri_batched_full_rank = rocblas_strtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_strtri_batched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_strtri_batched_rank_0 = rocblas_strtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_strtri_batched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_strtri_batched_rank_1 = rocblas_strtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_dtrtri_batched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_dtrtri_batched_full_rank = rocblas_dtrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_dtrtri_batched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_dtrtri_batched_rank_0 = rocblas_dtrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_dtrtri_batched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_dtrtri_batched_rank_1 = rocblas_dtrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_ctrtri_batched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_ctrtri_batched_full_rank = rocblas_ctrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_ctrtri_batched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_ctrtri_batched_rank_0 = rocblas_ctrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_ctrtri_batched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_ctrtri_batched_rank_1 = rocblas_ctrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_ztrtri_batched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_ztrtri_batched_full_rank = rocblas_ztrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_ztrtri_batched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_ztrtri_batched_rank_0 = rocblas_ztrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_ztrtri_batched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batch_count ! rocblas_ztrtri_batched_rank_1 = rocblas_ztrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batch_count) end function function rocblas_strtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_strtri_strided_batched_full_rank = rocblas_strtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_strtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_strtri_strided_batched_rank_0 = rocblas_strtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_strtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_strtri_strided_batched_rank_1 = rocblas_strtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_dtrtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_dtrtri_strided_batched_full_rank = rocblas_dtrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_dtrtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_dtrtri_strided_batched_rank_0 = rocblas_dtrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_dtrtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_dtrtri_strided_batched_rank_1 = rocblas_dtrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_ctrtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_ctrtri_strided_batched_full_rank = rocblas_ctrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_ctrtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_ctrtri_strided_batched_rank_0 = rocblas_ctrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_ctrtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_ctrtri_strided_batched_rank_1 = rocblas_ctrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_ztrtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_ztrtri_strided_batched_full_rank = rocblas_ztrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_ztrtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_ztrtri_strided_batched_rank_0 = rocblas_ztrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_ztrtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,stride_a,invA,ldinvA,stride_invA,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batch_count ! rocblas_ztrtri_strided_batched_rank_1 = rocblas_ztrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,stride_a,c_loc(invA),ldinvA,stride_invA,batch_count) end function function rocblas_strsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_strsm_full_rank = rocblas_strsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_strsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! rocblas_strsm_rank_0 = rocblas_strsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_strsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_strsm_rank_1 = rocblas_strsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_dtrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_dtrsm_full_rank = rocblas_dtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_dtrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! rocblas_dtrsm_rank_0 = rocblas_dtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_dtrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_dtrsm_rank_1 = rocblas_dtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ctrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_ctrsm_full_rank = rocblas_ctrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ctrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! rocblas_ctrsm_rank_0 = rocblas_ctrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ctrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_ctrsm_rank_1 = rocblas_ctrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ztrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocblas_ztrsm_full_rank = rocblas_ztrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ztrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! rocblas_ztrsm_rank_0 = rocblas_ztrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_ztrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocblas_ztrsm_rank_1 = rocblas_ztrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function rocblas_strsm_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_strsm_batched_full_rank = rocblas_strsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_strsm_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_strsm_batched_rank_0 = rocblas_strsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_strsm_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_strsm_batched_rank_1 = rocblas_strsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_dtrsm_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_dtrsm_batched_full_rank = rocblas_dtrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_dtrsm_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_dtrsm_batched_rank_0 = rocblas_dtrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_dtrsm_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_dtrsm_batched_rank_1 = rocblas_dtrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_ctrsm_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_ctrsm_batched_full_rank = rocblas_ctrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_ctrsm_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_ctrsm_batched_rank_0 = rocblas_ctrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_ctrsm_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_ctrsm_batched_rank_1 = rocblas_ctrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_ztrsm_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_ztrsm_batched_full_rank = rocblas_ztrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_ztrsm_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_ztrsm_batched_rank_0 = rocblas_ztrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_ztrsm_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocblas_ztrsm_batched_rank_1 = rocblas_ztrsm_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocblas_strsm_strided_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_strsm_strided_batched_full_rank = rocblas_strsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_strsm_strided_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_strsm_strided_batched_rank_0 = rocblas_strsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_strsm_strided_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_strsm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_strsm_strided_batched_rank_1 = rocblas_strsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_dtrsm_strided_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_dtrsm_strided_batched_full_rank = rocblas_dtrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_dtrsm_strided_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_dtrsm_strided_batched_rank_0 = rocblas_dtrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_dtrsm_strided_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dtrsm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_dtrsm_strided_batched_rank_1 = rocblas_dtrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_ctrsm_strided_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_ctrsm_strided_batched_full_rank = rocblas_ctrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_ctrsm_strided_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_ctrsm_strided_batched_rank_0 = rocblas_ctrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_ctrsm_strided_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ctrsm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_ctrsm_strided_batched_rank_1 = rocblas_ctrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_ztrsm_strided_batched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_ztrsm_strided_batched_full_rank = rocblas_ztrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_ztrsm_strided_batched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_ztrsm_strided_batched_rank_0 = rocblas_ztrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_ztrsm_strided_batched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_a,B,ldb,stride_b,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ztrsm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b integer(c_int) :: batch_count ! rocblas_ztrsm_strided_batched_rank_1 = rocblas_ztrsm_strided_batched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,batch_count) end function function rocblas_sgemm_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_sgemm_full_rank = rocblas_sgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_sgemm_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocblas_sgemm_rank_0 = rocblas_sgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_sgemm_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_sgemm_rank_1 = rocblas_sgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dgemm_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_dgemm_full_rank = rocblas_dgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dgemm_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocblas_dgemm_rank_0 = rocblas_dgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_dgemm_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_dgemm_rank_1 = rocblas_dgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cgemm_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_cgemm_full_rank = rocblas_cgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cgemm_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_cgemm_rank_0 = rocblas_cgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_cgemm_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_cgemm_rank_1 = rocblas_cgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zgemm_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zgemm_full_rank = rocblas_zgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zgemm_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zgemm_rank_0 = rocblas_zgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_zgemm_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zgemm_rank_1 = rocblas_zgemm_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocblas_sgemm_batched_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sgemm_batched_full_rank = rocblas_sgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_sgemm_batched_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sgemm_batched_rank_0 = rocblas_sgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_sgemm_batched_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sgemm_batched_rank_1 = rocblas_sgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dgemm_batched_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dgemm_batched_full_rank = rocblas_dgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dgemm_batched_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dgemm_batched_rank_0 = rocblas_dgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_dgemm_batched_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dgemm_batched_rank_1 = rocblas_dgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cgemm_batched_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cgemm_batched_full_rank = rocblas_cgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cgemm_batched_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cgemm_batched_rank_0 = rocblas_cgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_cgemm_batched_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cgemm_batched_rank_1 = rocblas_cgemm_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zgemm_batched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zgemm_batched_full_rank = rocblas_zgemm_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zgemm_batched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zgemm_batched_rank_0 = rocblas_zgemm_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_zgemm_batched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zgemm_batched_rank_1 = rocblas_zgemm_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batch_count) end function function rocblas_sgemm_strided_batched_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgemm_strided_batched_full_rank = rocblas_sgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgemm_strided_batched_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgemm_strided_batched_rank_0 = rocblas_sgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgemm_strided_batched_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgemm_strided_batched_rank_1 = rocblas_sgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgemm_strided_batched_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgemm_strided_batched_full_rank = rocblas_dgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgemm_strided_batched_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgemm_strided_batched_rank_0 = rocblas_dgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgemm_strided_batched_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgemm_strided_batched_rank_1 = rocblas_dgemm_strided_batched_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgemm_kernel_name_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_kernel_name_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgemm_kernel_name_full_rank = rocblas_sgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgemm_kernel_name_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_kernel_name_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgemm_kernel_name_rank_0 = rocblas_sgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgemm_kernel_name_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgemm_kernel_name_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgemm_kernel_name_rank_1 = rocblas_sgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgemm_kernel_name_full_rank(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_kernel_name_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgemm_kernel_name_full_rank = rocblas_dgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgemm_kernel_name_rank_0(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_kernel_name_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgemm_kernel_name_rank_0 = rocblas_dgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgemm_kernel_name_rank_1(handle,transA,transB,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgemm_kernel_name_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgemm_kernel_name_rank_1 = rocblas_dgemm_kernel_name_(handle,transA,transB,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cgemm_strided_batched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cgemm_strided_batched_full_rank = rocblas_cgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cgemm_strided_batched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cgemm_strided_batched_rank_0 = rocblas_cgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cgemm_strided_batched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgemm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cgemm_strided_batched_rank_1 = rocblas_cgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zgemm_strided_batched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zgemm_strided_batched_full_rank = rocblas_zgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zgemm_strided_batched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zgemm_strided_batched_rank_0 = rocblas_zgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zgemm_strided_batched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,stride_a,B,ldb,stride_b,beta,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgemm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transa integer(kind(rocblas_operation_none)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zgemm_strided_batched_rank_1 = rocblas_zgemm_strided_batched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,stride_a,c_loc(B),ldb,stride_b,beta,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_sdgmm_full_rank = rocblas_sdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_sdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: C integer(c_int) :: ldc ! rocblas_sdgmm_rank_0 = rocblas_sdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_sdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_sdgmm_rank_1 = rocblas_sdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_ddgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_ddgmm_full_rank = rocblas_ddgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_ddgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: C integer(c_int) :: ldc ! rocblas_ddgmm_rank_0 = rocblas_ddgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_ddgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_ddgmm_rank_1 = rocblas_ddgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_cdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_cdgmm_full_rank = rocblas_cdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_cdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_cdgmm_rank_0 = rocblas_cdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_cdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_cdgmm_rank_1 = rocblas_cdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_zdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zdgmm_full_rank = rocblas_zdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_zdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zdgmm_rank_0 = rocblas_zdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_zdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zdgmm_rank_1 = rocblas_zdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function rocblas_sdgmm_batched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sdgmm_batched_full_rank = rocblas_sdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_sdgmm_batched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sdgmm_batched_rank_0 = rocblas_sdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_sdgmm_batched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sdgmm_batched_rank_1 = rocblas_sdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_ddgmm_batched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ddgmm_batched_full_rank = rocblas_ddgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_ddgmm_batched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ddgmm_batched_rank_0 = rocblas_ddgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_ddgmm_batched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_ddgmm_batched_rank_1 = rocblas_ddgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_cdgmm_batched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cdgmm_batched_full_rank = rocblas_cdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_cdgmm_batched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cdgmm_batched_rank_0 = rocblas_cdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_cdgmm_batched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cdgmm_batched_rank_1 = rocblas_cdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_zdgmm_batched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zdgmm_batched_full_rank = rocblas_zdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_zdgmm_batched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zdgmm_batched_rank_0 = rocblas_zdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_zdgmm_batched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zdgmm_batched_rank_1 = rocblas_zdgmm_batched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batch_count) end function function rocblas_sdgmm_strided_batched_full_rank(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sdgmm_strided_batched_full_rank = rocblas_sdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sdgmm_strided_batched_rank_0(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sdgmm_strided_batched_rank_0 = rocblas_sdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sdgmm_strided_batched_rank_1(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sdgmm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sdgmm_strided_batched_rank_1 = rocblas_sdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_ddgmm_strided_batched_full_rank(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_ddgmm_strided_batched_full_rank = rocblas_ddgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_ddgmm_strided_batched_rank_0(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_ddgmm_strided_batched_rank_0 = rocblas_ddgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_ddgmm_strided_batched_rank_1(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_ddgmm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_ddgmm_strided_batched_rank_1 = rocblas_ddgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cdgmm_strided_batched_full_rank(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cdgmm_strided_batched_full_rank = rocblas_cdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cdgmm_strided_batched_rank_0(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cdgmm_strided_batched_rank_0 = rocblas_cdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cdgmm_strided_batched_rank_1(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cdgmm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cdgmm_strided_batched_rank_1 = rocblas_cdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zdgmm_strided_batched_full_rank(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zdgmm_strided_batched_full_rank = rocblas_zdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zdgmm_strided_batched_rank_0(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zdgmm_strided_batched_rank_0 = rocblas_zdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zdgmm_strided_batched_rank_1(handle,side,m,n,A,lda,stride_a,x,incx,stride_x,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zdgmm_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zdgmm_strided_batched_rank_1 = rocblas_zdgmm_strided_batched_(handle,side,m,n,c_loc(A),lda,stride_a,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgeam_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_sgeam_full_rank = rocblas_sgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_sgeam_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: C integer(c_int) :: ldc ! rocblas_sgeam_rank_0 = rocblas_sgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_sgeam_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_sgeam_rank_1 = rocblas_sgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_dgeam_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_dgeam_full_rank = rocblas_dgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_dgeam_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: C integer(c_int) :: ldc ! rocblas_dgeam_rank_0 = rocblas_dgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_dgeam_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_dgeam_rank_1 = rocblas_dgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_cgeam_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_cgeam_full_rank = rocblas_cgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_cgeam_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocblas_cgeam_rank_0 = rocblas_cgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_cgeam_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_cgeam_rank_1 = rocblas_cgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_zgeam_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocblas_zgeam_full_rank = rocblas_zgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_zgeam_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocblas_zgeam_rank_0 = rocblas_zgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_zgeam_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocblas_zgeam_rank_1 = rocblas_zgeam_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function rocblas_sgeam_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sgeam_batched_full_rank = rocblas_sgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_sgeam_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sgeam_batched_rank_0 = rocblas_sgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_sgeam_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_sgeam_batched_rank_1 = rocblas_sgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_dgeam_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dgeam_batched_full_rank = rocblas_dgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_dgeam_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dgeam_batched_rank_0 = rocblas_dgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_dgeam_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_dgeam_batched_rank_1 = rocblas_dgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_cgeam_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cgeam_batched_full_rank = rocblas_cgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_cgeam_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cgeam_batched_rank_0 = rocblas_cgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_cgeam_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_cgeam_batched_rank_1 = rocblas_cgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_zgeam_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zgeam_batched_full_rank = rocblas_zgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_zgeam_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zgeam_batched_rank_0 = rocblas_zgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_zgeam_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batch_count ! rocblas_zgeam_batched_rank_1 = rocblas_zgeam_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batch_count) end function function rocblas_sgeam_strided_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float) :: beta real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgeam_strided_batched_full_rank = rocblas_sgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgeam_strided_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float) :: beta real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgeam_strided_batched_rank_0 = rocblas_sgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_sgeam_strided_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_sgeam_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_float) :: beta real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_sgeam_strided_batched_rank_1 = rocblas_sgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgeam_strided_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double) :: beta real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgeam_strided_batched_full_rank = rocblas_dgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgeam_strided_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double) :: beta real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgeam_strided_batched_rank_0 = rocblas_dgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_dgeam_strided_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_dgeam_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a real(c_double) :: beta real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_dgeam_strided_batched_rank_1 = rocblas_dgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cgeam_strided_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cgeam_strided_batched_full_rank = rocblas_cgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cgeam_strided_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex) :: beta complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cgeam_strided_batched_rank_0 = rocblas_cgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_cgeam_strided_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_cgeam_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_cgeam_strided_batched_rank_1 = rocblas_cgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zgeam_strided_batched_full_rank(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zgeam_strided_batched_full_rank = rocblas_zgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zgeam_strided_batched_rank_0(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex) :: beta complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zgeam_strided_batched_rank_0 = rocblas_zgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function function rocblas_zgeam_strided_batched_rank_1(handle,transA,transB,m,n,alpha,A,lda,stride_a,beta,B,ldb,stride_b,C,ldc,stride_c,batch_count) use iso_c_binding use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocblas_zgeam_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: transA integer(kind(rocblas_operation_none)) :: transB integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_a complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: stride_b complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_c integer(c_int) :: batch_count ! rocblas_zgeam_strided_batched_rank_1 = rocblas_zgeam_strided_batched_(handle,transA,transB,m,n,alpha,c_loc(A),lda,stride_a,beta,c_loc(B),ldb,stride_b,c_loc(C),ldc,stride_c,batch_count) end function #endif end module hipfort_rocblas hipfort-7.2.4/lib/hipfort/hipfort_hipblas.F900000664000175000017500001020232315207260635021252 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipblas use hipfort_hipblas_enums use hipfort_hipblas_auxiliary implicit none interface hipblasCreate #ifdef USE_CUDA_NAMES function hipblasCreate_(handle) bind(c, name="cublasCreate_v2") #else function hipblasCreate_(handle) bind(c, name="hipblasCreate") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCreate_ type(c_ptr) :: handle end function end interface interface hipblasDestroy #ifdef USE_CUDA_NAMES function hipblasDestroy_(handle) bind(c, name="cublasDestroy_v2") #else function hipblasDestroy_(handle) bind(c, name="hipblasDestroy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDestroy_ type(c_ptr),value :: handle end function end interface interface hipblasSetStream #ifdef USE_CUDA_NAMES function hipblasSetStream_(handle,streamId) bind(c, name="cublasSetStream_v2") #else function hipblasSetStream_(handle,streamId) bind(c, name="hipblasSetStream") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSetStream_ type(c_ptr),value :: handle type(c_ptr),value :: streamId end function end interface interface hipblasGetStream #ifdef USE_CUDA_NAMES function hipblasGetStream_(handle,streamId) bind(c, name="cublasGetStream_v2") #else function hipblasGetStream_(handle,streamId) bind(c, name="hipblasGetStream") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasGetStream_ type(c_ptr),value :: handle type(c_ptr) :: streamId end function end interface interface hipblasSetPointerMode #ifdef USE_CUDA_NAMES function hipblasSetPointerMode_(handle,mode) bind(c, name="cublasSetPointerMode_v2") #else function hipblasSetPointerMode_(handle,mode) bind(c, name="hipblasSetPointerMode") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSetPointerMode_ type(c_ptr),value :: handle integer(kind(HIPBLAS_POINTER_MODE_HOST)),value :: mode end function end interface interface hipblasGetPointerMode #ifdef USE_CUDA_NAMES function hipblasGetPointerMode_(handle,mode) bind(c, name="cublasGetPointerMode_v2") #else function hipblasGetPointerMode_(handle,mode) bind(c, name="hipblasGetPointerMode") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasGetPointerMode_ type(c_ptr),value :: handle type(c_ptr),value :: mode end function end interface interface hipblasSetAtomicsMode #ifdef USE_CUDA_NAMES function hipblasSetAtomicsMode_(handle,atomics_mode) bind(c, name="cublasSetAtomicsMode") #else function hipblasSetAtomicsMode_(handle,atomics_mode) bind(c, name="hipblasSetAtomicsMode") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSetAtomicsMode_ type(c_ptr),value :: handle integer(kind(HIPBLAS_ATOMICS_NOT_ALLOWED)),value :: atomics_mode end function end interface interface hipblasGetAtomicsMode #ifdef USE_CUDA_NAMES function hipblasGetAtomicsMode_(handle,atomics_mode) bind(c, name="cublasGetAtomicsMode") #else function hipblasGetAtomicsMode_(handle,atomics_mode) bind(c, name="hipblasGetAtomicsMode") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasGetAtomicsMode_ type(c_ptr),value :: handle type(c_ptr),value :: atomics_mode end function end interface interface hipblasIsamax #ifdef USE_CUDA_NAMES function hipblasIsamax_(handle,n,x,incx,myResult) bind(c, name="cublasIsamax_v2") #else function hipblasIsamax_(handle,n,x,incx,myResult) bind(c, name="hipblasIsamax") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamax_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIsamax_rank_0,& hipblasIsamax_rank_1 #endif end interface interface hipblasIdamax #ifdef USE_CUDA_NAMES function hipblasIdamax_(handle,n,x,incx,myResult) bind(c, name="cublasIdamax_v2") #else function hipblasIdamax_(handle,n,x,incx,myResult) bind(c, name="hipblasIdamax") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamax_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIdamax_rank_0,& hipblasIdamax_rank_1 #endif end interface interface hipblasIcamax #ifdef USE_CUDA_NAMES function hipblasIcamax_(handle,n,x,incx,myResult) bind(c, name="cublasIcamax_v2") #else function hipblasIcamax_(handle,n,x,incx,myResult) bind(c, name="hipblasIcamax") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamax_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIcamax_rank_0,& hipblasIcamax_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amax finds the first index of the element of maximum magnitude of a vector x. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the amax index. !> return is 0.0 if n, incx<=0. interface hipblasIzamax #ifdef USE_CUDA_NAMES function hipblasIzamax_(handle,n,x,incx,myResult) bind(c, name="cublasIzamax_v2") #else function hipblasIzamax_(handle,n,x,incx,myResult) bind(c, name="hipblasIzamax") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamax_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIzamax_rank_0,& hipblasIzamax_rank_1 #endif end interface interface hipblasIsamaxBatched #ifdef USE_CUDA_NAMES function hipblasIsamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIsamaxBatched") #else function hipblasIsamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIsamaxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIsamaxBatched_full_rank,& hipblasIsamaxBatched_rank_0,& hipblasIsamaxBatched_rank_1 #endif end interface interface hipblasIdamaxBatched #ifdef USE_CUDA_NAMES function hipblasIdamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIdamaxBatched") #else function hipblasIdamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIdamaxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIdamaxBatched_full_rank,& hipblasIdamaxBatched_rank_0,& hipblasIdamaxBatched_rank_1 #endif end interface interface hipblasIcamaxBatched #ifdef USE_CUDA_NAMES function hipblasIcamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIcamaxBatched") #else function hipblasIcamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIcamaxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIcamaxBatched_full_rank,& hipblasIcamaxBatched_rank_0,& hipblasIcamaxBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amaxBatched finds the first index of the element of maximum magnitude of each vector x_i in a batch, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each vector x_i !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batchCount [int] !> number of instances in the batch, must be > 0. !> @param[out] !> result !> device or host array of pointers of batchCount size for results. !> return is 0 if n, incx<=0. interface hipblasIzamaxBatched #ifdef USE_CUDA_NAMES function hipblasIzamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIzamaxBatched") #else function hipblasIzamaxBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIzamaxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIzamaxBatched_full_rank,& hipblasIzamaxBatched_rank_0,& hipblasIzamaxBatched_rank_1 #endif end interface interface hipblasIsamaxStridedBatched #ifdef USE_CUDA_NAMES function hipblasIsamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIsamaxStridedBatched") #else function hipblasIsamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIsamaxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIsamaxStridedBatched_rank_0,& hipblasIsamaxStridedBatched_rank_1 #endif end interface interface hipblasIdamaxStridedBatched #ifdef USE_CUDA_NAMES function hipblasIdamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIdamaxStridedBatched") #else function hipblasIdamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIdamaxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIdamaxStridedBatched_rank_0,& hipblasIdamaxStridedBatched_rank_1 #endif end interface interface hipblasIcamaxStridedBatched #ifdef USE_CUDA_NAMES function hipblasIcamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIcamaxStridedBatched") #else function hipblasIcamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIcamaxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIcamaxStridedBatched_rank_0,& hipblasIcamaxStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amaxStridedBatched finds the first index of the element of maximum magnitude of each vector x_i in a batch, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each vector x_i !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [hipblasStride] !> specifies the pointer increment between one x_i and the next x_(i + 1). !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[out] !> result !> device or host pointer for storing contiguous batchCount results. !> return is 0 if n <= 0, incx<=0. !> interface hipblasIzamaxStridedBatched #ifdef USE_CUDA_NAMES function hipblasIzamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIzamaxStridedBatched") #else function hipblasIzamaxStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIzamaxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIzamaxStridedBatched_rank_0,& hipblasIzamaxStridedBatched_rank_1 #endif end interface interface hipblasIsamin #ifdef USE_CUDA_NAMES function hipblasIsamin_(handle,n,x,incx,myResult) bind(c, name="cublasIsamin_v2") #else function hipblasIsamin_(handle,n,x,incx,myResult) bind(c, name="hipblasIsamin") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamin_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIsamin_rank_0,& hipblasIsamin_rank_1 #endif end interface interface hipblasIdamin #ifdef USE_CUDA_NAMES function hipblasIdamin_(handle,n,x,incx,myResult) bind(c, name="cublasIdamin_v2") #else function hipblasIdamin_(handle,n,x,incx,myResult) bind(c, name="hipblasIdamin") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamin_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIdamin_rank_0,& hipblasIdamin_rank_1 #endif end interface interface hipblasIcamin #ifdef USE_CUDA_NAMES function hipblasIcamin_(handle,n,x,incx,myResult) bind(c, name="cublasIcamin_v2") #else function hipblasIcamin_(handle,n,x,incx,myResult) bind(c, name="hipblasIcamin") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamin_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIcamin_rank_0,& hipblasIcamin_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> amin finds the first index of the element of minimum magnitude of a vector x. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the amin index. !> return is 0.0 if n, incx<=0. interface hipblasIzamin #ifdef USE_CUDA_NAMES function hipblasIzamin_(handle,n,x,incx,myResult) bind(c, name="cublasIzamin_v2") #else function hipblasIzamin_(handle,n,x,incx,myResult) bind(c, name="hipblasIzamin") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamin_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIzamin_rank_0,& hipblasIzamin_rank_1 #endif end interface interface hipblasIsaminBatched #ifdef USE_CUDA_NAMES function hipblasIsaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIsaminBatched") #else function hipblasIsaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIsaminBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIsaminBatched_full_rank,& hipblasIsaminBatched_rank_0,& hipblasIsaminBatched_rank_1 #endif end interface interface hipblasIdaminBatched #ifdef USE_CUDA_NAMES function hipblasIdaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIdaminBatched") #else function hipblasIdaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIdaminBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIdaminBatched_full_rank,& hipblasIdaminBatched_rank_0,& hipblasIdaminBatched_rank_1 #endif end interface interface hipblasIcaminBatched #ifdef USE_CUDA_NAMES function hipblasIcaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIcaminBatched") #else function hipblasIcaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIcaminBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIcaminBatched_full_rank,& hipblasIcaminBatched_rank_0,& hipblasIcaminBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> aminBatched finds the first index of the element of minimum magnitude of each vector x_i in a batch, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each vector x_i !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batchCount [int] !> number of instances in the batch, must be > 0. !> @param[out] !> result !> device or host pointers to array of batchCount size for results. !> return is 0 if n, incx<=0. interface hipblasIzaminBatched #ifdef USE_CUDA_NAMES function hipblasIzaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasIzaminBatched") #else function hipblasIzaminBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasIzaminBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIzaminBatched_full_rank,& hipblasIzaminBatched_rank_0,& hipblasIzaminBatched_rank_1 #endif end interface interface hipblasIsaminStridedBatched #ifdef USE_CUDA_NAMES function hipblasIsaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIsaminStridedBatched") #else function hipblasIsaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIsaminStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIsaminStridedBatched_rank_0,& hipblasIsaminStridedBatched_rank_1 #endif end interface interface hipblasIdaminStridedBatched #ifdef USE_CUDA_NAMES function hipblasIdaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIdaminStridedBatched") #else function hipblasIdaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIdaminStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIdaminStridedBatched_rank_0,& hipblasIdaminStridedBatched_rank_1 #endif end interface interface hipblasIcaminStridedBatched #ifdef USE_CUDA_NAMES function hipblasIcaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIcaminStridedBatched") #else function hipblasIcaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIcaminStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIcaminStridedBatched_rank_0,& hipblasIcaminStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> aminStridedBatched finds the first index of the element of minimum magnitude of each vector x_i in a batch, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each vector x_i !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [hipblasStride] !> specifies the pointer increment between one x_i and the next x_(i + 1) !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[out] !> result !> device or host pointer to array for storing contiguous batchCount results. !> return is 0 if n <= 0, incx<=0. !> interface hipblasIzaminStridedBatched #ifdef USE_CUDA_NAMES function hipblasIzaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasIzaminStridedBatched") #else function hipblasIzaminStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasIzaminStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasIzaminStridedBatched_rank_0,& hipblasIzaminStridedBatched_rank_1 #endif end interface interface hipblasSasum #ifdef USE_CUDA_NAMES function hipblasSasum_(handle,n,x,incx,myResult) bind(c, name="cublasSasum_v2") #else function hipblasSasum_(handle,n,x,incx,myResult) bind(c, name="hipblasSasum") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasum_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSasum_rank_0,& hipblasSasum_rank_1 #endif end interface interface hipblasDasum #ifdef USE_CUDA_NAMES function hipblasDasum_(handle,n,x,incx,myResult) bind(c, name="cublasDasum_v2") #else function hipblasDasum_(handle,n,x,incx,myResult) bind(c, name="hipblasDasum") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasum_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDasum_rank_0,& hipblasDasum_rank_1 #endif end interface interface hipblasScasum #ifdef USE_CUDA_NAMES function hipblasScasum_(handle,n,x,incx,myResult) bind(c, name="cublasScasum_v2") #else function hipblasScasum_(handle,n,x,incx,myResult) bind(c, name="hipblasScasum") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasum_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScasum_rank_0,& hipblasScasum_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> asum computes the sum of the magnitudes of elements of a real vector x, !> or the sum of magnitudes of the real and imaginary parts of elements if x is a complex vector. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x and y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. incx must be > 0. !> @param[inout] !> result !> device pointer or host pointer to store the asum product. !> return is 0.0 if n <= 0. !> interface hipblasDzasum #ifdef USE_CUDA_NAMES function hipblasDzasum_(handle,n,x,incx,myResult) bind(c, name="cublasDzasum_v2") #else function hipblasDzasum_(handle,n,x,incx,myResult) bind(c, name="hipblasDzasum") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasum_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDzasum_rank_0,& hipblasDzasum_rank_1 #endif end interface interface hipblasSasumBatched #ifdef USE_CUDA_NAMES function hipblasSasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasSasumBatched") #else function hipblasSasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasSasumBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSasumBatched_full_rank,& hipblasSasumBatched_rank_0,& hipblasSasumBatched_rank_1 #endif end interface interface hipblasDasumBatched #ifdef USE_CUDA_NAMES function hipblasDasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasDasumBatched") #else function hipblasDasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasDasumBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDasumBatched_full_rank,& hipblasDasumBatched_rank_0,& hipblasDasumBatched_rank_1 #endif end interface interface hipblasScasumBatched #ifdef USE_CUDA_NAMES function hipblasScasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasScasumBatched") #else function hipblasScasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasScasumBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScasumBatched_full_rank,& hipblasScasumBatched_rank_0,& hipblasScasumBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> asumBatched computes the sum of the magnitudes of the elements in a batch of real vectors x_i, !> or the sum of magnitudes of the real and imaginary parts of elements if x_i is a complex !> vector, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each vector x_i !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> @param[out] !> result !> device array or host array of batchCount size for results. !> return is 0.0 if n, incx<=0. interface hipblasDzasumBatched #ifdef USE_CUDA_NAMES function hipblasDzasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasDzasumBatched") #else function hipblasDzasumBatched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasDzasumBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDzasumBatched_full_rank,& hipblasDzasumBatched_rank_0,& hipblasDzasumBatched_rank_1 #endif end interface interface hipblasSasumStridedBatched #ifdef USE_CUDA_NAMES function hipblasSasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasSasumStridedBatched") #else function hipblasSasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasSasumStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSasumStridedBatched_rank_0,& hipblasSasumStridedBatched_rank_1 #endif end interface interface hipblasDasumStridedBatched #ifdef USE_CUDA_NAMES function hipblasDasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasDasumStridedBatched") #else function hipblasDasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasDasumStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDasumStridedBatched_rank_0,& hipblasDasumStridedBatched_rank_1 #endif end interface interface hipblasScasumStridedBatched #ifdef USE_CUDA_NAMES function hipblasScasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasScasumStridedBatched") #else function hipblasScasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasScasumStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScasumStridedBatched_rank_0,& hipblasScasumStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> asumStridedBatched computes the sum of the magnitudes of elements of a real vectors x_i, !> or the sum of magnitudes of the real and imaginary parts of elements if x_i is a complex !> vector, for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each vector x_i !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[out] !> result !> device pointer or host pointer to array for storing contiguous batchCount results. !> return is 0.0 if n, incx<=0. interface hipblasDzasumStridedBatched #ifdef USE_CUDA_NAMES function hipblasDzasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasDzasumStridedBatched") #else function hipblasDzasumStridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasDzasumStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDzasumStridedBatched_rank_0,& hipblasDzasumStridedBatched_rank_1 #endif end interface interface hipblasSaxpy #ifdef USE_CUDA_NAMES function hipblasSaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="cublasSaxpy_v2") #else function hipblasSaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="hipblasSaxpy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpy_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSaxpy_rank_0,& hipblasSaxpy_rank_1 #endif end interface interface hipblasDaxpy #ifdef USE_CUDA_NAMES function hipblasDaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="cublasDaxpy_v2") #else function hipblasDaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="hipblasDaxpy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpy_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDaxpy_rank_0,& hipblasDaxpy_rank_1 #endif end interface interface hipblasCaxpy #ifdef USE_CUDA_NAMES function hipblasCaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="cublasCaxpy_v2") #else function hipblasCaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="hipblasCaxpy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpy_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCaxpy_rank_0,& hipblasCaxpy_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> axpy computes ant alpha multiplied by vector x, plus vector y !> !> y := alpha * x + y !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x and y. !> @param[in] !> alpha device pointer or host pointer to specify the scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[out] !> y device pointer storing vector y. !> @param[inout] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZaxpy #ifdef USE_CUDA_NAMES function hipblasZaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="cublasZaxpy_v2") #else function hipblasZaxpy_(handle,n,alpha,x,incx,y,incy) bind(c, name="hipblasZaxpy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpy_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZaxpy_rank_0,& hipblasZaxpy_rank_1 #endif end interface interface hipblasSaxpyBatched #ifdef USE_CUDA_NAMES function hipblasSaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="cublasSaxpyBatched") #else function hipblasSaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="hipblasSaxpyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSaxpyBatched_full_rank,& hipblasSaxpyBatched_rank_0,& hipblasSaxpyBatched_rank_1 #endif end interface interface hipblasDaxpyBatched #ifdef USE_CUDA_NAMES function hipblasDaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="cublasDaxpyBatched") #else function hipblasDaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="hipblasDaxpyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDaxpyBatched_full_rank,& hipblasDaxpyBatched_rank_0,& hipblasDaxpyBatched_rank_1 #endif end interface interface hipblasCaxpyBatched #ifdef USE_CUDA_NAMES function hipblasCaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="cublasCaxpyBatched") #else function hipblasCaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="hipblasCaxpyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCaxpyBatched_full_rank,& hipblasCaxpyBatched_rank_0,& hipblasCaxpyBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> axpyBatched compute y := alpha * x + y over a set of batched vectors. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x and y. !> @param[in] !> alpha specifies the scalar alpha. !> @param[in] !> x pointer storing vector x on the GPU. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[out] !> y pointer storing vector y on the GPU. !> @param[inout] !> incy [int] !> specifies the increment for the elements of y. !> !> @param[in] !> batchCount [int] !> number of instances in the batch interface hipblasZaxpyBatched #ifdef USE_CUDA_NAMES function hipblasZaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="cublasZaxpyBatched") #else function hipblasZaxpyBatched_(handle,n,alpha,x,incx,y,incy,batchCount) bind(c, name="hipblasZaxpyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZaxpyBatched_full_rank,& hipblasZaxpyBatched_rank_0,& hipblasZaxpyBatched_rank_1 #endif end interface interface hipblasSaxpyStridedBatched #ifdef USE_CUDA_NAMES function hipblasSaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasSaxpyStridedBatched") #else function hipblasSaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasSaxpyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSaxpyStridedBatched_rank_0,& hipblasSaxpyStridedBatched_rank_1 #endif end interface interface hipblasDaxpyStridedBatched #ifdef USE_CUDA_NAMES function hipblasDaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasDaxpyStridedBatched") #else function hipblasDaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasDaxpyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDaxpyStridedBatched_rank_0,& hipblasDaxpyStridedBatched_rank_1 #endif end interface interface hipblasCaxpyStridedBatched #ifdef USE_CUDA_NAMES function hipblasCaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasCaxpyStridedBatched") #else function hipblasCaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasCaxpyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCaxpyStridedBatched_rank_0,& hipblasCaxpyStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> axpyStridedBatched compute y := alpha * x + y over a set of strided batched vectors. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> @param[in] !> alpha specifies the scalar alpha. !> @param[in] !> x pointer storing vector x on the GPU. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> stridex [hipblasStride] !> specifies the increment between vectors of x. !> @param[out] !> y pointer storing vector y on the GPU. !> @param[inout] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [hipblasStride] !> specifies the increment between vectors of y. !> !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZaxpyStridedBatched #ifdef USE_CUDA_NAMES function hipblasZaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasZaxpyStridedBatched") #else function hipblasZaxpyStridedBatched_(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasZaxpyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZaxpyStridedBatched_rank_0,& hipblasZaxpyStridedBatched_rank_1 #endif end interface interface hipblasScopy #ifdef USE_CUDA_NAMES function hipblasScopy_(handle,n,x,incx,y,incy) bind(c, name="cublasScopy_v2") #else function hipblasScopy_(handle,n,x,incx,y,incy) bind(c, name="hipblasScopy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScopy_rank_0,& hipblasScopy_rank_1 #endif end interface interface hipblasDcopy #ifdef USE_CUDA_NAMES function hipblasDcopy_(handle,n,x,incx,y,incy) bind(c, name="cublasDcopy_v2") #else function hipblasDcopy_(handle,n,x,incx,y,incy) bind(c, name="hipblasDcopy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDcopy_rank_0,& hipblasDcopy_rank_1 #endif end interface interface hipblasCcopy #ifdef USE_CUDA_NAMES function hipblasCcopy_(handle,n,x,incx,y,incy) bind(c, name="cublasCcopy_v2") #else function hipblasCcopy_(handle,n,x,incx,y,incy) bind(c, name="hipblasCcopy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCcopy_rank_0,& hipblasCcopy_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> copy copies each element x[i] into y[i], for i = 1 , ... , n !> !> y := x, !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x to be copied to y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[out] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZcopy #ifdef USE_CUDA_NAMES function hipblasZcopy_(handle,n,x,incx,y,incy) bind(c, name="cublasZcopy_v2") #else function hipblasZcopy_(handle,n,x,incx,y,incy) bind(c, name="hipblasZcopy") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopy_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZcopy_rank_0,& hipblasZcopy_rank_1 #endif end interface interface hipblasScopyBatched #ifdef USE_CUDA_NAMES function hipblasScopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasScopyBatched") #else function hipblasScopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasScopyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScopyBatched_full_rank,& hipblasScopyBatched_rank_0,& hipblasScopyBatched_rank_1 #endif end interface interface hipblasDcopyBatched #ifdef USE_CUDA_NAMES function hipblasDcopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasDcopyBatched") #else function hipblasDcopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasDcopyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDcopyBatched_full_rank,& hipblasDcopyBatched_rank_0,& hipblasDcopyBatched_rank_1 #endif end interface interface hipblasCcopyBatched #ifdef USE_CUDA_NAMES function hipblasCcopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasCcopyBatched") #else function hipblasCcopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasCcopyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCcopyBatched_full_rank,& hipblasCcopyBatched_rank_0,& hipblasCcopyBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> copyBatched copies each element x_i[j] into y_i[j], for j = 1 , ... , n; i = 1 , ... , batchCount !> !> y_i := x_i, !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i to be copied to y_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i. !> @param[out] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZcopyBatched #ifdef USE_CUDA_NAMES function hipblasZcopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasZcopyBatched") #else function hipblasZcopyBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasZcopyBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZcopyBatched_full_rank,& hipblasZcopyBatched_rank_0,& hipblasZcopyBatched_rank_1 #endif end interface interface hipblasScopyStridedBatched #ifdef USE_CUDA_NAMES function hipblasScopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasScopyStridedBatched") #else function hipblasScopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasScopyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScopyStridedBatched_rank_0,& hipblasScopyStridedBatched_rank_1 #endif end interface interface hipblasDcopyStridedBatched #ifdef USE_CUDA_NAMES function hipblasDcopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasDcopyStridedBatched") #else function hipblasDcopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasDcopyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDcopyStridedBatched_rank_0,& hipblasDcopyStridedBatched_rank_1 #endif end interface interface hipblasCcopyStridedBatched #ifdef USE_CUDA_NAMES function hipblasCcopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasCcopyStridedBatched") #else function hipblasCcopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasCcopyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCcopyStridedBatched_rank_0,& hipblasCcopyStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> copyStridedBatched copies each element x_i[j] into y_i[j], for j = 1 , ... , n; i = 1 , ... , batchCount !> !> y_i := x_i, !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i to be copied to y_i. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [int] !> specifies the increments for the elements of vectors x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[out] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [int] !> specifies the increment for the elements of vectors y_i. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_y, however the user should !> take care to ensure that stride_y is of appropriate size, for a typical !> case this means stride_y >= n * incy. stridey should be non zero. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZcopyStridedBatched #ifdef USE_CUDA_NAMES function hipblasZcopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasZcopyStridedBatched") #else function hipblasZcopyStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasZcopyStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZcopyStridedBatched_rank_0,& hipblasZcopyStridedBatched_rank_1 #endif end interface interface hipblasSdot #ifdef USE_CUDA_NAMES function hipblasSdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="cublasSdot_v2") #else function hipblasSdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="hipblasSdot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSdot_rank_0,& hipblasSdot_rank_1 #endif end interface interface hipblasDdot #ifdef USE_CUDA_NAMES function hipblasDdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="cublasDdot_v2") #else function hipblasDdot_(handle,n,x,incx,y,incy,myResult) bind(c, name="hipblasDdot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDdot_rank_0,& hipblasDdot_rank_1 #endif end interface interface hipblasCdotc #ifdef USE_CUDA_NAMES function hipblasCdotc_(handle,n,x,incx,y,incy,myResult) bind(c, name="cublasCdotc_v2") #else function hipblasCdotc_(handle,n,x,incx,y,incy,myResult) bind(c, name="hipblasCdotc") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotc_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdotc_rank_0,& hipblasCdotc_rank_1 #endif end interface interface hipblasCdotu #ifdef USE_CUDA_NAMES function hipblasCdotu_(handle,n,x,incx,y,incy,myResult) bind(c, name="cublasCdotu_v2") #else function hipblasCdotu_(handle,n,x,incx,y,incy,myResult) bind(c, name="hipblasCdotu") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotu_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdotu_rank_0,& hipblasCdotu_rank_1 #endif end interface interface hipblasZdotc #ifdef USE_CUDA_NAMES function hipblasZdotc_(handle,n,x,incx,y,incy,myResult) bind(c, name="cublasZdotc_v2") #else function hipblasZdotc_(handle,n,x,incx,y,incy,myResult) bind(c, name="hipblasZdotc") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotc_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdotc_rank_0,& hipblasZdotc_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> dot(u) performs the dot product of vectors x and y !> !> result = x * y; !> !> dotc performs the dot product of the conjugate of complex vector x and complex vector y !> !> result = conjugate (x) * y; !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x and y. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of y. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the dot product. !> return is 0.0 if n <= 0. !> interface hipblasZdotu #ifdef USE_CUDA_NAMES function hipblasZdotu_(handle,n,x,incx,y,incy,myResult) bind(c, name="cublasZdotu_v2") #else function hipblasZdotu_(handle,n,x,incx,y,incy,myResult) bind(c, name="hipblasZdotu") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotu_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdotu_rank_0,& hipblasZdotu_rank_1 #endif end interface interface hipblasSdotBatched #ifdef USE_CUDA_NAMES function hipblasSdotBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="cublasSdotBatched") #else function hipblasSdotBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="hipblasSdotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSdotBatched_full_rank,& hipblasSdotBatched_rank_0,& hipblasSdotBatched_rank_1 #endif end interface interface hipblasDdotBatched #ifdef USE_CUDA_NAMES function hipblasDdotBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="cublasDdotBatched") #else function hipblasDdotBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="hipblasDdotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDdotBatched_full_rank,& hipblasDdotBatched_rank_0,& hipblasDdotBatched_rank_1 #endif end interface interface hipblasCdotcBatched #ifdef USE_CUDA_NAMES function hipblasCdotcBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="cublasCdotcBatched") #else function hipblasCdotcBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="hipblasCdotcBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdotcBatched_full_rank,& hipblasCdotcBatched_rank_0,& hipblasCdotcBatched_rank_1 #endif end interface interface hipblasCdotuBatched #ifdef USE_CUDA_NAMES function hipblasCdotuBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="cublasCdotuBatched") #else function hipblasCdotuBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="hipblasCdotuBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdotuBatched_full_rank,& hipblasCdotuBatched_rank_0,& hipblasCdotuBatched_rank_1 #endif end interface interface hipblasZdotcBatched #ifdef USE_CUDA_NAMES function hipblasZdotcBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="cublasZdotcBatched") #else function hipblasZdotcBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="hipblasZdotcBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdotcBatched_full_rank,& hipblasZdotcBatched_rank_0,& hipblasZdotcBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> dotBatched(u) performs a batch of dot products of vectors x and y !> !> result_i = x_i * y_i; !> !> dotcBatched performs a batch of dot products of the conjugate of complex vector x and complex vector y !> !> result_i = conjugate (x_i) * y_i; !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors, for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i and y_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[inout] !> result !> device array or host array of batchCount size to store the dot products of each batch. !> return 0.0 for each element if n <= 0. !> interface hipblasZdotuBatched #ifdef USE_CUDA_NAMES function hipblasZdotuBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="cublasZdotuBatched") #else function hipblasZdotuBatched_(handle,n,x,incx,y,incy,batchCount,myResult) bind(c, name="hipblasZdotuBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdotuBatched_full_rank,& hipblasZdotuBatched_rank_0,& hipblasZdotuBatched_rank_1 #endif end interface interface hipblasSdotStridedBatched #ifdef USE_CUDA_NAMES function hipblasSdotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="cublasSdotStridedBatched") #else function hipblasSdotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="hipblasSdotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSdotStridedBatched_rank_0,& hipblasSdotStridedBatched_rank_1 #endif end interface interface hipblasDdotStridedBatched #ifdef USE_CUDA_NAMES function hipblasDdotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="cublasDdotStridedBatched") #else function hipblasDdotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="hipblasDdotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDdotStridedBatched_rank_0,& hipblasDdotStridedBatched_rank_1 #endif end interface interface hipblasCdotcStridedBatched #ifdef USE_CUDA_NAMES function hipblasCdotcStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="cublasCdotcStridedBatched") #else function hipblasCdotcStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="hipblasCdotcStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdotcStridedBatched_rank_0,& hipblasCdotcStridedBatched_rank_1 #endif end interface interface hipblasCdotuStridedBatched #ifdef USE_CUDA_NAMES function hipblasCdotuStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="cublasCdotuStridedBatched") #else function hipblasCdotuStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="hipblasCdotuStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdotuStridedBatched_rank_0,& hipblasCdotuStridedBatched_rank_1 #endif end interface interface hipblasZdotcStridedBatched #ifdef USE_CUDA_NAMES function hipblasZdotcStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="cublasZdotcStridedBatched") #else function hipblasZdotcStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="hipblasZdotcStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdotcStridedBatched_rank_0,& hipblasZdotcStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> dotStridedBatched(u) performs a batch of dot products of vectors x and y !> !> result_i = x_i * y_i; !> !> dotcStridedBatched performs a batch of dot products of the conjugate of complex vector x and complex vector y !> !> result_i = conjugate (x_i) * y_i; !> !> where (x_i, y_i) is the i-th instance of the batch. !> x_i and y_i are vectors, for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i and y_i. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[inout] !> result !> device array or host array of batchCount size to store the dot products of each batch. !> return 0.0 for each element if n <= 0. !> interface hipblasZdotuStridedBatched #ifdef USE_CUDA_NAMES function hipblasZdotuStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="cublasZdotuStridedBatched") #else function hipblasZdotuStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) bind(c, name="hipblasZdotuStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdotuStridedBatched_rank_0,& hipblasZdotuStridedBatched_rank_1 #endif end interface interface hipblasSnrm2 #ifdef USE_CUDA_NAMES function hipblasSnrm2_(handle,n,x,incx,myResult) bind(c, name="cublasSnrm2_v2") #else function hipblasSnrm2_(handle,n,x,incx,myResult) bind(c, name="hipblasSnrm2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSnrm2_rank_0,& hipblasSnrm2_rank_1 #endif end interface interface hipblasDnrm2 #ifdef USE_CUDA_NAMES function hipblasDnrm2_(handle,n,x,incx,myResult) bind(c, name="cublasDnrm2_v2") #else function hipblasDnrm2_(handle,n,x,incx,myResult) bind(c, name="hipblasDnrm2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDnrm2_rank_0,& hipblasDnrm2_rank_1 #endif end interface interface hipblasScnrm2 #ifdef USE_CUDA_NAMES function hipblasScnrm2_(handle,n,x,incx,myResult) bind(c, name="cublasScnrm2_v2") #else function hipblasScnrm2_(handle,n,x,incx,myResult) bind(c, name="hipblasScnrm2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScnrm2_rank_0,& hipblasScnrm2_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> nrm2 computes the euclidean norm of a real or complex vector !> !> result := sqrt( x'*x ) for real vectors !> result := sqrt( x**H*x ) for complex vectors !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of y. !> @param[inout] !> result !> device pointer or host pointer to store the nrm2 product. !> return is 0.0 if n, incx<=0. interface hipblasDznrm2 #ifdef USE_CUDA_NAMES function hipblasDznrm2_(handle,n,x,incx,myResult) bind(c, name="cublasDznrm2_v2") #else function hipblasDznrm2_(handle,n,x,incx,myResult) bind(c, name="hipblasDznrm2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDznrm2_rank_0,& hipblasDznrm2_rank_1 #endif end interface interface hipblasSnrm2Batched #ifdef USE_CUDA_NAMES function hipblasSnrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasSnrm2Batched") #else function hipblasSnrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasSnrm2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2Batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSnrm2Batched_full_rank,& hipblasSnrm2Batched_rank_0,& hipblasSnrm2Batched_rank_1 #endif end interface interface hipblasDnrm2Batched #ifdef USE_CUDA_NAMES function hipblasDnrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasDnrm2Batched") #else function hipblasDnrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasDnrm2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2Batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDnrm2Batched_full_rank,& hipblasDnrm2Batched_rank_0,& hipblasDnrm2Batched_rank_1 #endif end interface interface hipblasScnrm2Batched #ifdef USE_CUDA_NAMES function hipblasScnrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasScnrm2Batched") #else function hipblasScnrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasScnrm2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2Batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScnrm2Batched_full_rank,& hipblasScnrm2Batched_rank_0,& hipblasScnrm2Batched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> nrm2Batched computes the euclidean norm over a batch of real or complex vectors !> !> result := sqrt( x_i'*x_i ) for real vectors x, for i = 1, ..., batchCount !> result := sqrt( x_i**H*x_i ) for complex vectors x, for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each x_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[out] !> result !> device pointer or host pointer to array of batchCount size for nrm2 results. !> return is 0.0 for each element if n <= 0, incx<=0. !> interface hipblasDznrm2Batched #ifdef USE_CUDA_NAMES function hipblasDznrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="cublasDznrm2Batched") #else function hipblasDznrm2Batched_(handle,n,x,incx,batchCount,myResult) bind(c, name="hipblasDznrm2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2Batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDznrm2Batched_full_rank,& hipblasDznrm2Batched_rank_0,& hipblasDznrm2Batched_rank_1 #endif end interface interface hipblasSnrm2StridedBatched #ifdef USE_CUDA_NAMES function hipblasSnrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasSnrm2StridedBatched") #else function hipblasSnrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasSnrm2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2StridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSnrm2StridedBatched_rank_0,& hipblasSnrm2StridedBatched_rank_1 #endif end interface interface hipblasDnrm2StridedBatched #ifdef USE_CUDA_NAMES function hipblasDnrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasDnrm2StridedBatched") #else function hipblasDnrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasDnrm2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2StridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDnrm2StridedBatched_rank_0,& hipblasDnrm2StridedBatched_rank_1 #endif end interface interface hipblasScnrm2StridedBatched #ifdef USE_CUDA_NAMES function hipblasScnrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasScnrm2StridedBatched") #else function hipblasScnrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasScnrm2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2StridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasScnrm2StridedBatched_rank_0,& hipblasScnrm2StridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> nrm2StridedBatched computes the euclidean norm over a batch of real or complex vectors !> !> := sqrt( x_i'*x_i ) for real vectors x, for i = 1, ..., batchCount !> := sqrt( x_i**H*x_i ) for complex vectors, for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each x_i. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. incx must be > 0. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[in] !> batchCount [int] !> number of instances in the batch !> @param[out] !> result !> device pointer or host pointer to array for storing contiguous batch_count results. !> return is 0.0 for each element if n <= 0, incx<=0. !> interface hipblasDznrm2StridedBatched #ifdef USE_CUDA_NAMES function hipblasDznrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="cublasDznrm2StridedBatched") #else function hipblasDznrm2StridedBatched_(handle,n,x,incx,stridex,batchCount,myResult) bind(c, name="hipblasDznrm2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2StridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount type(c_ptr),value :: myResult end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDznrm2StridedBatched_rank_0,& hipblasDznrm2StridedBatched_rank_1 #endif end interface interface hipblasSrot #ifdef USE_CUDA_NAMES function hipblasSrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="cublasSrot_v2") #else function hipblasSrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="hipblasSrot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSrot_rank_0,& hipblasSrot_rank_1 #endif end interface interface hipblasDrot #ifdef USE_CUDA_NAMES function hipblasDrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="cublasDrot_v2") #else function hipblasDrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="hipblasDrot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDrot_rank_0,& hipblasDrot_rank_1 #endif end interface interface hipblasCrot #ifdef USE_CUDA_NAMES function hipblasCrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="cublasCrot_v2") #else function hipblasCrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="hipblasCrot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCrot_rank_0,& hipblasCrot_rank_1 #endif end interface interface hipblasCsrot #ifdef USE_CUDA_NAMES function hipblasCsrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="cublasCsrot_v2") #else function hipblasCsrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="hipblasCsrot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsrot_rank_0,& hipblasCsrot_rank_1 #endif end interface interface hipblasZrot #ifdef USE_CUDA_NAMES function hipblasZrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="cublasZrot_v2") #else function hipblasZrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="hipblasZrot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZrot_rank_0,& hipblasZrot_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rot applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to vectors x and y. !> Scalars c and s may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment between elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment between elements of y. !> @param[in] !> c device pointer or host pointer storing scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer storing scalar sine component of the rotation matrix. !> interface hipblasZdrot #ifdef USE_CUDA_NAMES function hipblasZdrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="cublasZdrot_v2") #else function hipblasZdrot_(handle,n,x,incx,y,incy,c,s) bind(c, name="hipblasZdrot") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrot_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdrot_rank_0,& hipblasZdrot_rank_1 #endif end interface interface hipblasSrotBatched #ifdef USE_CUDA_NAMES function hipblasSrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="cublasSrotBatched") #else function hipblasSrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="hipblasSrotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSrotBatched_full_rank,& hipblasSrotBatched_rank_0,& hipblasSrotBatched_rank_1 #endif end interface interface hipblasDrotBatched #ifdef USE_CUDA_NAMES function hipblasDrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="cublasDrotBatched") #else function hipblasDrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="hipblasDrotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDrotBatched_full_rank,& hipblasDrotBatched_rank_0,& hipblasDrotBatched_rank_1 #endif end interface interface hipblasCrotBatched #ifdef USE_CUDA_NAMES function hipblasCrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="cublasCrotBatched") #else function hipblasCrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="hipblasCrotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCrotBatched_full_rank,& hipblasCrotBatched_rank_0,& hipblasCrotBatched_rank_1 #endif end interface interface hipblasCsrotBatched #ifdef USE_CUDA_NAMES function hipblasCsrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="cublasCsrotBatched") #else function hipblasCsrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="hipblasCsrotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsrotBatched_full_rank,& hipblasCsrotBatched_rank_0,& hipblasCsrotBatched_rank_1 #endif end interface interface hipblasZrotBatched #ifdef USE_CUDA_NAMES function hipblasZrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="cublasZrotBatched") #else function hipblasZrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="hipblasZrotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZrotBatched_full_rank,& hipblasZrotBatched_rank_0,& hipblasZrotBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotBatched applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to batched vectors x_i and y_i, for i = 1, ..., batchCount. !> Scalars c and s may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each x_i and y_i vectors. !> @param[inout] !> x device array of deivce pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment between elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment between elements of each y_i. !> @param[in] !> c device pointer or host pointer to scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer to scalar sine component of the rotation matrix. !> @param[in] !> batchCount [int] !> the number of x and y arrays, i.e. the number of batches. !> interface hipblasZdrotBatched #ifdef USE_CUDA_NAMES function hipblasZdrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="cublasZdrotBatched") #else function hipblasZdrotBatched_(handle,n,x,incx,y,incy,c,s,batchCount) bind(c, name="hipblasZdrotBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdrotBatched_full_rank,& hipblasZdrotBatched_rank_0,& hipblasZdrotBatched_rank_1 #endif end interface interface hipblasSrotStridedBatched #ifdef USE_CUDA_NAMES function hipblasSrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="cublasSrotStridedBatched") #else function hipblasSrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="hipblasSrotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSrotStridedBatched_rank_0,& hipblasSrotStridedBatched_rank_1 #endif end interface interface hipblasDrotStridedBatched #ifdef USE_CUDA_NAMES function hipblasDrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="cublasDrotStridedBatched") #else function hipblasDrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="hipblasDrotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDrotStridedBatched_rank_0,& hipblasDrotStridedBatched_rank_1 #endif end interface interface hipblasCrotStridedBatched #ifdef USE_CUDA_NAMES function hipblasCrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="cublasCrotStridedBatched") #else function hipblasCrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="hipblasCrotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCrotStridedBatched_rank_0,& hipblasCrotStridedBatched_rank_1 #endif end interface interface hipblasCsrotStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="cublasCsrotStridedBatched") #else function hipblasCsrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="hipblasCsrotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsrotStridedBatched_rank_0,& hipblasCsrotStridedBatched_rank_1 #endif end interface interface hipblasZrotStridedBatched #ifdef USE_CUDA_NAMES function hipblasZrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="cublasZrotStridedBatched") #else function hipblasZrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="hipblasZrotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZrotStridedBatched_rank_0,& hipblasZrotStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotStridedBatched applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to strided batched vectors x_i and y_i, for i = 1, ..., batchCount. !> Scalars c and s may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in each x_i and y_i vectors. !> @param[inout] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment between elements of each x_i. !> @param[in] !> stride_x [hipblasStride] !> specifies the increment from the beginning of x_i to the beginning of x_(i+1) !> @param[inout] !> y device pointer to the first vector y_1. !> @param[in] !> incy [int] !> specifies the increment between elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> specifies the increment from the beginning of y_i to the beginning of y_(i+1) !> @param[in] !> c device pointer or host pointer to scalar cosine component of the rotation matrix. !> @param[in] !> s device pointer or host pointer to scalar sine component of the rotation matrix. !> @param[in] !> batchCount [int] !> the number of x and y arrays, i.e. the number of batches. !> interface hipblasZdrotStridedBatched #ifdef USE_CUDA_NAMES function hipblasZdrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="cublasZdrotStridedBatched") #else function hipblasZdrotStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) bind(c, name="hipblasZdrotStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdrotStridedBatched_rank_0,& hipblasZdrotStridedBatched_rank_1 #endif end interface interface hipblasSrotg #ifdef USE_CUDA_NAMES function hipblasSrotg_(handle,a,b,c,s) bind(c, name="cublasSrotg_v2") #else function hipblasSrotg_(handle,a,b,c,s) bind(c, name="hipblasSrotg") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface interface hipblasDrotg #ifdef USE_CUDA_NAMES function hipblasDrotg_(handle,a,b,c,s) bind(c, name="cublasDrotg_v2") #else function hipblasDrotg_(handle,a,b,c,s) bind(c, name="hipblasDrotg") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface interface hipblasCrotg #ifdef USE_CUDA_NAMES function hipblasCrotg_(handle,a,b,c,s) bind(c, name="cublasCrotg_v2") #else function hipblasCrotg_(handle,a,b,c,s) bind(c, name="hipblasCrotg") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotg creates the Givens rotation matrix for the vector (a b). !> Scalars c and s and arrays a and b may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_DEVICE, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[inout] !> a device pointer or host pointer to input vector element, overwritten with r. !> @param[inout] !> b device pointer or host pointer to input vector element, overwritten with z. !> @param[inout] !> c device pointer or host pointer to cosine element of Givens rotation. !> @param[inout] !> s device pointer or host pointer sine element of Givens rotation. !> interface hipblasZrotg #ifdef USE_CUDA_NAMES function hipblasZrotg_(handle,a,b,c,s) bind(c, name="cublasZrotg_v2") #else function hipblasZrotg_(handle,a,b,c,s) bind(c, name="hipblasZrotg") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotg_ type(c_ptr),value :: handle type(c_ptr),value :: a type(c_ptr),value :: b type(c_ptr),value :: c type(c_ptr),value :: s end function end interface interface hipblasSrotgBatched #ifdef USE_CUDA_NAMES function hipblasSrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="cublasSrotgBatched") #else function hipblasSrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="hipblasSrotgBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotgBatched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batchCount end function end interface interface hipblasDrotgBatched #ifdef USE_CUDA_NAMES function hipblasDrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="cublasDrotgBatched") #else function hipblasDrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="hipblasDrotgBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotgBatched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batchCount end function end interface interface hipblasCrotgBatched #ifdef USE_CUDA_NAMES function hipblasCrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="cublasCrotgBatched") #else function hipblasCrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="hipblasCrotgBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotgBatched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batchCount end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotgBatched creates the Givens rotation matrix for the batched vectors (a_i b_i), for i = 1, ..., batchCount. !> a, b, c, and s may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_DEVICE, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[inout] !> a device array of device pointers storing each single input vector element a_i, overwritten with r_i. !> @param[inout] !> b device array of device pointers storing each single input vector element b_i, overwritten with z_i. !> @param[inout] !> c device array of device pointers storing each cosine element of Givens rotation for the batch. !> @param[inout] !> s device array of device pointers storing each sine element of Givens rotation for the batch. !> @param[in] !> batchCount [int] !> number of batches (length of arrays a, b, c, and s). !> interface hipblasZrotgBatched #ifdef USE_CUDA_NAMES function hipblasZrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="cublasZrotgBatched") #else function hipblasZrotgBatched_(handle,a,b,c,s,batchCount) bind(c, name="hipblasZrotgBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotgBatched_ type(c_ptr),value :: handle type(c_ptr) :: a type(c_ptr) :: b type(c_ptr) :: c type(c_ptr) :: s integer(c_int),value :: batchCount end function end interface interface hipblasSrotgStridedBatched #ifdef USE_CUDA_NAMES function hipblasSrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="cublasSrotgStridedBatched") #else function hipblasSrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="hipblasSrotgStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotgStridedBatched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batchCount end function end interface interface hipblasDrotgStridedBatched #ifdef USE_CUDA_NAMES function hipblasDrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="cublasDrotgStridedBatched") #else function hipblasDrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="hipblasDrotgStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotgStridedBatched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batchCount end function end interface interface hipblasCrotgStridedBatched #ifdef USE_CUDA_NAMES function hipblasCrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="cublasCrotgStridedBatched") #else function hipblasCrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="hipblasCrotgStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotgStridedBatched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batchCount end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotgStridedBatched creates the Givens rotation matrix for the strided batched vectors (a_i b_i), for i = 1, ..., batchCount. !> a, b, c, and s may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[inout] !> a device strided_batched pointer or host strided_batched pointer to first single input vector element a_1, overwritten with r. !> @param[in] !> stride_a [hipblasStride] !> distance between elements of a in batch (distance between a_i and a_(i + 1)) !> @param[inout] !> b device strided_batched pointer or host strided_batched pointer to first single input vector element b_1, overwritten with z. !> @param[in] !> stride_b [hipblasStride] !> distance between elements of b in batch (distance between b_i and b_(i + 1)) !> @param[inout] !> c device strided_batched pointer or host strided_batched pointer to first cosine element of Givens rotations c_1. !> @param[in] !> stride_c [hipblasStride] !> distance between elements of c in batch (distance between c_i and c_(i + 1)) !> @param[inout] !> s device strided_batched pointer or host strided_batched pointer to sine element of Givens rotations s_1. !> @param[in] !> stride_s [hipblasStride] !> distance between elements of s in batch (distance between s_i and s_(i + 1)) !> @param[in] !> batchCount [int] !> number of batches (length of arrays a, b, c, and s). !> interface hipblasZrotgStridedBatched #ifdef USE_CUDA_NAMES function hipblasZrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="cublasZrotgStridedBatched") #else function hipblasZrotgStridedBatched_(handle,a,stride_a,b,stride_b,c,stride_c,s,stride_s,batchCount) bind(c, name="hipblasZrotgStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotgStridedBatched_ type(c_ptr),value :: handle type(c_ptr),value :: a integer(c_int64_t),value :: stride_a type(c_ptr),value :: b integer(c_int64_t),value :: stride_b type(c_ptr),value :: c integer(c_int64_t),value :: stride_c type(c_ptr),value :: s integer(c_int64_t),value :: stride_s integer(c_int),value :: batchCount end function end interface interface hipblasSrotm #ifdef USE_CUDA_NAMES function hipblasSrotm_(handle,n,x,incx,y,incy,param) bind(c, name="cublasSrotm_v2") #else function hipblasSrotm_(handle,n,x,incx,y,incy,param) bind(c, name="hipblasSrotm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotm_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: param end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSrotm_rank_0,& hipblasSrotm_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotm applies the modified Givens rotation matrix defined by param to vectors x and y. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment between elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment between elements of y. !> @param[in] !> param device vector or host vector of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> interface hipblasDrotm #ifdef USE_CUDA_NAMES function hipblasDrotm_(handle,n,x,incx,y,incy,param) bind(c, name="cublasDrotm_v2") #else function hipblasDrotm_(handle,n,x,incx,y,incy,param) bind(c, name="hipblasDrotm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotm_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: param end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDrotm_rank_0,& hipblasDrotm_rank_1 #endif end interface interface hipblasSrotmBatched #ifdef USE_CUDA_NAMES function hipblasSrotmBatched_(handle,n,x,incx,y,incy,param,batchCount) bind(c, name="cublasSrotmBatched") #else function hipblasSrotmBatched_(handle,n,x,incx,y,incy,param,batchCount) bind(c, name="hipblasSrotmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: param integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSrotmBatched_full_rank,& hipblasSrotmBatched_rank_0,& hipblasSrotmBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotmBatched applies the modified Givens rotation matrix defined by param_i to batched vectors x_i and y_i, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in the x and y vectors. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment between elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_1. !> @param[in] !> incy [int] !> specifies the increment between elements of each y_i. !> @param[in] !> param device array of device vectors of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may ONLY be stored on the device for the batched version of this function. !> @param[in] !> batchCount [int] !> the number of x and y arrays, i.e. the number of batches. !> interface hipblasDrotmBatched #ifdef USE_CUDA_NAMES function hipblasDrotmBatched_(handle,n,x,incx,y,incy,param,batchCount) bind(c, name="cublasDrotmBatched") #else function hipblasDrotmBatched_(handle,n,x,incx,y,incy,param,batchCount) bind(c, name="hipblasDrotmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: param integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDrotmBatched_full_rank,& hipblasDrotmBatched_rank_0,& hipblasDrotmBatched_rank_1 #endif end interface interface hipblasSrotmStridedBatched #ifdef USE_CUDA_NAMES function hipblasSrotmStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) bind(c, name="cublasSrotmStridedBatched") #else function hipblasSrotmStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) bind(c, name="hipblasSrotmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: param integer(c_int64_t),value :: strideParam integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSrotmStridedBatched_rank_0,& hipblasSrotmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> rotmStridedBatched applies the modified Givens rotation matrix defined by param_i to strided batched vectors x_i and y_i, for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> number of elements in the x and y vectors. !> @param[inout] !> x device pointer pointing to first strided batched vector x_1. !> @param[in] !> incx [int] !> specifies the increment between elements of each x_i. !> @param[in] !> stride_x [hipblasStride] !> specifies the increment between the beginning of x_i and x_(i + 1) !> @param[inout] !> y device pointer pointing to first strided batched vector y_1. !> @param[in] !> incy [int] !> specifies the increment between elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> specifies the increment between the beginning of y_i and y_(i + 1) !> @param[in] !> param device pointer pointing to first array of 5 elements defining the rotation (param_1). !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may ONLY be stored on the device for the strided_batched version of this function. !> @param[in] !> strideParam [hipblasStride] !> specifies the increment between the beginning of param_i and param_(i + 1) !> @param[in] !> batchCount [int] !> the number of x and y arrays, i.e. the number of batches. !> interface hipblasDrotmStridedBatched #ifdef USE_CUDA_NAMES function hipblasDrotmStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) bind(c, name="cublasDrotmStridedBatched") #else function hipblasDrotmStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) bind(c, name="hipblasDrotmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: param integer(c_int64_t),value :: strideParam integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDrotmStridedBatched_rank_0,& hipblasDrotmStridedBatched_rank_1 #endif end interface interface hipblasSrotmg #ifdef USE_CUDA_NAMES function hipblasSrotmg_(handle,d1,d2,x1,y1,param) bind(c, name="cublasSrotmg_v2") #else function hipblasSrotmg_(handle,d1,d2,x1,y1,param) bind(c, name="hipblasSrotmg") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmg_ type(c_ptr),value :: handle type(c_ptr),value :: d1 type(c_ptr),value :: d2 type(c_ptr),value :: x1 type(c_ptr),value :: y1 type(c_ptr),value :: param end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotmg creates the modified Givens rotation matrix for the vector (d1 * x1, d2 * y1). !> Parameters may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_DEVICE, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[inout] !> d1 device pointer or host pointer to input scalar that is overwritten. !> @param[inout] !> d2 device pointer or host pointer to input scalar that is overwritten. !> @param[inout] !> x1 device pointer or host pointer to input scalar that is overwritten. !> @param[in] !> y1 device pointer or host pointer to input scalar. !> @param[out] !> param device vector or host vector of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> interface hipblasDrotmg #ifdef USE_CUDA_NAMES function hipblasDrotmg_(handle,d1,d2,x1,y1,param) bind(c, name="cublasDrotmg_v2") #else function hipblasDrotmg_(handle,d1,d2,x1,y1,param) bind(c, name="hipblasDrotmg") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmg_ type(c_ptr),value :: handle type(c_ptr),value :: d1 type(c_ptr),value :: d2 type(c_ptr),value :: x1 type(c_ptr),value :: y1 type(c_ptr),value :: param end function end interface interface hipblasSrotmgBatched #ifdef USE_CUDA_NAMES function hipblasSrotmgBatched_(handle,d1,d2,x1,y1,param,batchCount) bind(c, name="cublasSrotmgBatched") #else function hipblasSrotmgBatched_(handle,d1,d2,x1,y1,param,batchCount) bind(c, name="hipblasSrotmgBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmgBatched_ type(c_ptr),value :: handle type(c_ptr) :: d1 type(c_ptr) :: d2 type(c_ptr) :: x1 type(c_ptr) :: y1 type(c_ptr) :: param integer(c_int),value :: batchCount end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotmgBatched creates the modified Givens rotation matrix for the batched vectors (d1_i * x1_i, d2_i * y1_i), for i = 1, ..., batchCount. !> Parameters may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_DEVICE, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[inout] !> d1 device batched array or host batched array of input scalars that is overwritten. !> @param[inout] !> d2 device batched array or host batched array of input scalars that is overwritten. !> @param[inout] !> x1 device batched array or host batched array of input scalars that is overwritten. !> @param[in] !> y1 device batched array or host batched array of input scalars. !> @param[out] !> param device batched array or host batched array of vectors of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> @param[in] !> batchCount [int] !> the number of instances in the batch. !> interface hipblasDrotmgBatched #ifdef USE_CUDA_NAMES function hipblasDrotmgBatched_(handle,d1,d2,x1,y1,param,batchCount) bind(c, name="cublasDrotmgBatched") #else function hipblasDrotmgBatched_(handle,d1,d2,x1,y1,param,batchCount) bind(c, name="hipblasDrotmgBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmgBatched_ type(c_ptr),value :: handle type(c_ptr) :: d1 type(c_ptr) :: d2 type(c_ptr) :: x1 type(c_ptr) :: y1 type(c_ptr) :: param integer(c_int),value :: batchCount end function end interface interface hipblasSrotmgStridedBatched #ifdef USE_CUDA_NAMES function hipblasSrotmgStridedBatched_(handle,d1,stride_d1,d2,stride_d2,x1,stride_x1,y1,stride_y1,param,strideParam,batchCount) bind(c, name="cublasSrotmgStridedBatched") #else function hipblasSrotmgStridedBatched_(handle,d1,stride_d1,d2,stride_d2,x1,stride_x1,y1,stride_y1,param,strideParam,batchCount) bind(c, name="hipblasSrotmgStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmgStridedBatched_ type(c_ptr),value :: handle type(c_ptr),value :: d1 integer(c_int64_t),value :: stride_d1 type(c_ptr),value :: d2 integer(c_int64_t),value :: stride_d2 type(c_ptr),value :: x1 integer(c_int64_t),value :: stride_x1 type(c_ptr),value :: y1 integer(c_int64_t),value :: stride_y1 type(c_ptr),value :: param integer(c_int64_t),value :: strideParam integer(c_int),value :: batchCount end function end interface !> \brief BLAS Level 1 API !> !> \details !> rotmgStridedBatched creates the modified Givens rotation matrix for the strided batched vectors (d1_i * x1_i, d2_i * y1_i), for i = 1, ..., batchCount. !> Parameters may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_HOST, this function blocks the CPU until the GPU has finished and the results are available in host memory. !> If the pointer mode is set to HIPBLAS_POINTER_MODE_DEVICE, this function returns immediately and synchronization is required to read the results. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[inout] !> d1 device strided_batched array or host strided_batched array of input scalars that is overwritten. !> @param[in] !> stride_d1 [hipblasStride] !> specifies the increment between the beginning of d1_i and d1_(i+1) !> @param[inout] !> d2 device strided_batched array or host strided_batched array of input scalars that is overwritten. !> @param[in] !> stride_d2 [hipblasStride] !> specifies the increment between the beginning of d2_i and d2_(i+1) !> @param[inout] !> x1 device strided_batched array or host strided_batched array of input scalars that is overwritten. !> @param[in] !> stride_x1 [hipblasStride] !> specifies the increment between the beginning of x1_i and x1_(i+1) !> @param[in] !> y1 device strided_batched array or host strided_batched array of input scalars. !> @param[in] !> stride_y1 [hipblasStride] !> specifies the increment between the beginning of y1_i and y1_(i+1) !> @param[out] !> param device stridedBatched array or host stridedBatched array of vectors of 5 elements defining the rotation. !> param[0] = flag !> param[1] = H11 !> param[2] = H21 !> param[3] = H12 !> param[4] = H22 !> The flag parameter defines the form of H: !> flag = -1 => H = ( H11 H12 H21 H22 ) !> flag = 0 => H = ( 1.0 H12 H21 1.0 ) !> flag = 1 => H = ( H11 1.0 -1.0 H22 ) !> flag = -2 => H = ( 1.0 0.0 0.0 1.0 ) !> param may be stored in either host or device memory, location is specified by calling hipblasSetPointerMode. !> @param[in] !> strideParam [hipblasStride] !> specifies the increment between the beginning of param_i and param_(i + 1) !> @param[in] !> batchCount [int] !> the number of instances in the batch. !> interface hipblasDrotmgStridedBatched #ifdef USE_CUDA_NAMES function hipblasDrotmgStridedBatched_(handle,d1,stride_d1,d2,stride_d2,x1,stride_x1,y1,stride_y1,param,strideParam,batchCount) bind(c, name="cublasDrotmgStridedBatched") #else function hipblasDrotmgStridedBatched_(handle,d1,stride_d1,d2,stride_d2,x1,stride_x1,y1,stride_y1,param,strideParam,batchCount) bind(c, name="hipblasDrotmgStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmgStridedBatched_ type(c_ptr),value :: handle type(c_ptr),value :: d1 integer(c_int64_t),value :: stride_d1 type(c_ptr),value :: d2 integer(c_int64_t),value :: stride_d2 type(c_ptr),value :: x1 integer(c_int64_t),value :: stride_x1 type(c_ptr),value :: y1 integer(c_int64_t),value :: stride_y1 type(c_ptr),value :: param integer(c_int64_t),value :: strideParam integer(c_int),value :: batchCount end function end interface interface hipblasSscal #ifdef USE_CUDA_NAMES function hipblasSscal_(handle,n,alpha,x,incx) bind(c, name="cublasSscal_v2") #else function hipblasSscal_(handle,n,alpha,x,incx) bind(c, name="hipblasSscal") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscal_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSscal_rank_0,& hipblasSscal_rank_1 #endif end interface interface hipblasDscal #ifdef USE_CUDA_NAMES function hipblasDscal_(handle,n,alpha,x,incx) bind(c, name="cublasDscal_v2") #else function hipblasDscal_(handle,n,alpha,x,incx) bind(c, name="hipblasDscal") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscal_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDscal_rank_0,& hipblasDscal_rank_1 #endif end interface interface hipblasCscal #ifdef USE_CUDA_NAMES function hipblasCscal_(handle,n,alpha,x,incx) bind(c, name="cublasCscal_v2") #else function hipblasCscal_(handle,n,alpha,x,incx) bind(c, name="hipblasCscal") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscal_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCscal_rank_0,& hipblasCscal_rank_1 #endif end interface interface hipblasCsscal #ifdef USE_CUDA_NAMES function hipblasCsscal_(handle,n,alpha,x,incx) bind(c, name="cublasCsscal_v2") #else function hipblasCsscal_(handle,n,alpha,x,incx) bind(c, name="hipblasCsscal") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscal_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsscal_rank_0,& hipblasCsscal_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> scal scales each element of vector x with scalar alpha. !> !> x := alpha * x !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x. !> @param[in] !> alpha device pointer or host pointer for the scalar alpha. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> !> interface hipblasZscal #ifdef USE_CUDA_NAMES function hipblasZscal_(handle,n,alpha,x,incx) bind(c, name="cublasZscal_v2") #else function hipblasZscal_(handle,n,alpha,x,incx) bind(c, name="hipblasZscal") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscal_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZscal_rank_0,& hipblasZscal_rank_1 #endif end interface interface hipblasZdscal #ifdef USE_CUDA_NAMES function hipblasZdscal_(handle,n,alpha,x,incx) bind(c, name="cublasZdscal_v2") #else function hipblasZdscal_(handle,n,alpha,x,incx) bind(c, name="hipblasZdscal") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscal_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdscal_rank_0,& hipblasZdscal_rank_1 #endif end interface interface hipblasSscalBatched #ifdef USE_CUDA_NAMES function hipblasSscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="cublasSscalBatched") #else function hipblasSscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="hipblasSscalBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSscalBatched_full_rank,& hipblasSscalBatched_rank_0,& hipblasSscalBatched_rank_1 #endif end interface interface hipblasDscalBatched #ifdef USE_CUDA_NAMES function hipblasDscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="cublasDscalBatched") #else function hipblasDscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="hipblasDscalBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDscalBatched_full_rank,& hipblasDscalBatched_rank_0,& hipblasDscalBatched_rank_1 #endif end interface interface hipblasCscalBatched #ifdef USE_CUDA_NAMES function hipblasCscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="cublasCscalBatched") #else function hipblasCscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="hipblasCscalBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCscalBatched_full_rank,& hipblasCscalBatched_rank_0,& hipblasCscalBatched_rank_1 #endif end interface interface hipblasZscalBatched #ifdef USE_CUDA_NAMES function hipblasZscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="cublasZscalBatched") #else function hipblasZscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="hipblasZscalBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZscalBatched_full_rank,& hipblasZscalBatched_rank_0,& hipblasZscalBatched_rank_1 #endif end interface interface hipblasCsscalBatched #ifdef USE_CUDA_NAMES function hipblasCsscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="cublasCsscalBatched") #else function hipblasCsscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="hipblasCsscalBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsscalBatched_full_rank,& hipblasCsscalBatched_rank_0,& hipblasCsscalBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> \details !> scalBatched scales each element of vector x_i with scalar alpha, for i = 1, ... , batchCount. !> !> x_i := alpha * x_i !> !> where (x_i) is the i-th instance of the batch. !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i. !> @param[in] !> alpha host pointer or device pointer for the scalar alpha. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batchCount [int] !> specifies the number of batches in x. interface hipblasZdscalBatched #ifdef USE_CUDA_NAMES function hipblasZdscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="cublasZdscalBatched") #else function hipblasZdscalBatched_(handle,n,alpha,x,incx,batchCount) bind(c, name="hipblasZdscalBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdscalBatched_full_rank,& hipblasZdscalBatched_rank_0,& hipblasZdscalBatched_rank_1 #endif end interface interface hipblasSscalStridedBatched #ifdef USE_CUDA_NAMES function hipblasSscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="cublasSscalStridedBatched") #else function hipblasSscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="hipblasSscalStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSscalStridedBatched_rank_0,& hipblasSscalStridedBatched_rank_1 #endif end interface interface hipblasDscalStridedBatched #ifdef USE_CUDA_NAMES function hipblasDscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="cublasDscalStridedBatched") #else function hipblasDscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="hipblasDscalStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDscalStridedBatched_rank_0,& hipblasDscalStridedBatched_rank_1 #endif end interface interface hipblasCscalStridedBatched #ifdef USE_CUDA_NAMES function hipblasCscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="cublasCscalStridedBatched") #else function hipblasCscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="hipblasCscalStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCscalStridedBatched_rank_0,& hipblasCscalStridedBatched_rank_1 #endif end interface interface hipblasZscalStridedBatched #ifdef USE_CUDA_NAMES function hipblasZscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="cublasZscalStridedBatched") #else function hipblasZscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="hipblasZscalStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZscalStridedBatched_rank_0,& hipblasZscalStridedBatched_rank_1 #endif end interface interface hipblasCsscalStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="cublasCsscalStridedBatched") #else function hipblasCsscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="hipblasCsscalStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsscalStridedBatched_rank_0,& hipblasCsscalStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> \details !> scalStridedBatched scales each element of vector x_i with scalar alpha, for i = 1, ... , batchCount. !> !> x_i := alpha * x_i , !> !> where (x_i) is the i-th instance of the batch. !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i. !> @param[in] !> alpha host pointer or device pointer for the scalar alpha. !> @param[inout] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[in] !> batchCount [int] !> specifies the number of batches in x. interface hipblasZdscalStridedBatched #ifdef USE_CUDA_NAMES function hipblasZdscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="cublasZdscalStridedBatched") #else function hipblasZdscalStridedBatched_(handle,n,alpha,x,incx,stridex,batchCount) bind(c, name="hipblasZdscalStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdscalStridedBatched_rank_0,& hipblasZdscalStridedBatched_rank_1 #endif end interface interface hipblasSswap #ifdef USE_CUDA_NAMES function hipblasSswap_(handle,n,x,incx,y,incy) bind(c, name="cublasSswap_v2") #else function hipblasSswap_(handle,n,x,incx,y,incy) bind(c, name="hipblasSswap") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswap_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSswap_rank_0,& hipblasSswap_rank_1 #endif end interface interface hipblasDswap #ifdef USE_CUDA_NAMES function hipblasDswap_(handle,n,x,incx,y,incy) bind(c, name="cublasDswap_v2") #else function hipblasDswap_(handle,n,x,incx,y,incy) bind(c, name="hipblasDswap") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswap_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDswap_rank_0,& hipblasDswap_rank_1 #endif end interface interface hipblasCswap #ifdef USE_CUDA_NAMES function hipblasCswap_(handle,n,x,incx,y,incy) bind(c, name="cublasCswap_v2") #else function hipblasCswap_(handle,n,x,incx,y,incy) bind(c, name="hipblasCswap") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswap_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCswap_rank_0,& hipblasCswap_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> swap interchanges vectors x and y. !> !> y := x; x := y !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in x and y. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZswap #ifdef USE_CUDA_NAMES function hipblasZswap_(handle,n,x,incx,y,incy) bind(c, name="cublasZswap_v2") #else function hipblasZswap_(handle,n,x,incx,y,incy) bind(c, name="hipblasZswap") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswap_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZswap_rank_0,& hipblasZswap_rank_1 #endif end interface interface hipblasSswapBatched #ifdef USE_CUDA_NAMES function hipblasSswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasSswapBatched") #else function hipblasSswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasSswapBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSswapBatched_full_rank,& hipblasSswapBatched_rank_0,& hipblasSswapBatched_rank_1 #endif end interface interface hipblasDswapBatched #ifdef USE_CUDA_NAMES function hipblasDswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasDswapBatched") #else function hipblasDswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasDswapBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDswapBatched_full_rank,& hipblasDswapBatched_rank_0,& hipblasDswapBatched_rank_1 #endif end interface interface hipblasCswapBatched #ifdef USE_CUDA_NAMES function hipblasCswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasCswapBatched") #else function hipblasCswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasCswapBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCswapBatched_full_rank,& hipblasCswapBatched_rank_0,& hipblasCswapBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> swapBatched interchanges vectors x_i and y_i, for i = 1 , ... , batchCount !> !> y_i := x_i; x_i := y_i !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i and y_i. !> @param[inout] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZswapBatched #ifdef USE_CUDA_NAMES function hipblasZswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="cublasZswapBatched") #else function hipblasZswapBatched_(handle,n,x,incx,y,incy,batchCount) bind(c, name="hipblasZswapBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZswapBatched_full_rank,& hipblasZswapBatched_rank_0,& hipblasZswapBatched_rank_1 #endif end interface interface hipblasSswapStridedBatched #ifdef USE_CUDA_NAMES function hipblasSswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasSswapStridedBatched") #else function hipblasSswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasSswapStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSswapStridedBatched_rank_0,& hipblasSswapStridedBatched_rank_1 #endif end interface interface hipblasDswapStridedBatched #ifdef USE_CUDA_NAMES function hipblasDswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasDswapStridedBatched") #else function hipblasDswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasDswapStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDswapStridedBatched_rank_0,& hipblasDswapStridedBatched_rank_1 #endif end interface interface hipblasCswapStridedBatched #ifdef USE_CUDA_NAMES function hipblasCswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasCswapStridedBatched") #else function hipblasCswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasCswapStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCswapStridedBatched_rank_0,& hipblasCswapStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 1 API !> !> \details !> swapStridedBatched interchanges vectors x_i and y_i, for i = 1 , ... , batchCount !> !> y_i := x_i; x_i := y_i !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> n [int] !> the number of elements in each x_i and y_i. !> @param[inout] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_x is of appropriate size, for a typical !> case this means stride_x >= n * incx. !> @param[inout] !> y device pointer to the first vector y_1. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stride_x, however the user should !> take care to ensure that stride_y is of appropriate size, for a typical !> case this means stride_y >= n * incy. stridey should be non zero. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZswapStridedBatched #ifdef USE_CUDA_NAMES function hipblasZswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="cublasZswapStridedBatched") #else function hipblasZswapStridedBatched_(handle,n,x,incx,stridex,y,incy,stridey,batchCount) bind(c, name="hipblasZswapStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZswapStridedBatched_rank_0,& hipblasZswapStridedBatched_rank_1 #endif end interface interface hipblasSgbmv #ifdef USE_CUDA_NAMES function hipblasSgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasSgbmv_v2") #else function hipblasSgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasSgbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgbmv_full_rank,& hipblasSgbmv_rank_0,& hipblasSgbmv_rank_1 #endif end interface interface hipblasDgbmv #ifdef USE_CUDA_NAMES function hipblasDgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasDgbmv_v2") #else function hipblasDgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasDgbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgbmv_full_rank,& hipblasDgbmv_rank_0,& hipblasDgbmv_rank_1 #endif end interface interface hipblasCgbmv #ifdef USE_CUDA_NAMES function hipblasCgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasCgbmv_v2") #else function hipblasCgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasCgbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgbmv_full_rank,& hipblasCgbmv_rank_0,& hipblasCgbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gbmv performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y, or !> y := alpha*A**T*x + beta*y, or !> y := alpha*A**H*x + beta*y, !> !> where alpha and beta are scalars, x and y are vectors and A is an !> m by n banded matrix with kl sub-diagonals and ku super-diagonals. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [int] !> number of rows of matrix A !> @param[in] !> n [int] !> number of columns of matrix A !> @param[in] !> kl [int] !> number of sub-diagonals of A !> @param[in] !> ku [int] !> number of super-diagonals of A !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing banded matrix A. !> Leading (kl + ku + 1) by n part of the matrix contains the coefficients !> of the banded matrix. The leading diagonal resides in row (ku + 1) with !> the first super-diagonal above on the RHS of row ku. The first sub-diagonal !> resides below on the LHS of row ku + 2. This propogates up and down across !> sub/super-diagonals. !> Ex: (m = n = 7; ku = 2, kl = 2) !> 1 2 3 0 0 0 0 0 0 3 3 3 3 3 !> 4 1 2 3 0 0 0 0 2 2 2 2 2 2 !> 5 4 1 2 3 0 0 ----> 1 1 1 1 1 1 1 !> 0 5 4 1 2 3 0 4 4 4 4 4 4 0 !> 0 0 5 4 1 2 0 5 5 5 5 5 0 0 !> 0 0 0 5 4 1 2 0 0 0 0 0 0 0 !> 0 0 0 0 5 4 1 0 0 0 0 0 0 0 !> Note that the empty elements which don't correspond to data will not !> be referenced. !> @param[in] !> lda [int] !> specifies the leading dimension of A. Must be >= (kl + ku + 1) !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZgbmv #ifdef USE_CUDA_NAMES function hipblasZgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasZgbmv_v2") #else function hipblasZgbmv_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasZgbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgbmv_full_rank,& hipblasZgbmv_rank_0,& hipblasZgbmv_rank_1 #endif end interface interface hipblasSgbmvBatched #ifdef USE_CUDA_NAMES function hipblasSgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasSgbmvBatched") #else function hipblasSgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasSgbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgbmvBatched_full_rank,& hipblasSgbmvBatched_rank_0,& hipblasSgbmvBatched_rank_1 #endif end interface interface hipblasDgbmvBatched #ifdef USE_CUDA_NAMES function hipblasDgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasDgbmvBatched") #else function hipblasDgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasDgbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgbmvBatched_full_rank,& hipblasDgbmvBatched_rank_0,& hipblasDgbmvBatched_rank_1 #endif end interface interface hipblasCgbmvBatched #ifdef USE_CUDA_NAMES function hipblasCgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasCgbmvBatched") #else function hipblasCgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasCgbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgbmvBatched_full_rank,& hipblasCgbmvBatched_rank_0,& hipblasCgbmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gbmvBatched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n banded matrix with kl sub-diagonals and ku super-diagonals, !> for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [int] !> number of rows of each matrix A_i !> @param[in] !> n [int] !> number of columns of each matrix A_i !> @param[in] !> kl [int] !> number of sub-diagonals of each A_i !> @param[in] !> ku [int] !> number of super-diagonals of each A_i !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each banded matrix A_i. !> Leading (kl + ku + 1) by n part of the matrix contains the coefficients !> of the banded matrix. The leading diagonal resides in row (ku + 1) with !> the first super-diagonal above on the RHS of row ku. The first sub-diagonal !> resides below on the LHS of row ku + 2. This propogates up and down across !> sub/super-diagonals. !> Ex: (m = n = 7; ku = 2, kl = 2) !> 1 2 3 0 0 0 0 0 0 3 3 3 3 3 !> 4 1 2 3 0 0 0 0 2 2 2 2 2 2 !> 5 4 1 2 3 0 0 ----> 1 1 1 1 1 1 1 !> 0 5 4 1 2 3 0 4 4 4 4 4 4 0 !> 0 0 5 4 1 2 0 5 5 5 5 5 0 0 !> 0 0 0 5 4 1 2 0 0 0 0 0 0 0 !> 0 0 0 0 5 4 1 0 0 0 0 0 0 0 !> Note that the empty elements which don't correspond to data will not !> be referenced. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. Must be >= (kl + ku + 1) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> batchCount [int] !> specifies the number of instances in the batch. !> interface hipblasZgbmvBatched #ifdef USE_CUDA_NAMES function hipblasZgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasZgbmvBatched") #else function hipblasZgbmvBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasZgbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgbmvBatched_full_rank,& hipblasZgbmvBatched_rank_0,& hipblasZgbmvBatched_rank_1 #endif end interface interface hipblasSgbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasSgbmvStridedBatched") #else function hipblasSgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasSgbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgbmvStridedBatched_full_rank,& hipblasSgbmvStridedBatched_rank_0,& hipblasSgbmvStridedBatched_rank_1 #endif end interface interface hipblasDgbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasDgbmvStridedBatched") #else function hipblasDgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasDgbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgbmvStridedBatched_full_rank,& hipblasDgbmvStridedBatched_rank_0,& hipblasDgbmvStridedBatched_rank_1 #endif end interface interface hipblasCgbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasCgbmvStridedBatched") #else function hipblasCgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasCgbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgbmvStridedBatched_full_rank,& hipblasCgbmvStridedBatched_rank_0,& hipblasCgbmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gbmvStridedBatched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n banded matrix with kl sub-diagonals and ku super-diagonals, !> for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [int] !> number of rows of matrix A !> @param[in] !> n [int] !> number of columns of matrix A !> @param[in] !> kl [int] !> number of sub-diagonals of A !> @param[in] !> ku [int] !> number of super-diagonals of A !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer to first banded matrix (A_1). !> Leading (kl + ku + 1) by n part of the matrix contains the coefficients !> of the banded matrix. The leading diagonal resides in row (ku + 1) with !> the first super-diagonal above on the RHS of row ku. The first sub-diagonal !> resides below on the LHS of row ku + 2. This propogates up and down across !> sub/super-diagonals. !> Ex: (m = n = 7; ku = 2, kl = 2) !> 1 2 3 0 0 0 0 0 0 3 3 3 3 3 !> 4 1 2 3 0 0 0 0 2 2 2 2 2 2 !> 5 4 1 2 3 0 0 ----> 1 1 1 1 1 1 1 !> 0 5 4 1 2 3 0 4 4 4 4 4 4 0 !> 0 0 5 4 1 2 0 5 5 5 5 5 0 0 !> 0 0 0 5 4 1 2 0 0 0 0 0 0 0 !> 0 0 0 0 5 4 1 0 0 0 0 0 0 0 !> Note that the empty elements which don't correspond to data will not !> be referenced. !> @param[in] !> lda [int] !> specifies the leading dimension of A. Must be >= (kl + ku + 1) !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x device pointer to first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer to first vector (y_1). !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (x_i+1) !> @param[in] !> batchCount [int] !> specifies the number of instances in the batch. !> interface hipblasZgbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasZgbmvStridedBatched") #else function hipblasZgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasZgbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: kl integer(c_int),value :: ku complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgbmvStridedBatched_full_rank,& hipblasZgbmvStridedBatched_rank_0,& hipblasZgbmvStridedBatched_rank_1 #endif end interface interface hipblasSgemv #ifdef USE_CUDA_NAMES function hipblasSgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasSgemv_v2") #else function hipblasSgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasSgemv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgemv_full_rank,& hipblasSgemv_rank_0,& hipblasSgemv_rank_1 #endif end interface interface hipblasDgemv #ifdef USE_CUDA_NAMES function hipblasDgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasDgemv_v2") #else function hipblasDgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasDgemv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgemv_full_rank,& hipblasDgemv_rank_0,& hipblasDgemv_rank_1 #endif end interface interface hipblasCgemv #ifdef USE_CUDA_NAMES function hipblasCgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasCgemv_v2") #else function hipblasCgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasCgemv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgemv_full_rank,& hipblasCgemv_rank_0,& hipblasCgemv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gemv performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y, or !> y := alpha*A**T*x + beta*y, or !> y := alpha*A**H*x + beta*y, !> !> where alpha and beta are scalars, x and y are vectors and A is an !> m by n matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether matrix A is tranposed (conjugated) or not !> @param[in] !> m [int] !> number of rows of matrix A !> @param[in] !> n [int] !> number of columns of matrix A !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZgemv #ifdef USE_CUDA_NAMES function hipblasZgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasZgemv_v2") #else function hipblasZgemv_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasZgemv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgemv_full_rank,& hipblasZgemv_rank_0,& hipblasZgemv_rank_1 #endif end interface interface hipblasSgemvBatched #ifdef USE_CUDA_NAMES function hipblasSgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasSgemvBatched") #else function hipblasSgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasSgemvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgemvBatched_full_rank,& hipblasSgemvBatched_rank_0,& hipblasSgemvBatched_rank_1 #endif end interface interface hipblasDgemvBatched #ifdef USE_CUDA_NAMES function hipblasDgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasDgemvBatched") #else function hipblasDgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasDgemvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgemvBatched_full_rank,& hipblasDgemvBatched_rank_0,& hipblasDgemvBatched_rank_1 #endif end interface interface hipblasCgemvBatched #ifdef USE_CUDA_NAMES function hipblasCgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasCgemvBatched") #else function hipblasCgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasCgemvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgemvBatched_full_rank,& hipblasCgemvBatched_rank_0,& hipblasCgemvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gemvBatched performs a batch of matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether matrices A_i are tranposed (conjugated) or not !> @param[in] !> m [int] !> number of rows of each matrix A_i !> @param[in] !> n [int] !> number of columns of each matrix A_i !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [int] !> specifies the leading dimension of each matrix A_i. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZgemvBatched #ifdef USE_CUDA_NAMES function hipblasZgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasZgemvBatched") #else function hipblasZgemvBatched_(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasZgemvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgemvBatched_full_rank,& hipblasZgemvBatched_rank_0,& hipblasZgemvBatched_rank_1 #endif end interface interface hipblasSgemvStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasSgemvStridedBatched") #else function hipblasSgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasSgemvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgemvStridedBatched_full_rank,& hipblasSgemvStridedBatched_rank_0,& hipblasSgemvStridedBatched_rank_1 #endif end interface interface hipblasDgemvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasDgemvStridedBatched") #else function hipblasDgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasDgemvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgemvStridedBatched_full_rank,& hipblasDgemvStridedBatched_rank_0,& hipblasDgemvStridedBatched_rank_1 #endif end interface interface hipblasCgemvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasCgemvStridedBatched") #else function hipblasCgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasCgemvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgemvStridedBatched_full_rank,& hipblasCgemvStridedBatched_rank_0,& hipblasCgemvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gemvStridedBatched performs a batch of matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i, or !> y_i := alpha*A_i**T*x_i + beta*y_i, or !> y_i := alpha*A_i**H*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> transA [hipblasOperation_t] !> indicates whether matrices A_i are tranposed (conjugated) or not !> @param[in] !> m [int] !> number of rows of matrices A_i !> @param[in] !> n [int] !> number of columns of matrices A_i !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer to the first matrix (A_1) in the batch. !> @param[in] !> lda [int] !> specifies the leading dimension of matrices A_i. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [int] !> specifies the increment for the elements of vectors x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size. When trans equals HIPBLAS_OP_N !> this typically means stridex >= n * incx, otherwise stridex >= m * incx. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [int] !> specifies the increment for the elements of vectors y_i. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size. When trans equals HIPBLAS_OP_N !> this typically means stridey >= m * incy, otherwise stridey >= n * incy. stridey should be non zero. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZgemvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasZgemvStridedBatched") #else function hipblasZgemvStridedBatched_(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasZgemvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgemvStridedBatched_full_rank,& hipblasZgemvStridedBatched_rank_0,& hipblasZgemvStridedBatched_rank_1 #endif end interface interface hipblasSger #ifdef USE_CUDA_NAMES function hipblasSger_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasSger_v2") #else function hipblasSger_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasSger") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSger_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSger_full_rank,& hipblasSger_rank_0,& hipblasSger_rank_1 #endif end interface interface hipblasDger #ifdef USE_CUDA_NAMES function hipblasDger_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasDger_v2") #else function hipblasDger_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasDger") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDger_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDger_full_rank,& hipblasDger_rank_0,& hipblasDger_rank_1 #endif end interface interface hipblasCgeru #ifdef USE_CUDA_NAMES function hipblasCgeru_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasCgeru_v2") #else function hipblasCgeru_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasCgeru") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeru_full_rank,& hipblasCgeru_rank_0,& hipblasCgeru_rank_1 #endif end interface interface hipblasCgerc #ifdef USE_CUDA_NAMES function hipblasCgerc_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasCgerc_v2") #else function hipblasCgerc_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasCgerc") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgerc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgerc_full_rank,& hipblasCgerc_rank_0,& hipblasCgerc_rank_1 #endif end interface interface hipblasZgeru #ifdef USE_CUDA_NAMES function hipblasZgeru_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasZgeru_v2") #else function hipblasZgeru_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasZgeru") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeru_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeru_full_rank,& hipblasZgeru_rank_0,& hipblasZgeru_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> ger,geru,gerc performs the matrix-vector operations !> !> A := A + alpha*x*y**T , OR !> A := A + alpha*x*y**H for gerc !> !> where alpha is a scalar, x and y are vectors, and A is an !> m by n matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> m [int] !> the number of rows of the matrix A. !> @param[in] !> n [int] !> the number of columns of the matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[inout] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> interface hipblasZgerc #ifdef USE_CUDA_NAMES function hipblasZgerc_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasZgerc_v2") #else function hipblasZgerc_(handle,m,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasZgerc") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgerc_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgerc_full_rank,& hipblasZgerc_rank_0,& hipblasZgerc_rank_1 #endif end interface interface hipblasSgerBatched #ifdef USE_CUDA_NAMES function hipblasSgerBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasSgerBatched") #else function hipblasSgerBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasSgerBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgerBatched_full_rank,& hipblasSgerBatched_rank_0,& hipblasSgerBatched_rank_1 #endif end interface interface hipblasDgerBatched #ifdef USE_CUDA_NAMES function hipblasDgerBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasDgerBatched") #else function hipblasDgerBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasDgerBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgerBatched_full_rank,& hipblasDgerBatched_rank_0,& hipblasDgerBatched_rank_1 #endif end interface interface hipblasCgeruBatched #ifdef USE_CUDA_NAMES function hipblasCgeruBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasCgeruBatched") #else function hipblasCgeruBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasCgeruBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeruBatched_full_rank,& hipblasCgeruBatched_rank_0,& hipblasCgeruBatched_rank_1 #endif end interface interface hipblasCgercBatched #ifdef USE_CUDA_NAMES function hipblasCgercBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasCgercBatched") #else function hipblasCgercBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasCgercBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgercBatched_full_rank,& hipblasCgercBatched_rank_0,& hipblasCgercBatched_rank_1 #endif end interface interface hipblasZgeruBatched #ifdef USE_CUDA_NAMES function hipblasZgeruBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasZgeruBatched") #else function hipblasZgeruBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasZgeruBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeruBatched_full_rank,& hipblasZgeruBatched_rank_0,& hipblasZgeruBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gerBatched,geruBatched,gercBatched performs a batch of the matrix-vector operations !> !> A := A + alpha*x*y**T , OR !> A := A + alpha*x*y**H for gerc !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha is a scalar, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> m [int] !> the number of rows of each matrix A_i. !> @param[in] !> n [int] !> the number of columns of eaceh matrix A_i. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i. !> @param[inout] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZgercBatched #ifdef USE_CUDA_NAMES function hipblasZgercBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasZgercBatched") #else function hipblasZgercBatched_(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasZgercBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgercBatched_full_rank,& hipblasZgercBatched_rank_0,& hipblasZgercBatched_rank_1 #endif end interface interface hipblasSgerStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgerStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasSgerStridedBatched") #else function hipblasSgerStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasSgerStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgerStridedBatched_full_rank,& hipblasSgerStridedBatched_rank_0,& hipblasSgerStridedBatched_rank_1 #endif end interface interface hipblasDgerStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgerStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasDgerStridedBatched") #else function hipblasDgerStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasDgerStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgerStridedBatched_full_rank,& hipblasDgerStridedBatched_rank_0,& hipblasDgerStridedBatched_rank_1 #endif end interface interface hipblasCgeruStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgeruStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasCgeruStridedBatched") #else function hipblasCgeruStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasCgeruStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeruStridedBatched_full_rank,& hipblasCgeruStridedBatched_rank_0,& hipblasCgeruStridedBatched_rank_1 #endif end interface interface hipblasCgercStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgercStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasCgercStridedBatched") #else function hipblasCgercStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasCgercStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgercStridedBatched_full_rank,& hipblasCgercStridedBatched_rank_0,& hipblasCgercStridedBatched_rank_1 #endif end interface interface hipblasZgeruStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgeruStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasZgeruStridedBatched") #else function hipblasZgeruStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasZgeruStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeruStridedBatched_full_rank,& hipblasZgeruStridedBatched_rank_0,& hipblasZgeruStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> gerStridedBatched,geruStridedBatched,gercStridedBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**T, OR !> A_i := A_i + alpha*x_i*y_i**H for gerc !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha is a scalar, x_i and y_i are vectors and A_i is an !> m by n matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> m [int] !> the number of rows of each matrix A_i. !> @param[in] !> n [int] !> the number of columns of each matrix A_i. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer to the first vector (x_1) in the batch. !> @param[in] !> incx [int] !> specifies the increments for the elements of each vector x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size, for a typical !> case this means stridex >= m * incx. !> @param[inout] !> y device pointer to the first vector (y_1) in the batch. !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size, for a typical !> case this means stridey >= n * incy. !> @param[inout] !> A device pointer to the first matrix (A_1) in the batch. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZgercStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgercStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasZgercStridedBatched") #else function hipblasZgercStridedBatched_(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasZgercStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgercStridedBatched_full_rank,& hipblasZgercStridedBatched_rank_0,& hipblasZgercStridedBatched_rank_1 #endif end interface interface hipblasChbmv #ifdef USE_CUDA_NAMES function hipblasChbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasChbmv_v2") #else function hipblasChbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasChbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChbmv_full_rank,& hipblasChbmv_rank_0,& hipblasChbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hbmv performs the matrix-vector operations !> !> y := alpha*A*x + beta*y !> !> where alpha and beta are scalars, x and y are n element vectors and A is an !> n by n Hermitian band matrix, with k super-diagonals. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is being supplied. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is being supplied. !> @param[in] !> n [int] !> the order of the matrix A. !> @param[in] !> k [int] !> the number of super-diagonals of the matrix A. Must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing matrix A. Of dimension (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The leading (k + 1) by n part of A must contain the upper !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (k + 1), the first super-diagonal on the RHS !> of row k, etc. !> The top left k by x triangle of A will not be referenced. !> Ex (upper, lda = n = 4, k = 1): !> A Represented matrix !> (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) !> (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0) !> !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The leading (k + 1) by n part of A must contain the lower !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (1), the first sub-diagonal on the LHS of !> row 2, etc. !> The bottom right k by k triangle of A will not be referenced. !> Ex (lower, lda = 2, n = 4, k = 1): !> A Represented matrix !> (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) !> (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) !> (0, 0) (6, 8) (3, 0) (7,-7) !> (0, 0) (0, 0) (7, 7) (4, 0) !> !> As a Hermitian matrix, the imaginary part of the main diagonal !> of A will not be referenced and is assumed to be == 0. !> @param[in] !> lda [int] !> specifies the leading dimension of A. must be >= k + 1 !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZhbmv #ifdef USE_CUDA_NAMES function hipblasZhbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasZhbmv_v2") #else function hipblasZhbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasZhbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhbmv_full_rank,& hipblasZhbmv_rank_0,& hipblasZhbmv_rank_1 #endif end interface interface hipblasChbmvBatched #ifdef USE_CUDA_NAMES function hipblasChbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasChbmvBatched") #else function hipblasChbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasChbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChbmvBatched_full_rank,& hipblasChbmvBatched_rank_0,& hipblasChbmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hbmvBatched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian band matrix with k super-diagonals, for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is being supplied. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is being supplied. !> @param[in] !> n [int] !> the order of each matrix A_i. !> @param[in] !> k [int] !> the number of super-diagonals of each matrix A_i. Must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The leading (k + 1) by n part of each A_i must contain the upper !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (k + 1), the first super-diagonal on the RHS !> of row k, etc. !> The top left k by x triangle of each A_i will not be referenced. !> Ex (upper, lda = n = 4, k = 1): !> A Represented matrix !> (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) !> (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0) !> !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The leading (k + 1) by n part of each A_i must contain the lower !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (1), the first sub-diagonal on the LHS of !> row 2, etc. !> The bottom right k by k triangle of each A_i will not be referenced. !> Ex (lower, lda = 2, n = 4, k = 1): !> A Represented matrix !> (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) !> (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) !> (0, 0) (6, 8) (3, 0) (7,-7) !> (0, 0) (0, 0) (7, 7) (4, 0) !> !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhbmvBatched #ifdef USE_CUDA_NAMES function hipblasZhbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasZhbmvBatched") #else function hipblasZhbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasZhbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhbmvBatched_full_rank,& hipblasZhbmvBatched_rank_0,& hipblasZhbmvBatched_rank_1 #endif end interface interface hipblasChbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasChbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasChbmvStridedBatched") #else function hipblasChbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasChbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChbmvStridedBatched_full_rank,& hipblasChbmvStridedBatched_rank_0,& hipblasChbmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hbmvStridedBatched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian band matrix with k super-diagonals, for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is being supplied. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is being supplied. !> @param[in] !> n [int] !> the order of each matrix A_i. !> @param[in] !> k [int] !> the number of super-diagonals of each matrix A_i. Must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array pointing to the first matrix A_1. Each A_i is of dimension (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The leading (k + 1) by n part of each A_i must contain the upper !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (k + 1), the first super-diagonal on the RHS !> of row k, etc. !> The top left k by x triangle of each A_i will not be referenced. !> Ex (upper, lda = n = 4, k = 1): !> A Represented matrix !> (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) !> (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) !> (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0) !> !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The leading (k + 1) by n part of each A_i must contain the lower !> triangular band part of the Hermitian matrix, with the leading !> diagonal in row (1), the first sub-diagonal on the LHS of !> row 2, etc. !> The bottom right k by k triangle of each A_i will not be referenced. !> Ex (lower, lda = 2, n = 4, k = 1): !> A Represented matrix !> (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) !> (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) !> (0, 0) (6, 8) (3, 0) (7,-7) !> (0, 0) (0, 0) (7, 7) (4, 0) !> !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x device array pointing to the first vector y_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1) !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array pointing to the first vector y_1. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZhbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasZhbmvStridedBatched") #else function hipblasZhbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasZhbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhbmvStridedBatched_full_rank,& hipblasZhbmvStridedBatched_rank_0,& hipblasZhbmvStridedBatched_rank_1 #endif end interface interface hipblasChemv #ifdef USE_CUDA_NAMES function hipblasChemv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasChemv_v2") #else function hipblasChemv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasChemv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChemv_full_rank,& hipblasChemv_rank_0,& hipblasChemv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hemv performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y !> !> where alpha and beta are scalars, x and y are n element vectors and A is an !> n by n Hermitian matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: the upper triangular part of the Hermitian matrix A is supplied. !> HIPBLAS_FILL_MODE_LOWER: the lower triangular part of the Hermitian matrix A is supplied. !> @param[in] !> n [int] !> the order of the matrix A. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device pointer storing matrix A. Of dimension (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular part of A must contain !> the upper triangular part of a Hermitian matrix. The lower !> triangular part of A will not be referenced. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular part of A must contain !> the lower triangular part of a Hermitian matrix. The upper !> triangular part of A will not be referenced. !> As a Hermitian matrix, the imaginary part of the main diagonal !> of A will not be referenced and is assumed to be == 0. !> @param[in] !> lda [int] !> specifies the leading dimension of A. must be >= max(1, n) !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZhemv #ifdef USE_CUDA_NAMES function hipblasZhemv_(handle,uplo,n,alpha,A,da,x,incx,beta,y,incy) bind(c, name="cublasZhemv_v2") #else function hipblasZhemv_(handle,uplo,n,alpha,A,da,x,incx,beta,y,incy) bind(c, name="hipblasZhemv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: da type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhemv_full_rank,& hipblasZhemv_rank_0,& hipblasZhemv_rank_1 #endif end interface interface hipblasChemvBatched #ifdef USE_CUDA_NAMES function hipblasChemvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasChemvBatched") #else function hipblasChemvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasChemvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChemvBatched_full_rank,& hipblasChemvBatched_rank_0,& hipblasChemvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hemvBatched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: the upper triangular part of the Hermitian matrix A is supplied. !> HIPBLAS_FILL_MODE_LOWER: the lower triangular part of the Hermitian matrix A is supplied. !> @param[in] !> n [int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i of dimension (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular part of each A_i must contain !> the upper triangular part of a Hermitian matrix. The lower !> triangular part of each A_i will not be referenced. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular part of each A_i must contain !> the lower triangular part of a Hermitian matrix. The upper !> triangular part of each A_i will not be referenced. !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhemvBatched #ifdef USE_CUDA_NAMES function hipblasZhemvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasZhemvBatched") #else function hipblasZhemvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasZhemvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhemvBatched_full_rank,& hipblasZhemvBatched_rank_0,& hipblasZhemvBatched_rank_1 #endif end interface interface hipblasChemvStridedBatched #ifdef USE_CUDA_NAMES function hipblasChemvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasChemvStridedBatched") #else function hipblasChemvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasChemvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChemvStridedBatched_full_rank,& hipblasChemvStridedBatched_rank_0,& hipblasChemvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hemvStridedBatched performs one of the matrix-vector operations !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: the upper triangular part of the Hermitian matrix A is supplied. !> HIPBLAS_FILL_MODE_LOWER: the lower triangular part of the Hermitian matrix A is supplied. !> @param[in] !> n [int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i of dimension (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular part of each A_i must contain !> the upper triangular part of a Hermitian matrix. The lower !> triangular part of each A_i will not be referenced. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular part of each A_i must contain !> the lower triangular part of a Hermitian matrix. The upper !> triangular part of each A_i will not be referenced. !> As a Hermitian matrix, the imaginary part of the main diagonal !> of each A_i will not be referenced and is assumed to be == 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. must be >= max(1, n) !> @param[in] !> strideA [hipblasStride] !> stride from the start of one (A_i) to the next (A_i+1) !> !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhemvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZhemvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasZhemvStridedBatched") #else function hipblasZhemvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasZhemvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhemvStridedBatched_full_rank,& hipblasZhemvStridedBatched_rank_0,& hipblasZhemvStridedBatched_rank_1 #endif end interface interface hipblasCher #ifdef USE_CUDA_NAMES function hipblasCher_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="cublasCher_v2") #else function hipblasCher_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="hipblasCher") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher_full_rank,& hipblasCher_rank_0,& hipblasCher_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her performs the matrix-vector operations !> !> A := A + alpha*x*x**H !> !> where alpha is a real scalar, x is a vector, and A is an !> n by n Hermitian matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is supplied in A. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is supplied in A. !> @param[in] !> n [int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[inout] !> A device pointer storing the specified triangular portion of !> the Hermitian matrix A. Of size (lda * n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the Hermitian matrix A is supplied. The lower !> triangluar portion will not be touched. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the Hermitian matrix A is supplied. The upper !> triangular portion will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [int] !> specifies the leading dimension of A. Must be at least max(1, n). interface hipblasZher #ifdef USE_CUDA_NAMES function hipblasZher_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="cublasZher_v2") #else function hipblasZher_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="hipblasZher") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher_full_rank,& hipblasZher_rank_0,& hipblasZher_rank_1 #endif end interface interface hipblasCherBatched #ifdef USE_CUDA_NAMES function hipblasCherBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="cublasCherBatched") #else function hipblasCherBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="hipblasCherBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherBatched_full_rank,& hipblasCherBatched_rank_0,& hipblasCherBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> herBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in A. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in A. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> A device array of device pointers storing the specified triangular portion of !> each Hermitian matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batchCount. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular portion !> of each A_i will not be touched. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular portion !> of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. Must be at least max(1, n). !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZherBatched #ifdef USE_CUDA_NAMES function hipblasZherBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="cublasZherBatched") #else function hipblasZherBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="hipblasZherBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherBatched_full_rank,& hipblasZherBatched_rank_0,& hipblasZherBatched_rank_1 #endif end interface interface hipblasCherStridedBatched #ifdef USE_CUDA_NAMES function hipblasCherStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) bind(c, name="cublasCherStridedBatched") #else function hipblasCherStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) bind(c, name="hipblasCherStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherStridedBatched_full_rank,& hipblasCherStridedBatched_rank_0,& hipblasCherStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> herStridedBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n Hermitian matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in A. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in A. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[inout] !> A device array of device pointers storing the specified triangular portion of !> each Hermitian matrix A_i. Points to the first matrix (A_1). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular !> portion of each A_i will not be touched. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular !> portion of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZherStridedBatched #ifdef USE_CUDA_NAMES function hipblasZherStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) bind(c, name="cublasZherStridedBatched") #else function hipblasZherStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) bind(c, name="hipblasZherStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherStridedBatched_full_rank,& hipblasZherStridedBatched_rank_0,& hipblasZherStridedBatched_rank_1 #endif end interface interface hipblasCher2 #ifdef USE_CUDA_NAMES function hipblasCher2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasCher2_v2") #else function hipblasCher2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasCher2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher2_full_rank,& hipblasCher2_rank_0,& hipblasCher2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her2 performs the matrix-vector operations !> !> A := A + alpha*x*y**H + conj(alpha)*y*x**H !> !> where alpha is a complex scalar, x and y are vectors, and A is an !> n by n Hermitian matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is supplied. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is supplied. !> @param[in] !> n [int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[inout] !> A device pointer storing the specified triangular portion of !> the Hermitian matrix A. Of size (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the Hermitian matrix A is supplied. The lower triangular !> portion of A will not be touched. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the Hermitian matrix A is supplied. The upper triangular !> portion of A will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [int] !> specifies the leading dimension of A. Must be at least max(lda, 1). interface hipblasZher2 #ifdef USE_CUDA_NAMES function hipblasZher2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasZher2_v2") #else function hipblasZher2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasZher2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher2_full_rank,& hipblasZher2_rank_0,& hipblasZher2_rank_1 #endif end interface interface hipblasCher2Batched #ifdef USE_CUDA_NAMES function hipblasCher2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasCher2Batched") #else function hipblasCher2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasCher2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher2Batched_full_rank,& hipblasCher2Batched_rank_0,& hipblasCher2Batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her2Batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n Hermitian matrix for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> A device array of device pointers storing the specified triangular portion of !> each Hermitian matrix A_i of size (lda, n). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular !> portion of each A_i will not be touched. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular !> portion of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. Must be at least max(lda, 1). !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZher2Batched #ifdef USE_CUDA_NAMES function hipblasZher2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasZher2Batched") #else function hipblasZher2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasZher2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher2Batched_full_rank,& hipblasZher2Batched_rank_0,& hipblasZher2Batched_rank_1 #endif end interface interface hipblasCher2StridedBatched #ifdef USE_CUDA_NAMES function hipblasCher2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasCher2StridedBatched") #else function hipblasCher2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasCher2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher2StridedBatched_full_rank,& hipblasCher2StridedBatched_rank_0,& hipblasCher2StridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> her2StridedBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n Hermitian matrix for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> specifies the stride between the beginning of one vector (x_i) and the next (x_i+1). !> @param[in] !> y device pointer pointing to the first vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> specifies the stride between the beginning of one vector (y_i) and the next (y_i+1). !> @param[inout] !> A device pointer pointing to the first matrix (A_1). Stores the specified triangular portion of !> each Hermitian matrix A_i. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular !> portion of each A_i will not be touched. !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular !> portion of each A_i will not be touched. !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. Must be at least max(lda, 1). !> @param[in] !> strideA [hipblasStride] !> specifies the stride between the beginning of one matrix (A_i) and the next (A_i+1). !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZher2StridedBatched #ifdef USE_CUDA_NAMES function hipblasZher2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasZher2StridedBatched") #else function hipblasZher2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasZher2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher2StridedBatched_full_rank,& hipblasZher2StridedBatched_rank_0,& hipblasZher2StridedBatched_rank_1 #endif end interface interface hipblasChpmv #ifdef USE_CUDA_NAMES function hipblasChpmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="cublasChpmv_v2") #else function hipblasChpmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="hipblasChpmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpmv_rank_0,& hipblasChpmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpmv performs the matrix-vector operation !> !> y := alpha*A*x + beta*y !> !> where alpha and beta are scalars, x and y are n element vectors and A is an !> n by n Hermitian matrix, supplied in packed form (see description below). !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: the upper triangular part of the Hermitian matrix A is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: the lower triangular part of the Hermitian matrix A is supplied in AP. !> @param[in] !> n [int] !> the order of the matrix A, must be >= 0. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> AP device pointer storing the packed version of the specified triangular portion of !> the Hermitian matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,1), (4,0), (3,2), (5,-1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,-1), (3,-2), (4,0), (5,1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> interface hipblasZhpmv #ifdef USE_CUDA_NAMES function hipblasZhpmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="cublasZhpmv_v2") #else function hipblasZhpmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="hipblasZhpmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpmv_rank_0,& hipblasZhpmv_rank_1 #endif end interface interface hipblasChpmvBatched #ifdef USE_CUDA_NAMES function hipblasChpmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="cublasChpmvBatched") #else function hipblasChpmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasChpmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpmvBatched_full_rank,& hipblasChpmvBatched_rank_0,& hipblasChpmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpmvBatched performs the matrix-vector operation !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, supplied in packed form (see description below), !> for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: the upper triangular part of each Hermitian matrix A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: the lower triangular part of each Hermitian matrix A_i is supplied in AP. !> @param[in] !> n [int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> AP device pointer of device pointers storing the packed version of the specified triangular !> portion of each Hermitian matrix A_i. Each A_i is of at least size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,1), (4,0), (3,2), (5,-1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,-1), (3,-2), (4,0), (5,1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhpmvBatched #ifdef USE_CUDA_NAMES function hipblasZhpmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="cublasZhpmvBatched") #else function hipblasZhpmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasZhpmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpmvBatched_full_rank,& hipblasZhpmvBatched_rank_0,& hipblasZhpmvBatched_rank_1 #endif end interface interface hipblasChpmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasChpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasChpmvStridedBatched") #else function hipblasChpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasChpmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpmvStridedBatched_rank_0,& hipblasChpmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpmvStridedBatched performs the matrix-vector operation !> !> y_i := alpha*A_i*x_i + beta*y_i !> !> where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an !> n by n Hermitian matrix, supplied in packed form (see description below), !> for each batch in i = [1, batchCount]. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: the upper triangular part of each Hermitian matrix A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: the lower triangular part of each Hermitian matrix A_i is supplied in AP. !> @param[in] !> n [int] !> the order of each matrix A_i. !> @param[in] !> alpha device pointer or host pointer to scalar alpha. !> @param[in] !> AP device pointer pointing to the beginning of the first matrix (AP_1). Stores the packed !> version of the specified triangular portion of each Hermitian matrix AP_i of size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,1), (4,0), (3,2), (5,-1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that each AP_i contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (3, 2) !> (2,-1) (4, 0) (5,-1) -----> [(1,0), (2,-1), (3,-2), (4,0), (5,1), (6,0)] !> (3,-2) (5, 1) (6, 0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (AP_i) and the next one (AP_i+1). !> @param[in] !> x device array pointing to the beginning of the first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> beta device pointer or host pointer to scalar beta. !> @param[inout] !> y device array pointing to the beginning of the first vector (y_1). !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhpmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZhpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasZhpmvStridedBatched") #else function hipblasZhpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasZhpmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpmvStridedBatched_rank_0,& hipblasZhpmvStridedBatched_rank_1 #endif end interface interface hipblasChpr #ifdef USE_CUDA_NAMES function hipblasChpr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="cublasChpr_v2") #else function hipblasChpr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="hipblasChpr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpr_rank_0,& hipblasChpr_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr performs the matrix-vector operations !> !> A := A + alpha*x*x**H !> !> where alpha is a real scalar, x is a vector, and A is an !> n by n Hermitian matrix, supplied in packed form. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the Hermitian matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. interface hipblasZhpr #ifdef USE_CUDA_NAMES function hipblasZhpr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="cublasZhpr_v2") #else function hipblasZhpr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="hipblasZhpr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpr_rank_0,& hipblasZhpr_rank_1 #endif end interface interface hipblasChprBatched #ifdef USE_CUDA_NAMES function hipblasChprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="cublasChprBatched") #else function hipblasChprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="hipblasChprBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChprBatched_full_rank,& hipblasChprBatched_rank_0,& hipblasChprBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hprBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batchCount. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZhprBatched #ifdef USE_CUDA_NAMES function hipblasZhprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="cublasZhprBatched") #else function hipblasZhprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="hipblasZhprBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhprBatched_full_rank,& hipblasZhprBatched_rank_0,& hipblasZhprBatched_rank_1 #endif end interface interface hipblasChprStridedBatched #ifdef USE_CUDA_NAMES function hipblasChprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="cublasChprStridedBatched") #else function hipblasChprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="hipblasChprStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChprStridedBatched_rank_0,& hipblasChprStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hprStridedBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**H !> !> where alpha is a real scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i. Points to the first matrix (A_1). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> strideAP [hipblasStride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZhprStridedBatched #ifdef USE_CUDA_NAMES function hipblasZhprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="cublasZhprStridedBatched") #else function hipblasZhprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="hipblasZhprStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhprStridedBatched_rank_0,& hipblasZhprStridedBatched_rank_1 #endif end interface interface hipblasChpr2 #ifdef USE_CUDA_NAMES function hipblasChpr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="cublasChpr2_v2") #else function hipblasChpr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="hipblasChpr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpr2_rank_0,& hipblasChpr2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr2 performs the matrix-vector operations !> !> A := A + alpha*x*y**H + conj(alpha)*y*x**H !> !> where alpha is a complex scalar, x and y are vectors, and A is an !> n by n Hermitian matrix, supplied in packed form. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the Hermitian matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the Hermitian matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. interface hipblasZhpr2 #ifdef USE_CUDA_NAMES function hipblasZhpr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="cublasZhpr2_v2") #else function hipblasZhpr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="hipblasZhpr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpr2_rank_0,& hipblasZhpr2_rank_1 #endif end interface interface hipblasChpr2Batched #ifdef USE_CUDA_NAMES function hipblasChpr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="cublasChpr2Batched") #else function hipblasChpr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="hipblasChpr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpr2Batched_full_rank,& hipblasChpr2Batched_rank_0,& hipblasChpr2Batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr2Batched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batchCount. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZhpr2Batched #ifdef USE_CUDA_NAMES function hipblasZhpr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="cublasZhpr2Batched") #else function hipblasZhpr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="hipblasZhpr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpr2Batched_full_rank,& hipblasZhpr2Batched_rank_0,& hipblasZhpr2Batched_rank_1 #endif end interface interface hipblasChpr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasChpr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="cublasChpr2StridedBatched") #else function hipblasChpr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="hipblasChpr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChpr2StridedBatched_rank_0,& hipblasChpr2StridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> hpr2StridedBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*y_i**H + conj(alpha)*y_i*x_i**H !> !> where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> y device pointer pointing to the first vector (y_1). !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each Hermitian matrix A_i. Points to the first matrix (A_1). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,1), (3,0), (4,9), (5,3), (6,0)] !> (4,-9) (5,-3) (6,0) !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each Hermitian matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 3) !> (1, 0) (2, 1) (4,9) !> (2,-1) (3, 0) (5,3) -----> [(1,0), (2,-1), (4,-9), (3,0), (5,-3), (6,0)] !> (4,-9) (5,-3) (6,0) !> Note that the imaginary part of the diagonal elements are not accessed and are assumed !> to be 0. !> @param[in] !> strideAP [hipblasStride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZhpr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasZhpr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="cublasZhpr2StridedBatched") #else function hipblasZhpr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="hipblasZhpr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhpr2StridedBatched_rank_0,& hipblasZhpr2StridedBatched_rank_1 #endif end interface interface hipblasSsbmv #ifdef USE_CUDA_NAMES function hipblasSsbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasSsbmv_v2") #else function hipblasSsbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasSsbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsbmv_full_rank,& hipblasSsbmv_rank_0,& hipblasSsbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sbmv performs the matrix-vector operation: !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A should contain an upper or lower triangular n by n symmetric banded matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> @param[in] !> k [int] !> specifies the number of sub- and super-diagonals !> @param[in] !> alpha !> specifies the scalar alpha !> @param[in] !> A pointer storing matrix A on the GPU !> @param[in] !> lda [int] !> specifies the leading dimension of matrix A !> @param[in] !> x pointer storing vector x on the GPU !> @param[in] !> incx [int] !> specifies the increment for the elements of x !> @param[in] !> beta specifies the scalar beta !> @param[out] !> y pointer storing vector y on the GPU !> @param[in] !> incy [int] !> specifies the increment for the elements of y !> interface hipblasDsbmv #ifdef USE_CUDA_NAMES function hipblasDsbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasDsbmv_v2") #else function hipblasDsbmv_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasDsbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsbmv_full_rank,& hipblasDsbmv_rank_0,& hipblasDsbmv_rank_1 #endif end interface interface hipblasSsbmvBatched #ifdef USE_CUDA_NAMES function hipblasSsbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasSsbmvBatched") #else function hipblasSsbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasSsbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsbmvBatched_full_rank,& hipblasSsbmvBatched_rank_0,& hipblasSsbmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sbmvBatched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric banded matrix, for i = 1, ..., batchCount. !> A should contain an upper or lower triangular n by n symmetric banded matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> number of rows and columns of each matrix A_i !> @param[in] !> k [int] !> specifies the number of sub- and super-diagonals !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A device array of device pointers storing each matrix A_i !> @param[in] !> lda [int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> x device array of device pointers storing each vector x_i !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y device array of device pointers storing each vector y_i !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasDsbmvBatched #ifdef USE_CUDA_NAMES function hipblasDsbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasDsbmvBatched") #else function hipblasDsbmvBatched_(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasDsbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsbmvBatched_full_rank,& hipblasDsbmvBatched_rank_0,& hipblasDsbmvBatched_rank_1 #endif end interface interface hipblasSsbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasSsbmvStridedBatched") #else function hipblasSsbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasSsbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsbmvStridedBatched_full_rank,& hipblasSsbmvStridedBatched_rank_0,& hipblasSsbmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sbmvStridedBatched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric banded matrix, for i = 1, ..., batchCount. !> A should contain an upper or lower triangular n by n symmetric banded matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> number of rows and columns of each matrix A_i !> @param[in] !> k [int] !> specifies the number of sub- and super-diagonals !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU !> @param[in] !> lda [int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x Device pointer to the first vector x_1 on the GPU !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size. !> This typically means stridex >= n * incx. stridex should be non zero. !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y Device pointer to the first vector y_1 on the GPU !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size. !> This typically means stridey >= n * incy. stridey should be non zero. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasDsbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasDsbmvStridedBatched") #else function hipblasDsbmvStridedBatched_(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasDsbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsbmvStridedBatched_full_rank,& hipblasDsbmvStridedBatched_rank_0,& hipblasDsbmvStridedBatched_rank_1 #endif end interface interface hipblasSspmv #ifdef USE_CUDA_NAMES function hipblasSspmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="cublasSspmv_v2") #else function hipblasSspmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="hipblasSspmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspmv_rank_0,& hipblasSspmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spmv performs the matrix-vector operation: !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A should contain an upper or lower triangular n by n packed symmetric matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> @param[in] !> alpha !> specifies the scalar alpha !> @param[in] !> A pointer storing matrix A on the GPU !> @param[in] !> x pointer storing vector x on the GPU !> @param[in] !> incx [int] !> specifies the increment for the elements of x !> @param[in] !> beta specifies the scalar beta !> @param[out] !> y pointer storing vector y on the GPU !> @param[in] !> incy [int] !> specifies the increment for the elements of y !> interface hipblasDspmv #ifdef USE_CUDA_NAMES function hipblasDspmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="cublasDspmv_v2") #else function hipblasDspmv_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) bind(c, name="hipblasDspmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspmv_rank_0,& hipblasDspmv_rank_1 #endif end interface interface hipblasSspmvBatched #ifdef USE_CUDA_NAMES function hipblasSspmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="cublasSspmvBatched") #else function hipblasSspmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasSspmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspmvBatched_full_rank,& hipblasSspmvBatched_rank_0,& hipblasSspmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spmvBatched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batchCount. !> A should contain an upper or lower triangular n by n packed symmetric matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A device array of device pointers storing each matrix A_i !> @param[in] !> x device array of device pointers storing each vector x_i !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y device array of device pointers storing each vector y_i !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasDspmvBatched #ifdef USE_CUDA_NAMES function hipblasDspmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="cublasDspmvBatched") #else function hipblasDspmvBatched_(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasDspmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspmvBatched_full_rank,& hipblasDspmvBatched_rank_0,& hipblasDspmvBatched_rank_1 #endif end interface interface hipblasSspmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasSspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasSspmvStridedBatched") #else function hipblasSspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasSspmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspmvStridedBatched_rank_0,& hipblasSspmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spmvStridedBatched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batchCount. !> A should contain an upper or lower triangular n by n packed symmetric matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x Device pointer to the first vector x_1 on the GPU !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size. !> This typically means stridex >= n * incx. stridex should be non zero. !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y Device pointer to the first vector y_1 on the GPU !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size. !> This typically means stridey >= n * incy. stridey should be non zero. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasDspmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasDspmvStridedBatched") #else function hipblasDspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasDspmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspmvStridedBatched_rank_0,& hipblasDspmvStridedBatched_rank_1 #endif end interface interface hipblasSspr #ifdef USE_CUDA_NAMES function hipblasSspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="cublasSspr_v2") #else function hipblasSspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="hipblasSspr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspr_rank_0,& hipblasSspr_rank_1 #endif end interface interface hipblasDspr #ifdef USE_CUDA_NAMES function hipblasDspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="cublasDspr_v2") #else function hipblasDspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="hipblasDspr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspr_rank_0,& hipblasDspr_rank_1 #endif end interface interface hipblasCspr #ifdef USE_CUDA_NAMES function hipblasCspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="cublasCspr") #else function hipblasCspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="hipblasCspr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCspr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCspr_rank_0,& hipblasCspr_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr performs the matrix-vector operations !> !> A := A + alpha*x*x**T !> !> where alpha is a scalar, x is a vector, and A is an !> n by n symmetric matrix, supplied in packed form. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the symmetric matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 interface hipblasZspr #ifdef USE_CUDA_NAMES function hipblasZspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="cublasZspr") #else function hipblasZspr_(handle,uplo,n,alpha,x,incx,AP) bind(c, name="hipblasZspr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZspr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZspr_rank_0,& hipblasZspr_rank_1 #endif end interface interface hipblasSsprBatched #ifdef USE_CUDA_NAMES function hipblasSsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="cublasSsprBatched") #else function hipblasSsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="hipblasSsprBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsprBatched_full_rank,& hipblasSsprBatched_rank_0,& hipblasSsprBatched_rank_1 #endif end interface interface hipblasDsprBatched #ifdef USE_CUDA_NAMES function hipblasDsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="cublasDsprBatched") #else function hipblasDsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="hipblasDsprBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsprBatched_full_rank,& hipblasDsprBatched_rank_0,& hipblasDsprBatched_rank_1 #endif end interface interface hipblasCsprBatched #ifdef USE_CUDA_NAMES function hipblasCsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="cublasCsprBatched") #else function hipblasCsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="hipblasCsprBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsprBatched_full_rank,& hipblasCsprBatched_rank_0,& hipblasCsprBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sprBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**T !> !> where alpha is a scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each symmetric matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batchCount. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZsprBatched #ifdef USE_CUDA_NAMES function hipblasZsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="cublasZsprBatched") #else function hipblasZsprBatched_(handle,uplo,n,alpha,x,incx,AP,batchCount) bind(c, name="hipblasZsprBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsprBatched_full_rank,& hipblasZsprBatched_rank_0,& hipblasZsprBatched_rank_1 #endif end interface interface hipblasSsprStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="cublasSsprStridedBatched") #else function hipblasSsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="hipblasSsprStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsprStridedBatched_rank_0,& hipblasSsprStridedBatched_rank_1 #endif end interface interface hipblasDsprStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="cublasDsprStridedBatched") #else function hipblasDsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="hipblasDsprStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsprStridedBatched_rank_0,& hipblasDsprStridedBatched_rank_1 #endif end interface interface hipblasCsprStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="cublasCsprStridedBatched") #else function hipblasCsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="hipblasCsprStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsprStridedBatched_rank_0,& hipblasCsprStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> sprStridedBatched performs the matrix-vector operations !> !> A_i := A_i + alpha*x_i*x_i**T !> !> where alpha is a scalar, x_i is a vector, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> each symmetric matrix A_i. Points to the first A_1. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(2) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> strideA [hipblasStride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasZsprStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="cublasZsprStridedBatched") #else function hipblasZsprStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) bind(c, name="hipblasZsprStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsprStridedBatched_rank_0,& hipblasZsprStridedBatched_rank_1 #endif end interface interface hipblasSspr2 #ifdef USE_CUDA_NAMES function hipblasSspr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="cublasSspr2_v2") #else function hipblasSspr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="hipblasSspr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspr2_rank_0,& hipblasSspr2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr2 performs the matrix-vector operation !> !> A := A + alpha*x*y**T + alpha*y*x**T !> !> where alpha is a scalar, x and y are vectors, and A is an !> n by n symmetric matrix, supplied in packed form. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of A is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of A is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of matrix A, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> the symmetric matrix A. Of at least size ((n * (n + 1)) 2). !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of the symmetric matrix A is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(n) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 interface hipblasDspr2 #ifdef USE_CUDA_NAMES function hipblasDspr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="cublasDspr2_v2") #else function hipblasDspr2_(handle,uplo,n,alpha,x,incx,y,incy,AP) bind(c, name="hipblasDspr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: AP end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspr2_rank_0,& hipblasDspr2_rank_1 #endif end interface interface hipblasSspr2Batched #ifdef USE_CUDA_NAMES function hipblasSspr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="cublasSspr2Batched") #else function hipblasSspr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="hipblasSspr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspr2Batched_full_rank,& hipblasSspr2Batched_rank_0,& hipblasSspr2Batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr2Batched performs the matrix-vector operation !> !> A_i := A_i + alpha*x_i*y_i**T + alpha*y_i*x_i**T !> !> where alpha is a scalar, x_i and y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> AP device array of device pointers storing the packed version of the specified triangular portion of !> each symmetric matrix A_i of at least size ((n * (n + 1)) 2). Array is of at least size batchCount. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(n) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasDspr2Batched #ifdef USE_CUDA_NAMES function hipblasDspr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="cublasDspr2Batched") #else function hipblasDspr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) bind(c, name="hipblasDspr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: AP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspr2Batched_full_rank,& hipblasDspr2Batched_rank_0,& hipblasDspr2Batched_rank_1 #endif end interface interface hipblasSspr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasSspr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="cublasSspr2StridedBatched") #else function hipblasSspr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="hipblasSspr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSspr2StridedBatched_rank_0,& hipblasSspr2StridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> spr2StridedBatched performs the matrix-vector operation !> !> A_i := A_i + alpha*x_i*y_i**T + alpha*y_i*x_i**T !> !> where alpha is a scalar, x_i amd y_i are vectors, and A_i is an !> n by n symmetric matrix, supplied in packed form, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> HIPBLAS_FILL_MODE_UPPER: The upper triangular part of each A_i is supplied in AP. !> HIPBLAS_FILL_MODE_LOWER: The lower triangular part of each A_i is supplied in AP. !> @param[in] !> n [int] !> the number of rows and columns of each matrix A_i, must be at least 0. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer pointing to the first vector (x_1). !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> @param[in] !> y device pointer pointing to the first vector (y_1). !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> @param[inout] !> AP device pointer storing the packed version of the specified triangular portion of !> each symmetric matrix A_i. Points to the first A_1. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The upper triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(0,1) !> AP(2) = A(1,1), etc. !> Ex: (HIPBLAS_FILL_MODE_UPPER; n = 4) !> 1 2 4 7 !> 2 3 5 8 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 4 5 6 9 !> 7 8 9 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The lower triangular portion of each symmetric matrix A_i is supplied. !> The matrix is compacted so that AP contains the triangular portion column-by-column !> so that: !> AP(0) = A(0,0) !> AP(1) = A(1,0) !> AP(n) = A(2,1), etc. !> Ex: (HIPBLAS_FILL_MODE_LOWER; n = 4) !> 1 2 3 4 !> 2 5 6 7 -----> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] !> 3 6 8 9 !> 4 7 9 0 !> @param[in] !> strideA [hipblasStride] !> stride from the start of one (A_i) and the next (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch. interface hipblasDspr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasDspr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="cublasDspr2StridedBatched") #else function hipblasDspr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) bind(c, name="hipblasDspr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDspr2StridedBatched_rank_0,& hipblasDspr2StridedBatched_rank_1 #endif end interface interface hipblasSsymv #ifdef USE_CUDA_NAMES function hipblasSsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasSsymv_v2") #else function hipblasSsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasSsymv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsymv_full_rank,& hipblasSsymv_rank_0,& hipblasSsymv_rank_1 #endif end interface interface hipblasDsymv #ifdef USE_CUDA_NAMES function hipblasDsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasDsymv_v2") #else function hipblasDsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasDsymv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsymv_full_rank,& hipblasDsymv_rank_0,& hipblasDsymv_rank_1 #endif end interface interface hipblasCsymv #ifdef USE_CUDA_NAMES function hipblasCsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasCsymv_v2") #else function hipblasCsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasCsymv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsymv_full_rank,& hipblasCsymv_rank_0,& hipblasCsymv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> symv performs the matrix-vector operation: !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A should contain an upper or lower triangular n by n symmetric matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> @param[in] !> alpha !> specifies the scalar alpha !> @param[in] !> A pointer storing matrix A on the GPU !> @param[in] !> lda [int] !> specifies the leading dimension of A !> @param[in] !> x pointer storing vector x on the GPU !> @param[in] !> incx [int] !> specifies the increment for the elements of x !> @param[in] !> beta specifies the scalar beta !> @param[out] !> y pointer storing vector y on the GPU !> @param[in] !> incy [int] !> specifies the increment for the elements of y !> interface hipblasZsymv #ifdef USE_CUDA_NAMES function hipblasZsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="cublasZsymv_v2") #else function hipblasZsymv_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) bind(c, name="hipblasZsymv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsymv_full_rank,& hipblasZsymv_rank_0,& hipblasZsymv_rank_1 #endif end interface interface hipblasSsymvBatched #ifdef USE_CUDA_NAMES function hipblasSsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasSsymvBatched") #else function hipblasSsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasSsymvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_float) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsymvBatched_full_rank,& hipblasSsymvBatched_rank_0,& hipblasSsymvBatched_rank_1 #endif end interface interface hipblasDsymvBatched #ifdef USE_CUDA_NAMES function hipblasDsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasDsymvBatched") #else function hipblasDsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasDsymvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx real(c_double) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsymvBatched_full_rank,& hipblasDsymvBatched_rank_0,& hipblasDsymvBatched_rank_1 #endif end interface interface hipblasCsymvBatched #ifdef USE_CUDA_NAMES function hipblasCsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasCsymvBatched") #else function hipblasCsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasCsymvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_float_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsymvBatched_full_rank,& hipblasCsymvBatched_rank_0,& hipblasCsymvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> symvBatched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batchCount. !> A a should contain an upper or lower triangular symmetric matrix !> and the opposing triangular part of A is not referenced !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A device array of device pointers storing each matrix A_i !> @param[in] !> lda [int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> x device array of device pointers storing each vector x_i !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y device array of device pointers storing each vector y_i !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZsymvBatched #ifdef USE_CUDA_NAMES function hipblasZsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="cublasZsymvBatched") #else function hipblasZsymvBatched_(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) bind(c, name="hipblasZsymvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx complex(c_double_complex) :: beta type(c_ptr) :: y integer(c_int),value :: incy integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsymvBatched_full_rank,& hipblasZsymvBatched_rank_0,& hipblasZsymvBatched_rank_1 #endif end interface interface hipblasSsymvStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasSsymvStridedBatched") #else function hipblasSsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasSsymvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_float) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsymvStridedBatched_full_rank,& hipblasSsymvStridedBatched_rank_0,& hipblasSsymvStridedBatched_rank_1 #endif end interface interface hipblasDsymvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasDsymvStridedBatched") #else function hipblasDsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasDsymvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex real(c_double) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsymvStridedBatched_full_rank,& hipblasDsymvStridedBatched_rank_0,& hipblasDsymvStridedBatched_rank_1 #endif end interface interface hipblasCsymvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasCsymvStridedBatched") #else function hipblasCsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasCsymvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_float_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsymvStridedBatched_full_rank,& hipblasCsymvStridedBatched_rank_0,& hipblasCsymvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> symvStridedBatched performs the matrix-vector operation: !> !> y_i := alpha*A_i*x_i + beta*y_i, !> !> where (A_i, x_i, y_i) is the i-th instance of the batch. !> alpha and beta are scalars, x_i and y_i are vectors and A_i is an !> n by n symmetric matrix, for i = 1, ..., batchCount. !> A a should contain an upper or lower triangular symmetric matrix !> and the opposing triangular part of A is not referenced !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> number of rows and columns of each matrix A_i !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU !> @param[in] !> lda [int] !> specifies the leading dimension of each matrix A_i !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x Device pointer to the first vector x_1 on the GPU !> @param[in] !> incx [int] !> specifies the increment for the elements of each vector x_i !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector (x_i) and the next one (x_i+1). !> There are no restrictions placed on stridex, however the user should !> take care to ensure that stridex is of appropriate size. !> This typically means stridex >= n * incx. stridex should be non zero. !> @param[in] !> beta device pointer or host pointer to scalar beta !> @param[out] !> y Device pointer to the first vector y_1 on the GPU !> @param[in] !> incy [int] !> specifies the increment for the elements of each vector y_i !> @param[in] !> stridey [hipblasStride] !> stride from the start of one vector (y_i) and the next one (y_i+1). !> There are no restrictions placed on stridey, however the user should !> take care to ensure that stridey is of appropriate size. !> This typically means stridey >= n * incy. stridey should be non zero. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZsymvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="cublasZsymvStridedBatched") #else function hipblasZsymvStridedBatched_(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) bind(c, name="hipblasZsymvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex complex(c_double_complex) :: beta type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsymvStridedBatched_full_rank,& hipblasZsymvStridedBatched_rank_0,& hipblasZsymvStridedBatched_rank_1 #endif end interface interface hipblasSsyr #ifdef USE_CUDA_NAMES function hipblasSsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="cublasSsyr_v2") #else function hipblasSsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="hipblasSsyr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr_full_rank,& hipblasSsyr_rank_0,& hipblasSsyr_rank_1 #endif end interface interface hipblasDsyr #ifdef USE_CUDA_NAMES function hipblasDsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="cublasDsyr_v2") #else function hipblasDsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="hipblasDsyr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr_full_rank,& hipblasDsyr_rank_0,& hipblasDsyr_rank_1 #endif end interface interface hipblasCsyr #ifdef USE_CUDA_NAMES function hipblasCsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="cublasCsyr_v2") #else function hipblasCsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="hipblasCsyr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr_full_rank,& hipblasCsyr_rank_0,& hipblasCsyr_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr performs the matrix-vector operations !> !> A := A + alpha*x*x**T !> !> where alpha is a scalar, x is a vector, and A is an !> n by n symmetric matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> !> @param[in] !> n [int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[inout] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> interface hipblasZsyr #ifdef USE_CUDA_NAMES function hipblasZsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="cublasZsyr_v2") #else function hipblasZsyr_(handle,uplo,n,alpha,x,incx,A,lda) bind(c, name="hipblasZsyr") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr_full_rank,& hipblasZsyr_rank_0,& hipblasZsyr_rank_1 #endif end interface interface hipblasSsyrBatched #ifdef USE_CUDA_NAMES function hipblasSsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="cublasSsyrBatched") #else function hipblasSsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="hipblasSsyrBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrBatched_full_rank,& hipblasSsyrBatched_rank_0,& hipblasSsyrBatched_rank_1 #endif end interface interface hipblasDsyrBatched #ifdef USE_CUDA_NAMES function hipblasDsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="cublasDsyrBatched") #else function hipblasDsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="hipblasDsyrBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrBatched_full_rank,& hipblasDsyrBatched_rank_0,& hipblasDsyrBatched_rank_1 #endif end interface interface hipblasCsyrBatched #ifdef USE_CUDA_NAMES function hipblasCsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="cublasCsyrBatched") #else function hipblasCsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="hipblasCsyrBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrBatched_full_rank,& hipblasCsyrBatched_rank_0,& hipblasCsyrBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syrBatched performs a batch of matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*x[i]**T !> !> where alpha is a scalar, x is an array of vectors, and A is an array of !> n by n symmetric matrices, for i = 1 , ... , batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[inout] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZsyrBatched #ifdef USE_CUDA_NAMES function hipblasZsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="cublasZsyrBatched") #else function hipblasZsyrBatched_(handle,uplo,n,alpha,x,incx,A,lda,batchCount) bind(c, name="hipblasZsyrBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrBatched_full_rank,& hipblasZsyrBatched_rank_0,& hipblasZsyrBatched_rank_1 #endif end interface interface hipblasSsyrStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="cublasSsyrStridedBatched") #else function hipblasSsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="hipblasSsyrStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrStridedBatched_full_rank,& hipblasSsyrStridedBatched_rank_0,& hipblasSsyrStridedBatched_rank_1 #endif end interface interface hipblasDsyrStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="cublasDsyrStridedBatched") #else function hipblasDsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="hipblasDsyrStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrStridedBatched_full_rank,& hipblasDsyrStridedBatched_rank_0,& hipblasDsyrStridedBatched_rank_1 #endif end interface interface hipblasCsyrStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="cublasCsyrStridedBatched") #else function hipblasCsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="hipblasCsyrStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrStridedBatched_full_rank,& hipblasCsyrStridedBatched_rank_0,& hipblasCsyrStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syrStridedBatched performs the matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*x[i]**T !> !> where alpha is a scalar, vectors, and A is an array of !> n by n symmetric matrices, for i = 1 , ... , batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> the number of rows and columns of each matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> specifies the pointer increment between vectors (x_i) and (x_i+1). !> @param[inout] !> A device pointer to the first matrix A_1. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZsyrStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="cublasZsyrStridedBatched") #else function hipblasZsyrStridedBatched_(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) bind(c, name="hipblasZsyrStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stridey integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrStridedBatched_full_rank,& hipblasZsyrStridedBatched_rank_0,& hipblasZsyrStridedBatched_rank_1 #endif end interface interface hipblasSsyr2 #ifdef USE_CUDA_NAMES function hipblasSsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasSsyr2_v2") #else function hipblasSsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasSsyr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr2_full_rank,& hipblasSsyr2_rank_0,& hipblasSsyr2_rank_1 #endif end interface interface hipblasDsyr2 #ifdef USE_CUDA_NAMES function hipblasDsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasDsyr2_v2") #else function hipblasDsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasDsyr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr2_full_rank,& hipblasDsyr2_rank_0,& hipblasDsyr2_rank_1 #endif end interface interface hipblasCsyr2 #ifdef USE_CUDA_NAMES function hipblasCsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasCsyr2_v2") #else function hipblasCsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasCsyr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr2_full_rank,& hipblasCsyr2_rank_0,& hipblasCsyr2_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr2 performs the matrix-vector operations !> !> A := A + alpha*x*y**T + alpha*y*x**T !> !> where alpha is a scalar, x and y are vectors, and A is an !> n by n symmetric matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> !> @param[in] !> n [int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> @param[in] !> y device pointer storing vector y. !> @param[in] !> incy [int] !> specifies the increment for the elements of y. !> @param[inout] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> interface hipblasZsyr2 #ifdef USE_CUDA_NAMES function hipblasZsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="cublasZsyr2_v2") #else function hipblasZsyr2_(handle,uplo,n,alpha,x,incx,y,incy,A,lda) bind(c, name="hipblasZsyr2") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: y integer(c_int),value :: incy type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr2_full_rank,& hipblasZsyr2_rank_0,& hipblasZsyr2_rank_1 #endif end interface interface hipblasSsyr2Batched #ifdef USE_CUDA_NAMES function hipblasSsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasSsyr2Batched") #else function hipblasSsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasSsyr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr2Batched_full_rank,& hipblasSsyr2Batched_rank_0,& hipblasSsyr2Batched_rank_1 #endif end interface interface hipblasDsyr2Batched #ifdef USE_CUDA_NAMES function hipblasDsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasDsyr2Batched") #else function hipblasDsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasDsyr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr2Batched_full_rank,& hipblasDsyr2Batched_rank_0,& hipblasDsyr2Batched_rank_1 #endif end interface interface hipblasCsyr2Batched #ifdef USE_CUDA_NAMES function hipblasCsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasCsyr2Batched") #else function hipblasCsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasCsyr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr2Batched_full_rank,& hipblasCsyr2Batched_rank_0,& hipblasCsyr2Batched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr2Batched performs a batch of matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*y[i]**T + alpha*y[i]*x[i]**T !> !> where alpha is a scalar, x[i] and y[i] are vectors, and A[i] is a !> n by n symmetric matrix, for i = 1 , ... , batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> the number of rows and columns of matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device array of device pointers storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> y device array of device pointers storing each vector y_i. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[inout] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZsyr2Batched #ifdef USE_CUDA_NAMES function hipblasZsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="cublasZsyr2Batched") #else function hipblasZsyr2Batched_(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) bind(c, name="hipblasZsyr2Batched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2Batched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: y integer(c_int),value :: incy type(c_ptr) :: A integer(c_int),value :: lda integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr2Batched_full_rank,& hipblasZsyr2Batched_rank_0,& hipblasZsyr2Batched_rank_1 #endif end interface interface hipblasSsyr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasSsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasSsyr2StridedBatched") #else function hipblasSsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasSsyr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr2StridedBatched_full_rank,& hipblasSsyr2StridedBatched_rank_0,& hipblasSsyr2StridedBatched_rank_1 #endif end interface interface hipblasDsyr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasDsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasDsyr2StridedBatched") #else function hipblasDsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasDsyr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr2StridedBatched_full_rank,& hipblasDsyr2StridedBatched_rank_0,& hipblasDsyr2StridedBatched_rank_1 #endif end interface interface hipblasCsyr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasCsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasCsyr2StridedBatched") #else function hipblasCsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasCsyr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr2StridedBatched_full_rank,& hipblasCsyr2StridedBatched_rank_0,& hipblasCsyr2StridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> syr2StridedBatched the matrix-vector operations !> !> A[i] := A[i] + alpha*x[i]*y[i]**T + alpha*y[i]*x[i]**T !> !> where alpha is a scalar, x[i] and y[i] are vectors, and A[i] is a !> n by n symmetric matrices, for i = 1 , ... , batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> n [int] !> the number of rows and columns of each matrix A. !> @param[in] !> alpha !> device pointer or host pointer to scalar alpha. !> @param[in] !> x device pointer to the first vector x_1. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> specifies the pointer increment between vectors (x_i) and (x_i+1). !> @param[in] !> y device pointer to the first vector y_1. !> @param[in] !> incy [int] !> specifies the increment for the elements of each y_i. !> @param[in] !> stridey [hipblasStride] !> specifies the pointer increment between vectors (y_i) and (y_i+1). !> @param[inout] !> A device pointer to the first matrix A_1. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZsyr2StridedBatched #ifdef USE_CUDA_NAMES function hipblasZsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="cublasZsyr2StridedBatched") #else function hipblasZsyr2StridedBatched_(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) bind(c, name="hipblasZsyr2StridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2StridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr2StridedBatched_full_rank,& hipblasZsyr2StridedBatched_rank_0,& hipblasZsyr2StridedBatched_rank_1 #endif end interface interface hipblasStbmv #ifdef USE_CUDA_NAMES function hipblasStbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="cublasStbmv_v2") #else function hipblasStbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="hipblasStbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStbmv_full_rank,& hipblasStbmv_rank_0,& hipblasStbmv_rank_1 #endif end interface interface hipblasDtbmv #ifdef USE_CUDA_NAMES function hipblasDtbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="cublasDtbmv_v2") #else function hipblasDtbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="hipblasDtbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtbmv_full_rank,& hipblasDtbmv_rank_0,& hipblasDtbmv_rank_1 #endif end interface interface hipblasCtbmv #ifdef USE_CUDA_NAMES function hipblasCtbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="cublasCtbmv_v2") #else function hipblasCtbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="hipblasCtbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtbmv_full_rank,& hipblasCtbmv_rank_0,& hipblasCtbmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbmv performs one of the matrix-vector operations !> !> x := A*x or !> x := A**T*x or !> x := A**H*x, !> !> x is a vectors and A is a banded m by m matrix (see description below). !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper banded triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower banded triangular matrix. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether matrix A is tranposed (conjugated) or not. !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: The main diagonal of A is assumed to consist of only !> 1's and is not referenced. !> HIPBLAS_DIAG_NON_UNIT: No assumptions are made of A's main diagonal. !> @param[in] !> m [int] !> the number of rows and columns of the matrix represented by A. !> @param[in] !> k [int] !> if uplo == HIPBLAS_FILL_MODE_UPPER, k specifies the number of super-diagonals !> of the matrix A. !> if uplo == HIPBLAS_FILL_MODE_LOWER, k specifies the number of sub-diagonals !> of the matrix A. !> k must satisfy k > 0 && k < lda. !> @param[in] !> A device pointer storing banded triangular matrix A. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The matrix represented is an upper banded triangular matrix !> with the main diagonal and k super-diagonals, everything !> else can be assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the k'th !> row, the first super diagonal resides on the RHS of the k-1'th row, etc, !> with the k'th diagonal on the RHS of the 0'th row. !> Ex: (HIPBLAS_FILL_MODE_UPPER; m = 5; k = 2) !> 1 6 9 0 0 0 0 9 8 7 !> 0 2 7 8 0 0 6 7 8 9 !> 0 0 3 8 7 ----> 1 2 3 4 5 !> 0 0 0 4 9 0 0 0 0 0 !> 0 0 0 0 5 0 0 0 0 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The matrix represnted is a lower banded triangular matrix !> with the main diagonal and k sub-diagonals, everything else can be !> assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the 0'th row, !> working up to the k'th diagonal residing on the LHS of the k'th row. !> Ex: (HIPBLAS_FILL_MODE_LOWER; m = 5; k = 2) !> 1 0 0 0 0 1 2 3 4 5 !> 6 2 0 0 0 6 7 8 9 0 !> 9 7 3 0 0 ----> 9 8 7 0 0 !> 0 8 8 4 0 0 0 0 0 0 !> 0 0 7 9 5 0 0 0 0 0 !> @param[in] !> lda [int] !> specifies the leading dimension of A. lda must satisfy lda > k. !> @param[inout] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> interface hipblasZtbmv #ifdef USE_CUDA_NAMES function hipblasZtbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="cublasZtbmv_v2") #else function hipblasZtbmv_(handle,uplo,transA,diag,m,k,A,lda,x,incx) bind(c, name="hipblasZtbmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtbmv_full_rank,& hipblasZtbmv_rank_0,& hipblasZtbmv_rank_1 #endif end interface interface hipblasStbmvBatched #ifdef USE_CUDA_NAMES function hipblasStbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="cublasStbmvBatched") #else function hipblasStbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="hipblasStbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStbmvBatched_full_rank,& hipblasStbmvBatched_rank_0,& hipblasStbmvBatched_rank_1 #endif end interface interface hipblasDtbmvBatched #ifdef USE_CUDA_NAMES function hipblasDtbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="cublasDtbmvBatched") #else function hipblasDtbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="hipblasDtbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtbmvBatched_full_rank,& hipblasDtbmvBatched_rank_0,& hipblasDtbmvBatched_rank_1 #endif end interface interface hipblasCtbmvBatched #ifdef USE_CUDA_NAMES function hipblasCtbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="cublasCtbmvBatched") #else function hipblasCtbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="hipblasCtbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtbmvBatched_full_rank,& hipblasCtbmvBatched_rank_0,& hipblasCtbmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbmvBatched performs one of the matrix-vector operations !> !> x_i := A_i*x_i or !> x_i := A_i**T*x_i or !> x_i := A_i**H*x_i, !> !> where (A_i, x_i) is the i-th instance of the batch. !> x_i is a vector and A_i is an m by m matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: each A_i is an upper banded triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: each A_i is a lower banded triangular matrix. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether each matrix A_i is tranposed (conjugated) or not. !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: The main diagonal of each A_i is assumed to consist of only !> 1's and is not referenced. !> HIPBLAS_DIAG_NON_UNIT: No assumptions are made of each A_i's main diagonal. !> @param[in] !> m [int] !> the number of rows and columns of the matrix represented by each A_i. !> @param[in] !> k [int] !> if uplo == HIPBLAS_FILL_MODE_UPPER, k specifies the number of super-diagonals !> of each matrix A_i. !> if uplo == HIPBLAS_FILL_MODE_LOWER, k specifies the number of sub-diagonals !> of each matrix A_i. !> k must satisfy k > 0 && k < lda. !> @param[in] !> A device array of device pointers storing each banded triangular matrix A_i. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The matrix represented is an upper banded triangular matrix !> with the main diagonal and k super-diagonals, everything !> else can be assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the k'th !> row, the first super diagonal resides on the RHS of the k-1'th row, etc, !> with the k'th diagonal on the RHS of the 0'th row. !> Ex: (HIPBLAS_FILL_MODE_UPPER; m = 5; k = 2) !> 1 6 9 0 0 0 0 9 8 7 !> 0 2 7 8 0 0 6 7 8 9 !> 0 0 3 8 7 ----> 1 2 3 4 5 !> 0 0 0 4 9 0 0 0 0 0 !> 0 0 0 0 5 0 0 0 0 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The matrix represnted is a lower banded triangular matrix !> with the main diagonal and k sub-diagonals, everything else can be !> assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the 0'th row, !> working up to the k'th diagonal residing on the LHS of the k'th row. !> Ex: (HIPBLAS_FILL_MODE_LOWER; m = 5; k = 2) !> 1 0 0 0 0 1 2 3 4 5 !> 6 2 0 0 0 6 7 8 9 0 !> 9 7 3 0 0 ----> 9 8 7 0 0 !> 0 8 8 4 0 0 0 0 0 0 !> 0 0 7 9 5 0 0 0 0 0 !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. lda must satisfy lda > k. !> @param[inout] !> x device array of device pointer storing each vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZtbmvBatched #ifdef USE_CUDA_NAMES function hipblasZtbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="cublasZtbmvBatched") #else function hipblasZtbmvBatched_(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) bind(c, name="hipblasZtbmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtbmvBatched_full_rank,& hipblasZtbmvBatched_rank_0,& hipblasZtbmvBatched_rank_1 #endif end interface interface hipblasStbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasStbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasStbmvStridedBatched") #else function hipblasStbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasStbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStbmvStridedBatched_full_rank,& hipblasStbmvStridedBatched_rank_0,& hipblasStbmvStridedBatched_rank_1 #endif end interface interface hipblasDtbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasDtbmvStridedBatched") #else function hipblasDtbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasDtbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtbmvStridedBatched_full_rank,& hipblasDtbmvStridedBatched_rank_0,& hipblasDtbmvStridedBatched_rank_1 #endif end interface interface hipblasCtbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasCtbmvStridedBatched") #else function hipblasCtbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasCtbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtbmvStridedBatched_full_rank,& hipblasCtbmvStridedBatched_rank_0,& hipblasCtbmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbmvStridedBatched performs one of the matrix-vector operations !> !> x_i := A_i*x_i or !> x_i := A_i**T*x_i or !> x_i := A_i**H*x_i, !> !> where (A_i, x_i) is the i-th instance of the batch. !> x_i is a vector and A_i is an m by m matrix, for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: each A_i is an upper banded triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: each A_i is a lower banded triangular matrix. !> @param[in] !> trans [hipblasOperation_t] !> indicates whether each matrix A_i is tranposed (conjugated) or not. !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: The main diagonal of each A_i is assumed to consist of only !> 1's and is not referenced. !> HIPBLAS_DIAG_NON_UNIT: No assumptions are made of each A_i's main diagonal. !> @param[in] !> m [int] !> the number of rows and columns of the matrix represented by each A_i. !> @param[in] !> k [int] !> if uplo == HIPBLAS_FILL_MODE_UPPER, k specifies the number of super-diagonals !> of each matrix A_i. !> if uplo == HIPBLAS_FILL_MODE_LOWER, k specifies the number of sub-diagonals !> of each matrix A_i. !> k must satisfy k > 0 && k < lda. !> @param[in] !> A device array to the first matrix A_i of the batch. Stores each banded triangular matrix A_i. !> if uplo == HIPBLAS_FILL_MODE_UPPER: !> The matrix represented is an upper banded triangular matrix !> with the main diagonal and k super-diagonals, everything !> else can be assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the k'th !> row, the first super diagonal resides on the RHS of the k-1'th row, etc, !> with the k'th diagonal on the RHS of the 0'th row. !> Ex: (HIPBLAS_FILL_MODE_UPPER; m = 5; k = 2) !> 1 6 9 0 0 0 0 9 8 7 !> 0 2 7 8 0 0 6 7 8 9 !> 0 0 3 8 7 ----> 1 2 3 4 5 !> 0 0 0 4 9 0 0 0 0 0 !> 0 0 0 0 5 0 0 0 0 0 !> if uplo == HIPBLAS_FILL_MODE_LOWER: !> The matrix represnted is a lower banded triangular matrix !> with the main diagonal and k sub-diagonals, everything else can be !> assumed to be 0. !> The matrix is compacted so that the main diagonal resides on the 0'th row, !> working up to the k'th diagonal residing on the LHS of the k'th row. !> Ex: (HIPBLAS_FILL_MODE_LOWER; m = 5; k = 2) !> 1 0 0 0 0 1 2 3 4 5 !> 6 2 0 0 0 6 7 8 9 0 !> 9 7 3 0 0 ----> 9 8 7 0 0 !> 0 8 8 4 0 0 0 0 0 0 !> 0 0 7 9 5 0 0 0 0 0 !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. lda must satisfy lda > k. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one A_i matrix to the next A_(i + 1). !> @param[inout] !> x device array to the first vector x_i of the batch. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the start of one x_i matrix to the next x_(i + 1). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZtbmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasZtbmvStridedBatched") #else function hipblasZtbmvStridedBatched_(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasZtbmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtbmvStridedBatched_full_rank,& hipblasZtbmvStridedBatched_rank_0,& hipblasZtbmvStridedBatched_rank_1 #endif end interface interface hipblasStbsv #ifdef USE_CUDA_NAMES function hipblasStbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="cublasStbsv_v2") #else function hipblasStbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="hipblasStbsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStbsv_full_rank,& hipblasStbsv_rank_0,& hipblasStbsv_rank_1 #endif end interface interface hipblasDtbsv #ifdef USE_CUDA_NAMES function hipblasDtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="cublasDtbsv_v2") #else function hipblasDtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="hipblasDtbsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtbsv_full_rank,& hipblasDtbsv_rank_0,& hipblasDtbsv_rank_1 #endif end interface interface hipblasCtbsv #ifdef USE_CUDA_NAMES function hipblasCtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="cublasCtbsv_v2") #else function hipblasCtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="hipblasCtbsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtbsv_full_rank,& hipblasCtbsv_rank_0,& hipblasCtbsv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbsv solves !> !> A*x = b or A**T*x = b or A**H*x = b, !> !> where x and b are vectors and A is a banded triangular matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: Solves A*x = b !> HIPBLAS_OP_T: Solves A**T*x = b !> HIPBLAS_OP_C: Solves A**H*x = b !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular (i.e. the diagonal elements !> of A are not used in computations). !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> n [int] !> n specifies the number of rows of b. n >= 0. !> @param[in] !> k [int] !> if(uplo == HIPBLAS_FILL_MODE_UPPER) !> k specifies the number of super-diagonals of A. !> if(uplo == HIPBLAS_FILL_MODE_LOWER) !> k specifies the number of sub-diagonals of A. !> k >= 0. !> !> @param[in] !> A device pointer storing the matrix A in banded format. !> !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> lda >= (k + 1). !> !> @param[inout] !> x device pointer storing input vector b. Overwritten by the output vector x. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> interface hipblasZtbsv #ifdef USE_CUDA_NAMES function hipblasZtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="cublasZtbsv_v2") #else function hipblasZtbsv_(handle,uplo,transA,diag,n,k,A,lda,x,incx) bind(c, name="hipblasZtbsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtbsv_full_rank,& hipblasZtbsv_rank_0,& hipblasZtbsv_rank_1 #endif end interface interface hipblasStbsvBatched #ifdef USE_CUDA_NAMES function hipblasStbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="cublasStbsvBatched") #else function hipblasStbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="hipblasStbsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStbsvBatched_full_rank,& hipblasStbsvBatched_rank_0,& hipblasStbsvBatched_rank_1 #endif end interface interface hipblasDtbsvBatched #ifdef USE_CUDA_NAMES function hipblasDtbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="cublasDtbsvBatched") #else function hipblasDtbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="hipblasDtbsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtbsvBatched_full_rank,& hipblasDtbsvBatched_rank_0,& hipblasDtbsvBatched_rank_1 #endif end interface interface hipblasCtbsvBatched #ifdef USE_CUDA_NAMES function hipblasCtbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="cublasCtbsvBatched") #else function hipblasCtbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="hipblasCtbsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtbsvBatched_full_rank,& hipblasCtbsvBatched_rank_0,& hipblasCtbsvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbsvBatched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a banded triangular matrix, !> for i = [1, batchCount]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: Solves A_i*x_i = b_i !> HIPBLAS_OP_T: Solves A_i**T*x_i = b_i !> HIPBLAS_OP_C: Solves A_i**H*x_i = b_i !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [int] !> n specifies the number of rows of each b_i. n >= 0. !> @param[in] !> k [int] !> if(uplo == HIPBLAS_FILL_MODE_UPPER) !> k specifies the number of super-diagonals of each A_i. !> if(uplo == HIPBLAS_FILL_MODE_LOWER) !> k specifies the number of sub-diagonals of each A_i. !> k >= 0. !> !> @param[in] !> A device vector of device pointers storing each matrix A_i in banded format. !> !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> lda >= (k + 1). !> !> @param[inout] !> x device vector of device pointers storing each input vector b_i. Overwritten by each output !> vector x_i. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZtbsvBatched #ifdef USE_CUDA_NAMES function hipblasZtbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="cublasZtbsvBatched") #else function hipblasZtbsvBatched_(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) bind(c, name="hipblasZtbsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtbsvBatched_full_rank,& hipblasZtbsvBatched_rank_0,& hipblasZtbsvBatched_rank_1 #endif end interface interface hipblasStbsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasStbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasStbsvStridedBatched") #else function hipblasStbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasStbsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStbsvStridedBatched_full_rank,& hipblasStbsvStridedBatched_rank_0,& hipblasStbsvStridedBatched_rank_1 #endif end interface interface hipblasDtbsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasDtbsvStridedBatched") #else function hipblasDtbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasDtbsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtbsvStridedBatched_full_rank,& hipblasDtbsvStridedBatched_rank_0,& hipblasDtbsvStridedBatched_rank_1 #endif end interface interface hipblasCtbsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasCtbsvStridedBatched") #else function hipblasCtbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasCtbsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtbsvStridedBatched_full_rank,& hipblasCtbsvStridedBatched_rank_0,& hipblasCtbsvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tbsvStridedBatched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a banded triangular matrix, !> for i = [1, batchCount]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: Solves A_i*x_i = b_i !> HIPBLAS_OP_T: Solves A_i**T*x_i = b_i !> HIPBLAS_OP_C: Solves A_i**H*x_i = b_i !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [int] !> n specifies the number of rows of each b_i. n >= 0. !> @param[in] !> k [int] !> if(uplo == HIPBLAS_FILL_MODE_UPPER) !> k specifies the number of super-diagonals of each A_i. !> if(uplo == HIPBLAS_FILL_MODE_LOWER) !> k specifies the number of sub-diagonals of each A_i. !> k >= 0. !> !> @param[in] !> A device pointer pointing to the first banded matrix A_1. !> !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> lda >= (k + 1). !> @param[in] !> strideA [hipblasStride] !> specifies the distance between the start of one matrix (A_i) and the next (A_i+1). !> !> @param[inout] !> x device pointer pointing to the first input vector b_1. Overwritten by output vectors x. !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> specifies the distance between the start of one vector (x_i) and the next (x_i+1). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZtbsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasZtbsvStridedBatched") #else function hipblasZtbsvStridedBatched_(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasZtbsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtbsvStridedBatched_full_rank,& hipblasZtbsvStridedBatched_rank_0,& hipblasZtbsvStridedBatched_rank_1 #endif end interface interface hipblasStpmv #ifdef USE_CUDA_NAMES function hipblasStpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasStpmv_v2") #else function hipblasStpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasStpmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStpmv_rank_0,& hipblasStpmv_rank_1 #endif end interface interface hipblasDtpmv #ifdef USE_CUDA_NAMES function hipblasDtpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasDtpmv_v2") #else function hipblasDtpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasDtpmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtpmv_rank_0,& hipblasDtpmv_rank_1 #endif end interface interface hipblasCtpmv #ifdef USE_CUDA_NAMES function hipblasCtpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasCtpmv_v2") #else function hipblasCtpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasCtpmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtpmv_rank_0,& hipblasCtpmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpmv performs one of the matrix-vector operations !> !> x = A*x or x = A**T*x, !> !> where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in the pack form. !> !> The vector x is overwritten. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of A. m >= 0. !> !> @param[in] !> A device pointer storing matrix A, !> of dimension at leat ( m * ( m + 1 ) 2 ). !> Before entry with uplo = HIPBLAS_FILL_MODE_UPPER, the array A !> must contain the upper triangular matrix packed sequentially, !> column by column, so that A[0] contains a_{0,0}, A[1] and A[2] contain !> a_{0,1} and a_{1, 1} respectively, and so on. !> Before entry with uplo = HIPBLAS_FILL_MODE_LOWER, the array A !> must contain the lower triangular matrix packed sequentially, !> column by column, so that A[0] contains a_{0,0}, A[1] and A[2] contain !> a_{1,0} and a_{2,0} respectively, and so on. !> Note that when DIAG = HIPBLAS_DIAG_UNIT, the diagonal elements of A are !> not referenced, but are assumed to be unity. !> !> @param[in] !> x device pointer storing vector x. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of x. incx must not be zero. !> interface hipblasZtpmv #ifdef USE_CUDA_NAMES function hipblasZtpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasZtpmv_v2") #else function hipblasZtpmv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasZtpmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtpmv_rank_0,& hipblasZtpmv_rank_1 #endif end interface interface hipblasStpmvBatched #ifdef USE_CUDA_NAMES function hipblasStpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasStpmvBatched") #else function hipblasStpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasStpmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStpmvBatched_full_rank,& hipblasStpmvBatched_rank_0,& hipblasStpmvBatched_rank_1 #endif end interface interface hipblasDtpmvBatched #ifdef USE_CUDA_NAMES function hipblasDtpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasDtpmvBatched") #else function hipblasDtpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasDtpmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtpmvBatched_full_rank,& hipblasDtpmvBatched_rank_0,& hipblasDtpmvBatched_rank_1 #endif end interface interface hipblasCtpmvBatched #ifdef USE_CUDA_NAMES function hipblasCtpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasCtpmvBatched") #else function hipblasCtpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasCtpmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtpmvBatched_full_rank,& hipblasCtpmvBatched_rank_0,& hipblasCtpmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpmvBatched performs one of the matrix-vector operations !> !> x_i = A_i*x_i or x_i = A**T*x_i, 0 \le i < batchCount !> !> where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) !> !> The vectors x_i are overwritten. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of matrices A_i. m >= 0. !> !> @param[in] !> A device pointer storing pointer of matrices A_i, !> of dimension ( lda, m ) !> !> @param[in] !> x device pointer storing vectors x_i. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of vectors x_i. !> !> @param[in] !> batchCount [int] !> The number of batched matrices/vectors. !> !> interface hipblasZtpmvBatched #ifdef USE_CUDA_NAMES function hipblasZtpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasZtpmvBatched") #else function hipblasZtpmvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasZtpmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtpmvBatched_full_rank,& hipblasZtpmvBatched_rank_0,& hipblasZtpmvBatched_rank_1 #endif end interface interface hipblasStpmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasStpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="cublasStpmvStridedBatched") #else function hipblasStpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="hipblasStpmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStpmvStridedBatched_rank_0,& hipblasStpmvStridedBatched_rank_1 #endif end interface interface hipblasDtpmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="cublasDtpmvStridedBatched") #else function hipblasDtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="hipblasDtpmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtpmvStridedBatched_rank_0,& hipblasDtpmvStridedBatched_rank_1 #endif end interface interface hipblasCtpmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="cublasCtpmvStridedBatched") #else function hipblasCtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="hipblasCtpmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtpmvStridedBatched_rank_0,& hipblasCtpmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpmvStridedBatched performs one of the matrix-vector operations !> !> x_i = A_i*x_i or x_i = A**T*x_i, 0 \le i < batchCount !> !> where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) !> with strides specifying how to retrieve $x_i$ (resp. $A_i$) from $x_{i-1}$ (resp. $A_i$). !> !> The vectors x_i are overwritten. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of matrices A_i. m >= 0. !> !> @param[in] !> A device pointer of the matrix A_0, !> of dimension ( lda, m ) !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one A_i matrix to the next A_{i + 1} !> !> @param[in] !> x device pointer storing the vector x_0. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of one vector x. !> !> @param[in] !> stridex [hipblasStride] !> stride from the start of one x_i vector to the next x_{i + 1} !> !> @param[in] !> batchCount [int] !> The number of batched matrices/vectors. !> !> interface hipblasZtpmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="cublasZtpmvStridedBatched") #else function hipblasZtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) bind(c, name="hipblasZtpmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtpmvStridedBatched_rank_0,& hipblasZtpmvStridedBatched_rank_1 #endif end interface interface hipblasStpsv #ifdef USE_CUDA_NAMES function hipblasStpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasStpsv_v2") #else function hipblasStpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasStpsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStpsv_rank_0,& hipblasStpsv_rank_1 #endif end interface interface hipblasDtpsv #ifdef USE_CUDA_NAMES function hipblasDtpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasDtpsv_v2") #else function hipblasDtpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasDtpsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtpsv_rank_0,& hipblasDtpsv_rank_1 #endif end interface interface hipblasCtpsv #ifdef USE_CUDA_NAMES function hipblasCtpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasCtpsv_v2") #else function hipblasCtpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasCtpsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtpsv_rank_0,& hipblasCtpsv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpsv solves !> !> A*x = b or A**T*x = b, or A**H*x = b, !> !> where x and b are vectors and A is a triangular matrix stored in the packed format. !> !> The input vector b is overwritten by the output vector x. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: Solves A*x = b !> HIPBLAS_OP_T: Solves A**T*x = b !> HIPBLAS_OP_C: Solves A**H*x = b !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular (i.e. the diagonal elements !> of A are not used in computations). !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> n [int] !> n specifies the number of rows of b. n >= 0. !> !> @param[in] !> AP device pointer storing the packed version of matrix A, !> of dimension >= (n * (n + 1) 2) !> !> @param[inout] !> x device pointer storing vector b on input, overwritten by x on output. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> interface hipblasZtpsv #ifdef USE_CUDA_NAMES function hipblasZtpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="cublasZtpsv_v2") #else function hipblasZtpsv_(handle,uplo,transA,diag,m,AP,x,incx) bind(c, name="hipblasZtpsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtpsv_rank_0,& hipblasZtpsv_rank_1 #endif end interface interface hipblasStpsvBatched #ifdef USE_CUDA_NAMES function hipblasStpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasStpsvBatched") #else function hipblasStpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasStpsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStpsvBatched_full_rank,& hipblasStpsvBatched_rank_0,& hipblasStpsvBatched_rank_1 #endif end interface interface hipblasDtpsvBatched #ifdef USE_CUDA_NAMES function hipblasDtpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasDtpsvBatched") #else function hipblasDtpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasDtpsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtpsvBatched_full_rank,& hipblasDtpsvBatched_rank_0,& hipblasDtpsvBatched_rank_1 #endif end interface interface hipblasCtpsvBatched #ifdef USE_CUDA_NAMES function hipblasCtpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasCtpsvBatched") #else function hipblasCtpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasCtpsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtpsvBatched_full_rank,& hipblasCtpsvBatched_rank_0,& hipblasCtpsvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpsvBatched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a triangular matrix stored in the packed format, !> for i in [1, batchCount]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: each A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: each A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: Solves A*x = b !> HIPBLAS_OP_T: Solves A**T*x = b !> HIPBLAS_OP_C: Solves A**H*x = b !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [int] !> n specifies the number of rows of each b_i. n >= 0. !> !> @param[in] !> AP device array of device pointers storing the packed versions of each matrix A_i, !> of dimension >= (n * (n + 1) 2) !> !> @param[inout] !> x device array of device pointers storing each input vector b_i, overwritten by x_i on output. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> batchCount [int] !> specifies the number of instances in the batch. !> interface hipblasZtpsvBatched #ifdef USE_CUDA_NAMES function hipblasZtpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="cublasZtpsvBatched") #else function hipblasZtpsvBatched_(handle,uplo,transA,diag,m,AP,x,incx,batchCount) bind(c, name="hipblasZtpsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: AP type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtpsvBatched_full_rank,& hipblasZtpsvBatched_rank_0,& hipblasZtpsvBatched_rank_1 #endif end interface interface hipblasStpsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasStpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="cublasStpsvStridedBatched") #else function hipblasStpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="hipblasStpsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStpsvStridedBatched_rank_0,& hipblasStpsvStridedBatched_rank_1 #endif end interface interface hipblasDtpsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="cublasDtpsvStridedBatched") #else function hipblasDtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="hipblasDtpsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtpsvStridedBatched_rank_0,& hipblasDtpsvStridedBatched_rank_1 #endif end interface interface hipblasCtpsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="cublasCtpsvStridedBatched") #else function hipblasCtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="hipblasCtpsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtpsvStridedBatched_rank_0,& hipblasCtpsvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> tpsvStridedBatched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, or A_i**H*x_i = b_i, !> !> where x_i and b_i are vectors and A_i is a triangular matrix stored in the packed format, !> for i in [1, batchCount]. !> !> The input vectors b_i are overwritten by the output vectors x_i. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: each A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: each A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: Solves A*x = b !> HIPBLAS_OP_T: Solves A**T*x = b !> HIPBLAS_OP_C: Solves A**H*x = b !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular (i.e. the diagonal elements !> of each A_i are not used in computations). !> HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular. !> !> @param[in] !> n [int] !> n specifies the number of rows of each b_i. n >= 0. !> !> @param[in] !> AP device pointer pointing to the first packed matrix A_1, !> of dimension >= (n * (n + 1) 2) !> !> @param[in] !> strideA [hipblasStride] !> stride from the beginning of one packed matrix (AP_i) and the next (AP_i+1). !> !> @param[inout] !> x device pointer pointing to the first input vector b_1. Overwritten by each x_i on output. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> @param[in] !> stridex [hipblasStride] !> stride from the beginning of one vector (x_i) and the next (x_i+1). !> @param[in] !> batchCount [int] !> specifies the number of instances in the batch. !> interface hipblasZtpsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="cublasZtpsvStridedBatched") #else function hipblasZtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) bind(c, name="hipblasZtpsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: AP integer(c_int64_t),value :: strideAP type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtpsvStridedBatched_rank_0,& hipblasZtpsvStridedBatched_rank_1 #endif end interface interface hipblasStrmv #ifdef USE_CUDA_NAMES function hipblasStrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasStrmv_v2") #else function hipblasStrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasStrmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrmv_full_rank,& hipblasStrmv_rank_0,& hipblasStrmv_rank_1 #endif end interface interface hipblasDtrmv #ifdef USE_CUDA_NAMES function hipblasDtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasDtrmv_v2") #else function hipblasDtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasDtrmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrmv_full_rank,& hipblasDtrmv_rank_0,& hipblasDtrmv_rank_1 #endif end interface interface hipblasCtrmv #ifdef USE_CUDA_NAMES function hipblasCtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasCtrmv_v2") #else function hipblasCtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasCtrmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrmv_full_rank,& hipblasCtrmv_rank_0,& hipblasCtrmv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trmv performs one of the matrix-vector operations !> !> x = A*x or x = A**T*x, !> !> where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix. !> !> The vector x is overwritten. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of A. m >= 0. !> !> @param[in] !> A device pointer storing matrix A, !> of dimension ( lda, m ) !> !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> lda = max( 1, m ). !> !> @param[in] !> x device pointer storing vector x. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> interface hipblasZtrmv #ifdef USE_CUDA_NAMES function hipblasZtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasZtrmv_v2") #else function hipblasZtrmv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasZtrmv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrmv_full_rank,& hipblasZtrmv_rank_0,& hipblasZtrmv_rank_1 #endif end interface interface hipblasStrmvBatched #ifdef USE_CUDA_NAMES function hipblasStrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasStrmvBatched") #else function hipblasStrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasStrmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrmvBatched_full_rank,& hipblasStrmvBatched_rank_0,& hipblasStrmvBatched_rank_1 #endif end interface interface hipblasDtrmvBatched #ifdef USE_CUDA_NAMES function hipblasDtrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasDtrmvBatched") #else function hipblasDtrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasDtrmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrmvBatched_full_rank,& hipblasDtrmvBatched_rank_0,& hipblasDtrmvBatched_rank_1 #endif end interface interface hipblasCtrmvBatched #ifdef USE_CUDA_NAMES function hipblasCtrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasCtrmvBatched") #else function hipblasCtrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasCtrmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrmvBatched_full_rank,& hipblasCtrmvBatched_rank_0,& hipblasCtrmvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trmvBatched performs one of the matrix-vector operations !> !> x_i = A_i*x_i or x_i = A**T*x_i, 0 \le i < batchCount !> !> where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) !> !> The vectors x_i are overwritten. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of matrices A_i. m >= 0. !> !> @param[in] !> A device pointer storing pointer of matrices A_i, !> of dimension ( lda, m ) !> !> @param[in] !> lda [int] !> specifies the leading dimension of A_i. !> lda >= max( 1, m ). !> !> @param[in] !> x device pointer storing vectors x_i. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of vectors x_i. !> !> @param[in] !> batchCount [int] !> The number of batched matrices/vectors. !> !> interface hipblasZtrmvBatched #ifdef USE_CUDA_NAMES function hipblasZtrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasZtrmvBatched") #else function hipblasZtrmvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasZtrmvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrmvBatched_full_rank,& hipblasZtrmvBatched_rank_0,& hipblasZtrmvBatched_rank_1 #endif end interface interface hipblasStrmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasStrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasStrmvStridedBatched") #else function hipblasStrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasStrmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrmvStridedBatched_full_rank,& hipblasStrmvStridedBatched_rank_0,& hipblasStrmvStridedBatched_rank_1 #endif end interface interface hipblasDtrmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasDtrmvStridedBatched") #else function hipblasDtrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasDtrmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrmvStridedBatched_full_rank,& hipblasDtrmvStridedBatched_rank_0,& hipblasDtrmvStridedBatched_rank_1 #endif end interface interface hipblasCtrmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasCtrmvStridedBatched") #else function hipblasCtrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasCtrmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrmvStridedBatched_full_rank,& hipblasCtrmvStridedBatched_rank_0,& hipblasCtrmvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trmvStridedBatched performs one of the matrix-vector operations !> !> x_i = A_i*x_i or x_i = A**T*x_i, 0 \le i < batchCount !> !> where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) !> with strides specifying how to retrieve $x_i$ (resp. $A_i$) from $x_{i-1}$ (resp. $A_i$). !> !> The vectors x_i are overwritten. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of matrices A_i. m >= 0. !> !> @param[in] !> A device pointer of the matrix A_0, !> of dimension ( lda, m ) !> !> @param[in] !> lda [int] !> specifies the leading dimension of A_i. !> lda >= max( 1, m ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one A_i matrix to the next A_{i + 1} !> !> @param[in] !> x device pointer storing the vector x_0. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of one vector x. !> !> @param[in] !> stridex [hipblasStride] !> stride from the start of one x_i vector to the next x_{i + 1} !> !> @param[in] !> batchCount [int] !> The number of batched matrices/vectors. !> !> interface hipblasZtrmvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasZtrmvStridedBatched") #else function hipblasZtrmvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasZtrmvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrmvStridedBatched_full_rank,& hipblasZtrmvStridedBatched_rank_0,& hipblasZtrmvStridedBatched_rank_1 #endif end interface interface hipblasStrsv #ifdef USE_CUDA_NAMES function hipblasStrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasStrsv_v2") #else function hipblasStrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasStrsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrsv_full_rank,& hipblasStrsv_rank_0,& hipblasStrsv_rank_1 #endif end interface interface hipblasDtrsv #ifdef USE_CUDA_NAMES function hipblasDtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasDtrsv_v2") #else function hipblasDtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasDtrsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrsv_full_rank,& hipblasDtrsv_rank_0,& hipblasDtrsv_rank_1 #endif end interface interface hipblasCtrsv #ifdef USE_CUDA_NAMES function hipblasCtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasCtrsv_v2") #else function hipblasCtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasCtrsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrsv_full_rank,& hipblasCtrsv_rank_0,& hipblasCtrsv_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trsv solves !> !> A*x = b or A**T*x = b, !> !> where x and b are vectors and A is a triangular matrix. !> !> The vector x is overwritten on b. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of b. m >= 0. !> !> @param[in] !> A device pointer storing matrix A, !> of dimension ( lda, m ) !> !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> lda = max( 1, m ). !> !> @param[in] !> x device pointer storing vector x. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> interface hipblasZtrsv #ifdef USE_CUDA_NAMES function hipblasZtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="cublasZtrsv_v2") #else function hipblasZtrsv_(handle,uplo,transA,diag,m,A,lda,x,incx) bind(c, name="hipblasZtrsv") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsv_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrsv_full_rank,& hipblasZtrsv_rank_0,& hipblasZtrsv_rank_1 #endif end interface interface hipblasStrsvBatched #ifdef USE_CUDA_NAMES function hipblasStrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasStrsvBatched") #else function hipblasStrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasStrsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrsvBatched_full_rank,& hipblasStrsvBatched_rank_0,& hipblasStrsvBatched_rank_1 #endif end interface interface hipblasDtrsvBatched #ifdef USE_CUDA_NAMES function hipblasDtrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasDtrsvBatched") #else function hipblasDtrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasDtrsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrsvBatched_full_rank,& hipblasDtrsvBatched_rank_0,& hipblasDtrsvBatched_rank_1 #endif end interface interface hipblasCtrsvBatched #ifdef USE_CUDA_NAMES function hipblasCtrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasCtrsvBatched") #else function hipblasCtrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasCtrsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrsvBatched_full_rank,& hipblasCtrsvBatched_rank_0,& hipblasCtrsvBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trsvBatched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, !> !> where (A_i, x_i, b_i) is the i-th instance of the batch. !> x_i and b_i are vectors and A_i is an !> m by m triangular matrix. !> !> The vector x is overwritten on b. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of b. m >= 0. !> !> @param[in] !> A device array of device pointers storing each matrix A_i. !> !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> lda = max(1, m) !> !> @param[in] !> x device array of device pointers storing each vector x_i. !> !> @param[in] !> incx [int] !> specifies the increment for the elements of x. !> !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZtrsvBatched #ifdef USE_CUDA_NAMES function hipblasZtrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="cublasZtrsvBatched") #else function hipblasZtrsvBatched_(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) bind(c, name="hipblasZtrsvBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrsvBatched_full_rank,& hipblasZtrsvBatched_rank_0,& hipblasZtrsvBatched_rank_1 #endif end interface interface hipblasStrsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasStrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasStrsvStridedBatched") #else function hipblasStrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasStrsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrsvStridedBatched_full_rank,& hipblasStrsvStridedBatched_rank_0,& hipblasStrsvStridedBatched_rank_1 #endif end interface interface hipblasDtrsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasDtrsvStridedBatched") #else function hipblasDtrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasDtrsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrsvStridedBatched_full_rank,& hipblasDtrsvStridedBatched_rank_0,& hipblasDtrsvStridedBatched_rank_1 #endif end interface interface hipblasCtrsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasCtrsvStridedBatched") #else function hipblasCtrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasCtrsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrsvStridedBatched_full_rank,& hipblasCtrsvStridedBatched_rank_0,& hipblasCtrsvStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 2 API !> !> \details !> trsvStridedBatched solves !> !> A_i*x_i = b_i or A_i**T*x_i = b_i, !> !> where (A_i, x_i, b_i) is the i-th instance of the batch. !> x_i and b_i are vectors and A_i is an m by m triangular matrix, for i = 1, ..., batchCount. !> !> The vector x is overwritten on b. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of each b_i. m >= 0. !> !> @param[in] !> A device pointer to the first matrix (A_1) in the batch, of dimension ( lda, m ) !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one A_i matrix to the next A_(i + 1) !> !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> lda = max( 1, m ). !> !> @param[in, out] !> x device pointer to the first vector (x_1) in the batch. !> !> @param[in] !> stridex [hipblasStride] !> stride from the start of one x_i vector to the next x_(i + 1) !> !> @param[in] !> incx [int] !> specifies the increment for the elements of each x_i. !> !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZtrsvStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="cublasZtrsvStridedBatched") #else function hipblasZtrsvStridedBatched_(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) bind(c, name="hipblasZtrsvStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrsvStridedBatched_full_rank,& hipblasZtrsvStridedBatched_rank_0,& hipblasZtrsvStridedBatched_rank_1 #endif end interface interface hipblasSgemm #ifdef USE_CUDA_NAMES function hipblasSgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasSgemm_v2") #else function hipblasSgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasSgemm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgemm_full_rank,& hipblasSgemm_rank_0,& hipblasSgemm_rank_1 #endif end interface interface hipblasDgemm #ifdef USE_CUDA_NAMES function hipblasDgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasDgemm_v2") #else function hipblasDgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasDgemm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgemm_full_rank,& hipblasDgemm_rank_0,& hipblasDgemm_rank_1 #endif end interface interface hipblasCgemm #ifdef USE_CUDA_NAMES function hipblasCgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasCgemm_v2") #else function hipblasCgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasCgemm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgemm_full_rank,& hipblasCgemm_rank_0,& hipblasCgemm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> gemm performs one of the matrix-matrix operations !> !> C = alpha*op( A )*op( B ) + beta*C, !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B and C are matrices, with !> op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> transA [hipblasOperation_t] !> specifies the form of op( A ) !> @param[in] !> transB [hipblasOperation_t] !> specifies the form of op( B ) !> @param[in] !> m [int] !> number or rows of matrices op( A ) and C !> @param[in] !> n [int] !> number of columns of matrices op( B ) and C !> @param[in] !> k [int] !> number of columns of matrix op( A ) and number of rows of matrix op( B ) !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[in] !> B device pointer storing matrix B. !> @param[in] !> ldb [int] !> specifies the leading dimension of B. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in, out] !> C device pointer storing matrix C on the GPU. !> @param[in] !> ldc [int] !> specifies the leading dimension of C. !> interface hipblasZgemm #ifdef USE_CUDA_NAMES function hipblasZgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZgemm_v2") #else function hipblasZgemm_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZgemm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgemm_full_rank,& hipblasZgemm_rank_0,& hipblasZgemm_rank_1 #endif end interface interface hipblasSgemmBatched #ifdef USE_CUDA_NAMES function hipblasSgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasSgemmBatched") #else function hipblasSgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasSgemmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgemmBatched_full_rank,& hipblasSgemmBatched_rank_0,& hipblasSgemmBatched_rank_1 #endif end interface interface hipblasDgemmBatched #ifdef USE_CUDA_NAMES function hipblasDgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasDgemmBatched") #else function hipblasDgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasDgemmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgemmBatched_full_rank,& hipblasDgemmBatched_rank_0,& hipblasDgemmBatched_rank_1 #endif end interface interface hipblasCgemmBatched #ifdef USE_CUDA_NAMES function hipblasCgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasCgemmBatched") #else function hipblasCgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasCgemmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgemmBatched_full_rank,& hipblasCgemmBatched_rank_0,& hipblasCgemmBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> \details !> gemmBatched performs one of the batched matrix-matrix operations !> C_i = alpha*op( A_i )*op( B_i ) + beta*C_i, for i = 1, ..., batchCount. !> where op( X ) is one of !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> alpha and beta are scalars, and A, B and C are strided batched matrices, with !> op( A ) an m by k by batchCount strided_batched matrix, !> op( B ) an k by n by batchCount strided_batched matrix and !> C an m by n by batchCount strided_batched matrix. !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> transA [hipblasOperation_t] !> specifies the form of op( A ) !> @param[in] !> transB [hipblasOperation_t] !> specifies the form of op( B ) !> @param[in] !> m [int] !> matrix dimention m. !> @param[in] !> n [int] !> matrix dimention n. !> @param[in] !> k [int] !> matrix dimention k. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> B device array of device pointers storing each matrix B_i. !> @param[in] !> ldb [int] !> specifies the leading dimension of each B_i. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in, out] !> C device array of device pointers storing each matrix C_i. !> @param[in] !> ldc [int] !> specifies the leading dimension of each C_i. !> @param[in] !> batchCount !> [int] !> number of gemm operations in the batch interface hipblasZgemmBatched #ifdef USE_CUDA_NAMES function hipblasZgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZgemmBatched") #else function hipblasZgemmBatched_(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZgemmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgemmBatched_full_rank,& hipblasZgemmBatched_rank_0,& hipblasZgemmBatched_rank_1 #endif end interface interface hipblasSgemmStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasSgemmStridedBatched") #else function hipblasSgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasSgemmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_long_long),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_long_long),value :: strideB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_long_long),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgemmStridedBatched_full_rank,& hipblasSgemmStridedBatched_rank_0,& hipblasSgemmStridedBatched_rank_1 #endif end interface interface hipblasDgemmStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasDgemmStridedBatched") #else function hipblasDgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasDgemmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_long_long),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_long_long),value :: strideB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_long_long),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgemmStridedBatched_full_rank,& hipblasDgemmStridedBatched_rank_0,& hipblasDgemmStridedBatched_rank_1 #endif end interface interface hipblasCgemmStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCgemmStridedBatched") #else function hipblasCgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCgemmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_long_long),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_long_long),value :: strideB complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_long_long),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgemmStridedBatched_full_rank,& hipblasCgemmStridedBatched_rank_0,& hipblasCgemmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> gemmStridedBatched performs one of the strided batched matrix-matrix operations !> !> C_i = alpha*op( A_i )*op( B_i ) + beta*C_i, for i = 1, ..., batchCount. !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B and C are strided batched matrices, with !> op( A ) an m by k by batchCount strided_batched matrix, !> op( B ) an k by n by batchCount strided_batched matrix and !> C an m by n by batchCount strided_batched matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> transA [hipblasOperation_t] !> specifies the form of op( A ) !> @param[in] !> transB [hipblasOperation_t] !> specifies the form of op( B ) !> @param[in] !> m [int] !> matrix dimention m. !> @param[in] !> n [int] !> matrix dimention n. !> @param[in] !> k [int] !> matrix dimention k. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device pointer pointing to the first matrix A_1. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one A_i matrix to the next A_(i + 1). !> @param[in] !> B device pointer pointing to the first matrix B_1. !> @param[in] !> ldb [int] !> specifies the leading dimension of each B_i. !> @param[in] !> strideB [hipblasStride] !> stride from the start of one B_i matrix to the next B_(i + 1). !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in, out] !> C device pointer pointing to the first matrix C_1. !> @param[in] !> ldc [int] !> specifies the leading dimension of each C_i. !> @param[in] !> strideC [hipblasStride] !> stride from the start of one C_i matrix to the next C_(i + 1). !> @param[in] !> batchCount !> [int] !> number of gemm operatons in the batch !> interface hipblasZgemmStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZgemmStridedBatched") #else function hipblasZgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZgemmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_long_long),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_long_long),value :: strideB complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_long_long),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgemmStridedBatched_full_rank,& hipblasZgemmStridedBatched_rank_0,& hipblasZgemmStridedBatched_rank_1 #endif end interface interface hipblasCherk #ifdef USE_CUDA_NAMES function hipblasCherk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="cublasCherk_v2") #else function hipblasCherk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="hipblasCherk") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherk_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherk_full_rank,& hipblasCherk_rank_0,& hipblasCherk_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herk performs one of the matrix-matrix operations for a Hermitian rank-k update !> !> C := alpha*op( A )*op( A )^H + beta*C !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A ) = A, and A is n by k if transA == HIPBLAS_OP_N !> op( A ) = A^H and A is k by n if transA == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C is a lower triangular matrix !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_C: op(A) = A^H !> HIPBLAS_ON_N: op(A) = A !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if transA = HIPBLAS_OP_N, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if transA = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface hipblasZherk #ifdef USE_CUDA_NAMES function hipblasZherk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="cublasZherk_v2") #else function hipblasZherk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="hipblasZherk") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherk_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherk_full_rank,& hipblasZherk_rank_0,& hipblasZherk_rank_1 #endif end interface interface hipblasCherkBatched #ifdef USE_CUDA_NAMES function hipblasCherkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="cublasCherkBatched") #else function hipblasCherkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="hipblasCherkBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherkBatched_full_rank,& hipblasCherkBatched_rank_0,& hipblasCherkBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkBatched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == HIPBLAS_OP_N !> op( A_i ) = A_i^H and A_i is k by n if transA == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_C: op(A) = A^H !> HIPBLAS_OP_N: op(A) = A !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when transA is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if transA = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZherkBatched #ifdef USE_CUDA_NAMES function hipblasZherkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="cublasZherkBatched") #else function hipblasZherkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="hipblasZherkBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherkBatched_full_rank,& hipblasZherkBatched_rank_0,& hipblasZherkBatched_rank_1 #endif end interface interface hipblasCherkStridedBatched #ifdef USE_CUDA_NAMES function hipblasCherkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCherkStridedBatched") #else function hipblasCherkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCherkStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherkStridedBatched_full_rank,& hipblasCherkStridedBatched_rank_0,& hipblasCherkStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkStridedBatched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == HIPBLAS_OP_N !> op( A_i ) = A_i^H and A_i is k by n if transA == HIPBLAS_OP_C !> !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_C: op(A) = A^H !> HIPBLAS_OP_N: op(A) = A !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when transA is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if transA = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZherkStridedBatched #ifdef USE_CUDA_NAMES function hipblasZherkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZherkStridedBatched") #else function hipblasZherkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZherkStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherkStridedBatched_full_rank,& hipblasZherkStridedBatched_rank_0,& hipblasZherkStridedBatched_rank_1 #endif end interface interface hipblasCherkx #ifdef USE_CUDA_NAMES function hipblasCherkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasCherkx") #else function hipblasCherkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasCherkx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherkx_full_rank,& hipblasCherkx_rank_0,& hipblasCherkx_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkx performs one of the matrix-matrix operations for a Hermitian rank-k update !> !> C := alpha*op( A )*op( B )^H + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrices, and !> C is a n x n Hermitian matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian. !> !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == HIPBLAS_OP_N !> op( A ) = A^H, op( B ) = B^H, and A and B are k by n if trans == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_C: op( A ) = A^H, op( B ) = B^H !> HIPBLAS_OP_N: op( A ) = A, op( B ) = B !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = HIPBLAS_OP_N, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = HIPBLAS_OP_N, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface hipblasZherkx #ifdef USE_CUDA_NAMES function hipblasZherkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZherkx") #else function hipblasZherkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZherkx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherkx_full_rank,& hipblasZherkx_rank_0,& hipblasZherkx_rank_1 #endif end interface interface hipblasCherkxBatched #ifdef USE_CUDA_NAMES function hipblasCherkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasCherkxBatched") #else function hipblasCherkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasCherkxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherkxBatched_full_rank,& hipblasCherkxBatched_rank_0,& hipblasCherkxBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkxBatched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_C: op(A) = A^H !> HIPBLAS_OP_N: op(A) = A !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZherkxBatched #ifdef USE_CUDA_NAMES function hipblasZherkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZherkxBatched") #else function hipblasZherkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZherkxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherkxBatched_full_rank,& hipblasZherkxBatched_rank_0,& hipblasZherkxBatched_rank_1 #endif end interface interface hipblasCherkxStridedBatched #ifdef USE_CUDA_NAMES function hipblasCherkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCherkxStridedBatched") #else function hipblasCherkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCherkxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCherkxStridedBatched_full_rank,& hipblasCherkxStridedBatched_rank_0,& hipblasCherkxStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> herkxStridedBatched performs a batch of the matrix-matrix operations for a Hermitian rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_C: op( A_i ) = A_i^H, op( B_i ) = B_i^H !> HIPBLAS_OP_N: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZherkxStridedBatched #ifdef USE_CUDA_NAMES function hipblasZherkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZherkxStridedBatched") #else function hipblasZherkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZherkxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZherkxStridedBatched_full_rank,& hipblasZherkxStridedBatched_rank_0,& hipblasZherkxStridedBatched_rank_1 #endif end interface interface hipblasCher2k #ifdef USE_CUDA_NAMES function hipblasCher2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasCher2k_v2") #else function hipblasCher2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasCher2k") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2k_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher2k_full_rank,& hipblasCher2k_rank_0,& hipblasCher2k_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> her2k performs one of the matrix-matrix operations for a Hermitian rank-2k update !> !> C := alpha*op( A )*op( B )^H + conj(alpha)*op( B )*op( A )^H + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrices, and !> C is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == HIPBLAS_OP_N !> op( A ) = A^H, op( B ) = B^H, and A and B are k by n if trans == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_C: op( A ) = A^H, op( B ) = B^H !> HIPBLAS_OP_N: op( A ) = A, op( B ) = B !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = HIPBLAS_OP_N, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = HIPBLAS_OP_N, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface hipblasZher2k #ifdef USE_CUDA_NAMES function hipblasZher2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZher2k_v2") #else function hipblasZher2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZher2k") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2k_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher2k_full_rank,& hipblasZher2k_rank_0,& hipblasZher2k_rank_1 #endif end interface interface hipblasCher2kBatched #ifdef USE_CUDA_NAMES function hipblasCher2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasCher2kBatched") #else function hipblasCher2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasCher2kBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher2kBatched_full_rank,& hipblasCher2kBatched_rank_0,& hipblasCher2kBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> her2kBatched performs a batch of the matrix-matrix operations for a Hermitian rank-2k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + conj(alpha)*op( B_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_C: op(A) = A^H !> HIPBLAS_OP_N: op(A) = A !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZher2kBatched #ifdef USE_CUDA_NAMES function hipblasZher2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZher2kBatched") #else function hipblasZher2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZher2kBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher2kBatched_full_rank,& hipblasZher2kBatched_rank_0,& hipblasZher2kBatched_rank_1 #endif end interface interface hipblasCher2kStridedBatched #ifdef USE_CUDA_NAMES function hipblasCher2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCher2kStridedBatched") #else function hipblasCher2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCher2kStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCher2kStridedBatched_full_rank,& hipblasCher2kStridedBatched_rank_0,& hipblasCher2kStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> her2kStridedBatched performs a batch of the matrix-matrix operations for a Hermitian rank-2k update !> !> C_i := alpha*op( A_i )*op( B_i )^H + conj(alpha)*op( B_i )*op( A_i )^H + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and !> C_i is a n x n Hermitian matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == HIPBLAS_OP_C !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_C: op( A_i ) = A_i^H, op( B_i ) = B_i^H !> HIPBLAS_OP_N: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> The imaginary component of the diagonal elements are not used but are set to zero unless quick return. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZher2kStridedBatched #ifdef USE_CUDA_NAMES function hipblasZher2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZher2kStridedBatched") #else function hipblasZher2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZher2kStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZher2kStridedBatched_full_rank,& hipblasZher2kStridedBatched_rank_0,& hipblasZher2kStridedBatched_rank_1 #endif end interface interface hipblasSsymm #ifdef USE_CUDA_NAMES function hipblasSsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasSsymm_v2") #else function hipblasSsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasSsymm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsymm_full_rank,& hipblasSsymm_rank_0,& hipblasSsymm_rank_1 #endif end interface interface hipblasDsymm #ifdef USE_CUDA_NAMES function hipblasDsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasDsymm_v2") #else function hipblasDsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasDsymm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsymm_full_rank,& hipblasDsymm_rank_0,& hipblasDsymm_rank_1 #endif end interface interface hipblasCsymm #ifdef USE_CUDA_NAMES function hipblasCsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasCsymm_v2") #else function hipblasCsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasCsymm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsymm_full_rank,& hipblasCsymm_rank_0,& hipblasCsymm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> symm performs one of the matrix-matrix operations: !> !> C := alpha*A*B + beta*C if side == HIPBLAS_SIDE_LEFT, !> C := alpha*B*A + beta*C if side == HIPBLAS_SIDE_RIGHT, !> !> where alpha and beta are scalars, B and C are m by n matrices, and !> A is a symmetric matrix stored as either upper or lower. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: C := alpha*A*B + beta*C !> HIPBLAS_SIDE_RIGHT: C := alpha*B*A + beta*C !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix !> !> @param[in] !> m [int] !> m specifies the number of rows of B and C. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B and C. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A and B are not referenced. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> A is m by m if side == HIPBLAS_SIDE_LEFT !> A is n by n if side == HIPBLAS_SIDE_RIGHT !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B pointer storing matrix B on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ) !> interface hipblasZsymm #ifdef USE_CUDA_NAMES function hipblasZsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZsymm_v2") #else function hipblasZsymm_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZsymm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsymm_full_rank,& hipblasZsymm_rank_0,& hipblasZsymm_rank_1 #endif end interface interface hipblasSsymmBatched #ifdef USE_CUDA_NAMES function hipblasSsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasSsymmBatched") #else function hipblasSsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasSsymmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsymmBatched_full_rank,& hipblasSsymmBatched_rank_0,& hipblasSsymmBatched_rank_1 #endif end interface interface hipblasDsymmBatched #ifdef USE_CUDA_NAMES function hipblasDsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasDsymmBatched") #else function hipblasDsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasDsymmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsymmBatched_full_rank,& hipblasDsymmBatched_rank_0,& hipblasDsymmBatched_rank_1 #endif end interface interface hipblasCsymmBatched #ifdef USE_CUDA_NAMES function hipblasCsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasCsymmBatched") #else function hipblasCsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasCsymmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsymmBatched_full_rank,& hipblasCsymmBatched_rank_0,& hipblasCsymmBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> symmBatched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == HIPBLAS_SIDE_LEFT, !> C_i := alpha*B_i*A_i + beta*C_i if side == HIPBLAS_SIDE_RIGHT, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a symmetric matrix stored as either upper or lower. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: C_i := alpha*A_i*B_i + beta*C_i !> HIPBLAS_SIDE_RIGHT: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix !> !> @param[in] !> m [int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> A_i is m by m if side == HIPBLAS_SIDE_LEFT !> A_i is n by n if side == HIPBLAS_SIDE_RIGHT !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B device array of device pointers storing each matrix B_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C_i need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C_i. ldc >= max( 1, m ) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsymmBatched #ifdef USE_CUDA_NAMES function hipblasZsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZsymmBatched") #else function hipblasZsymmBatched_(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZsymmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsymmBatched_full_rank,& hipblasZsymmBatched_rank_0,& hipblasZsymmBatched_rank_1 #endif end interface interface hipblasSsymmStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasSsymmStridedBatched") #else function hipblasSsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasSsymmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsymmStridedBatched_full_rank,& hipblasSsymmStridedBatched_rank_0,& hipblasSsymmStridedBatched_rank_1 #endif end interface interface hipblasDsymmStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasDsymmStridedBatched") #else function hipblasDsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasDsymmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsymmStridedBatched_full_rank,& hipblasDsymmStridedBatched_rank_0,& hipblasDsymmStridedBatched_rank_1 #endif end interface interface hipblasCsymmStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCsymmStridedBatched") #else function hipblasCsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCsymmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsymmStridedBatched_full_rank,& hipblasCsymmStridedBatched_rank_0,& hipblasCsymmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> symmStridedBatched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == HIPBLAS_SIDE_LEFT, !> C_i := alpha*B_i*A_i + beta*C_i if side == HIPBLAS_SIDE_RIGHT, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a symmetric matrix stored as either upper or lower. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: C_i := alpha*A_i*B_i + beta*C_i !> HIPBLAS_SIDE_RIGHT: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix !> !> @param[in] !> m [int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device pointer to first matrix A_1 !> A_i is m by m if side == HIPBLAS_SIDE_LEFT !> A_i is n by n if side == HIPBLAS_SIDE_RIGHT !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B device pointer to first matrix B_1 of dimension (ldb, n) on the GPU. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ) !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device pointer to first matrix C_1 of dimension (ldc, n) on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsymmStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZsymmStridedBatched") #else function hipblasZsymmStridedBatched_(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZsymmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsymmStridedBatched_full_rank,& hipblasZsymmStridedBatched_rank_0,& hipblasZsymmStridedBatched_rank_1 #endif end interface interface hipblasSsyrk #ifdef USE_CUDA_NAMES function hipblasSsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="cublasSsyrk_v2") #else function hipblasSsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="hipblasSsyrk") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrk_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrk_full_rank,& hipblasSsyrk_rank_0,& hipblasSsyrk_rank_1 #endif end interface interface hipblasDsyrk #ifdef USE_CUDA_NAMES function hipblasDsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="cublasDsyrk_v2") #else function hipblasDsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="hipblasDsyrk") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrk_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrk_full_rank,& hipblasDsyrk_rank_0,& hipblasDsyrk_rank_1 #endif end interface interface hipblasCsyrk #ifdef USE_CUDA_NAMES function hipblasCsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="cublasCsyrk_v2") #else function hipblasCsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="hipblasCsyrk") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrk_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrk_full_rank,& hipblasCsyrk_rank_0,& hipblasCsyrk_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrk performs one of the matrix-matrix operations for a symmetric rank-k update !> !> C := alpha*op( A )*op( A )^T + beta*C !> !> where alpha and beta are scalars, op(A) is an n by k matrix, and !> C is a symmetric n x n matrix stored as either upper or lower. !> !> op( A ) = A, and A is n by k if transA == HIPBLAS_OP_N !> op( A ) = A^T and A is k by n if transA == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C is a lower triangular matrix !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_T: op(A) = A^T !> HIPBLAS_OP_N: op(A) = A !> HIPBLAS_OP_C: op(A) = A^T !> !> HIPBLAS_OP_C is not supported for complex types, see cherk !> and zherk. !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if transA = HIPBLAS_OP_N, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if transA = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface hipblasZsyrk #ifdef USE_CUDA_NAMES function hipblasZsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="cublasZsyrk_v2") #else function hipblasZsyrk_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) bind(c, name="hipblasZsyrk") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrk_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrk_full_rank,& hipblasZsyrk_rank_0,& hipblasZsyrk_rank_1 #endif end interface interface hipblasSsyrkBatched #ifdef USE_CUDA_NAMES function hipblasSsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="cublasSsyrkBatched") #else function hipblasSsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="hipblasSsyrkBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrkBatched_full_rank,& hipblasSsyrkBatched_rank_0,& hipblasSsyrkBatched_rank_1 #endif end interface interface hipblasDsyrkBatched #ifdef USE_CUDA_NAMES function hipblasDsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="cublasDsyrkBatched") #else function hipblasDsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="hipblasDsyrkBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrkBatched_full_rank,& hipblasDsyrkBatched_rank_0,& hipblasDsyrkBatched_rank_1 #endif end interface interface hipblasCsyrkBatched #ifdef USE_CUDA_NAMES function hipblasCsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="cublasCsyrkBatched") #else function hipblasCsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="hipblasCsyrkBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrkBatched_full_rank,& hipblasCsyrkBatched_rank_0,& hipblasCsyrkBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkBatched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) is an n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == HIPBLAS_OP_N !> op( A_i ) = A_i^T and A_i is k by n if transA == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_T: op(A) = A^T !> HIPBLAS_OP_N: op(A) = A !> HIPBLAS_OP_C: op(A) = A^T !> !> HIPBLAS_OP_C is not supported for complex types, see cherk !> and zherk. !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when transA is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if transA = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsyrkBatched #ifdef USE_CUDA_NAMES function hipblasZsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="cublasZsyrkBatched") #else function hipblasZsyrkBatched_(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) bind(c, name="hipblasZsyrkBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrkBatched_full_rank,& hipblasZsyrkBatched_rank_0,& hipblasZsyrkBatched_rank_1 #endif end interface interface hipblasSsyrkStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="cublasSsyrkStridedBatched") #else function hipblasSsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasSsyrkStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrkStridedBatched_full_rank,& hipblasSsyrkStridedBatched_rank_0,& hipblasSsyrkStridedBatched_rank_1 #endif end interface interface hipblasDsyrkStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="cublasDsyrkStridedBatched") #else function hipblasDsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasDsyrkStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrkStridedBatched_full_rank,& hipblasDsyrkStridedBatched_rank_0,& hipblasDsyrkStridedBatched_rank_1 #endif end interface interface hipblasCsyrkStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCsyrkStridedBatched") #else function hipblasCsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCsyrkStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrkStridedBatched_full_rank,& hipblasCsyrkStridedBatched_rank_0,& hipblasCsyrkStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkStridedBatched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( A_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) is an n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, and A_i is n by k if transA == HIPBLAS_OP_N !> op( A_i ) = A_i^T and A_i is k by n if transA == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_T: op(A) = A^T !> HIPBLAS_OP_N: op(A) = A !> HIPBLAS_OP_C: op(A) = A^T !> !> HIPBLAS_OP_C is not supported for complex types, see cherk !> and zherk. !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when transA is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if transA = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsyrkStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZsyrkStridedBatched") #else function hipblasZsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZsyrkStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrkStridedBatched_full_rank,& hipblasZsyrkStridedBatched_rank_0,& hipblasZsyrkStridedBatched_rank_1 #endif end interface interface hipblasSsyr2k #ifdef USE_CUDA_NAMES function hipblasSsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasSsyr2k_v2") #else function hipblasSsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasSsyr2k") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2k_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr2k_full_rank,& hipblasSsyr2k_rank_0,& hipblasSsyr2k_rank_1 #endif end interface interface hipblasDsyr2k #ifdef USE_CUDA_NAMES function hipblasDsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasDsyr2k_v2") #else function hipblasDsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasDsyr2k") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2k_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr2k_full_rank,& hipblasDsyr2k_rank_0,& hipblasDsyr2k_rank_1 #endif end interface interface hipblasCsyr2k #ifdef USE_CUDA_NAMES function hipblasCsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasCsyr2k_v2") #else function hipblasCsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasCsyr2k") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2k_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr2k_full_rank,& hipblasCsyr2k_rank_0,& hipblasCsyr2k_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syr2k performs one of the matrix-matrix operations for a symmetric rank-2k update !> !> C := alpha*(op( A )*op( B )^T + op( B )*op( A )^T) + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrix, and !> C is a symmetric n x n matrix stored as either upper or lower. !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == HIPBLAS_OP_N !> op( A ) = A^T, op( B ) = B^T, and A and B are k by n if trans == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_T: op( A ) = A^T, op( B ) = B^T !> HIPBLAS_OP_N: op( A ) = A, op( B ) = B !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A) and op(B). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = HIPBLAS_OP_N, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = HIPBLAS_OP_N, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface hipblasZsyr2k #ifdef USE_CUDA_NAMES function hipblasZsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZsyr2k_v2") #else function hipblasZsyr2k_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZsyr2k") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2k_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr2k_full_rank,& hipblasZsyr2k_rank_0,& hipblasZsyr2k_rank_1 #endif end interface interface hipblasSsyr2kBatched #ifdef USE_CUDA_NAMES function hipblasSsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasSsyr2kBatched") #else function hipblasSsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasSsyr2kBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr2kBatched_full_rank,& hipblasSsyr2kBatched_rank_0,& hipblasSsyr2kBatched_rank_1 #endif end interface interface hipblasDsyr2kBatched #ifdef USE_CUDA_NAMES function hipblasDsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasDsyr2kBatched") #else function hipblasDsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasDsyr2kBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr2kBatched_full_rank,& hipblasDsyr2kBatched_rank_0,& hipblasDsyr2kBatched_rank_1 #endif end interface interface hipblasCsyr2kBatched #ifdef USE_CUDA_NAMES function hipblasCsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasCsyr2kBatched") #else function hipblasCsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasCsyr2kBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr2kBatched_full_rank,& hipblasCsyr2kBatched_rank_0,& hipblasCsyr2kBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syr2kBatched performs a batch of the matrix-matrix operations for a symmetric rank-2k update !> !> C_i := alpha*(op( A_i )*op( B_i )^T + op( B_i )*op( A_i )^T) + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_T: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> HIPBLAS_OP_N: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsyr2kBatched #ifdef USE_CUDA_NAMES function hipblasZsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZsyr2kBatched") #else function hipblasZsyr2kBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZsyr2kBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr2kBatched_full_rank,& hipblasZsyr2kBatched_rank_0,& hipblasZsyr2kBatched_rank_1 #endif end interface interface hipblasSsyr2kStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasSsyr2kStridedBatched") #else function hipblasSsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasSsyr2kStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyr2kStridedBatched_full_rank,& hipblasSsyr2kStridedBatched_rank_0,& hipblasSsyr2kStridedBatched_rank_1 #endif end interface interface hipblasDsyr2kStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasDsyr2kStridedBatched") #else function hipblasDsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasDsyr2kStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyr2kStridedBatched_full_rank,& hipblasDsyr2kStridedBatched_rank_0,& hipblasDsyr2kStridedBatched_rank_1 #endif end interface interface hipblasCsyr2kStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasCsyr2kStridedBatched") #else function hipblasCsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasCsyr2kStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyr2kStridedBatched_full_rank,& hipblasCsyr2kStridedBatched_rank_0,& hipblasCsyr2kStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syr2kStridedBatched performs a batch of the matrix-matrix operations for a symmetric rank-2k update !> !> C_i := alpha*(op( A_i )*op( B_i )^T + op( B_i )*op( A_i )^T) + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_T: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> HIPBLAS_OP_N: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> stride_B [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsyr2kStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZsyr2kStridedBatched") #else function hipblasZsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZsyr2kStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyr2kStridedBatched_full_rank,& hipblasZsyr2kStridedBatched_rank_0,& hipblasZsyr2kStridedBatched_rank_1 #endif end interface interface hipblasSsyrkx #ifdef USE_CUDA_NAMES function hipblasSsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasSsyrkx") #else function hipblasSsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasSsyrkx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrkx_full_rank,& hipblasSsyrkx_rank_0,& hipblasSsyrkx_rank_1 #endif end interface interface hipblasDsyrkx #ifdef USE_CUDA_NAMES function hipblasDsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasDsyrkx") #else function hipblasDsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasDsyrkx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrkx_full_rank,& hipblasDsyrkx_rank_0,& hipblasDsyrkx_rank_1 #endif end interface interface hipblasCsyrkx #ifdef USE_CUDA_NAMES function hipblasCsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasCsyrkx") #else function hipblasCsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasCsyrkx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrkx_full_rank,& hipblasCsyrkx_rank_0,& hipblasCsyrkx_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkx performs one of the matrix-matrix operations for a symmetric rank-k update !> !> C := alpha*op( A )*op( B )^T + beta*C !> !> where alpha and beta are scalars, op(A) and op(B) are n by k matrix, and !> C is a symmetric n x n matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be symmetric. !> !> op( A ) = A, op( B ) = B, and A and B are n by k if trans == HIPBLAS_OP_N !> op( A ) = A^T, op( B ) = B^T, and A and B are k by n if trans == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_T: op( A ) = A^T, op( B ) = B^T !> HIPBLAS_OP_N: op( A ) = A, op( B ) = B !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A) and op(B). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> Martrix dimension is ( lda, k ) when if trans = HIPBLAS_OP_N, otherwise (lda, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> B pointer storing matrix B on the GPU. !> Martrix dimension is ( ldb, k ) when if trans = HIPBLAS_OP_N, otherwise (ldb, n) !> only the upper/lower triangular part is accessed. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> interface hipblasZsyrkx #ifdef USE_CUDA_NAMES function hipblasZsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZsyrkx") #else function hipblasZsyrkx_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZsyrkx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrkx_full_rank,& hipblasZsyrkx_rank_0,& hipblasZsyrkx_rank_1 #endif end interface interface hipblasSsyrkxBatched #ifdef USE_CUDA_NAMES function hipblasSsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasSsyrkxBatched") #else function hipblasSsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasSsyrkxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrkxBatched_full_rank,& hipblasSsyrkxBatched_rank_0,& hipblasSsyrkxBatched_rank_1 #endif end interface interface hipblasDsyrkxBatched #ifdef USE_CUDA_NAMES function hipblasDsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasDsyrkxBatched") #else function hipblasDsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasDsyrkxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrkxBatched_full_rank,& hipblasDsyrkxBatched_rank_0,& hipblasDsyrkxBatched_rank_1 #endif end interface interface hipblasCsyrkxBatched #ifdef USE_CUDA_NAMES function hipblasCsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasCsyrkxBatched") #else function hipblasCsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasCsyrkxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrkxBatched_full_rank,& hipblasCsyrkxBatched_rank_0,& hipblasCsyrkxBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkxBatched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A_i )*op( B_i )^T will be symmetric. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_T: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> HIPBLAS_OP_N: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A device array of device pointers storing each matrix_i A of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> B device array of device pointers storing each matrix_i B of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsyrkxBatched #ifdef USE_CUDA_NAMES function hipblasZsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZsyrkxBatched") #else function hipblasZsyrkxBatched_(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZsyrkxBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrkxBatched_full_rank,& hipblasZsyrkxBatched_rank_0,& hipblasZsyrkxBatched_rank_1 #endif end interface interface hipblasSsyrkxStridedBatched #ifdef USE_CUDA_NAMES function hipblasSsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="cublasSsyrkxStridedBatched") #else function hipblasSsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="hipblasSsyrkxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stridec integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSsyrkxStridedBatched_full_rank,& hipblasSsyrkxStridedBatched_rank_0,& hipblasSsyrkxStridedBatched_rank_1 #endif end interface interface hipblasDsyrkxStridedBatched #ifdef USE_CUDA_NAMES function hipblasDsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="cublasDsyrkxStridedBatched") #else function hipblasDsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="hipblasDsyrkxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stridec integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDsyrkxStridedBatched_full_rank,& hipblasDsyrkxStridedBatched_rank_0,& hipblasDsyrkxStridedBatched_rank_1 #endif end interface interface hipblasCsyrkxStridedBatched #ifdef USE_CUDA_NAMES function hipblasCsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="cublasCsyrkxStridedBatched") #else function hipblasCsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="hipblasCsyrkxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stridec integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCsyrkxStridedBatched_full_rank,& hipblasCsyrkxStridedBatched_rank_0,& hipblasCsyrkxStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> syrkxStridedBatched performs a batch of the matrix-matrix operations for a symmetric rank-k update !> !> C_i := alpha*op( A_i )*op( B_i )^T + beta*C_i !> !> where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and !> C_i is a symmetric n x n matrix stored as either upper or lower. !> This routine should only be used when the caller can guarantee that the result of op( A_i )*op( B_i )^T will be symmetric. !> !> op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == HIPBLAS_OP_N !> op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == HIPBLAS_OP_T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: C_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: C_i is a lower triangular matrix !> !> @param[in] !> trans [hipblasOperation_t] !> HIPBLAS_OP_T: op( A_i ) = A_i^T, op( B_i ) = B_i^T !> HIPBLAS_OP_N: op( A_i ) = A_i, op( B_i ) = B_i !> !> @param[in] !> n [int] !> n specifies the number of rows and columns of C_i. n >= 0. !> !> @param[in] !> k [int] !> k specifies the number of columns of op(A). k >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and A need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (lda, n) !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if trans = HIPBLAS_OP_N, lda >= max( 1, n ), !> otherwise lda >= max( 1, k ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) !> when trans is HIPBLAS_OP_N, otherwise of dimension (ldb, n) !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if trans = HIPBLAS_OP_N, ldb >= max( 1, n ), !> otherwise ldb >= max( 1, k ). !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C Device pointer to the first matrix C_1 on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, n ). !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZsyrkxStridedBatched #ifdef USE_CUDA_NAMES function hipblasZsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="cublasZsyrkxStridedBatched") #else function hipblasZsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) bind(c, name="hipblasZsyrkxStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stridec integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZsyrkxStridedBatched_full_rank,& hipblasZsyrkxStridedBatched_rank_0,& hipblasZsyrkxStridedBatched_rank_1 #endif end interface interface hipblasSgeam #ifdef USE_CUDA_NAMES function hipblasSgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="cublasSgeam") #else function hipblasSgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="hipblasSgeam") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeam_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgeam_full_rank,& hipblasSgeam_rank_0,& hipblasSgeam_rank_1 #endif end interface interface hipblasDgeam #ifdef USE_CUDA_NAMES function hipblasDgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="cublasDgeam") #else function hipblasDgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="hipblasDgeam") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeam_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgeam_full_rank,& hipblasDgeam_rank_0,& hipblasDgeam_rank_1 #endif end interface interface hipblasCgeam #ifdef USE_CUDA_NAMES function hipblasCgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="cublasCgeam") #else function hipblasCgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="hipblasCgeam") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeam_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeam_full_rank,& hipblasCgeam_rank_0,& hipblasCgeam_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> geam performs one of the matrix-matrix operations !> !> C = alpha*op( A ) + beta*op( B ), !> !> where op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T or !> op( X ) = X**H, !> !> alpha and beta are scalars, and A, B and C are matrices, with !> op( A ) an m by n matrix, op( B ) an m by n matrix, and C an m by n matrix. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> transA [hipblasOperation_t] !> specifies the form of op( A ) !> @param[in] !> transB [hipblasOperation_t] !> specifies the form of op( B ) !> @param[in] !> m [int] !> matrix dimension m. !> @param[in] !> n [int] !> matrix dimension n. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in] !> B device pointer storing matrix B. !> @param[in] !> ldb [int] !> specifies the leading dimension of B. !> @param[in, out] !> C device pointer storing matrix C. !> @param[in] !> ldc [int] !> specifies the leading dimension of C. !> interface hipblasZgeam #ifdef USE_CUDA_NAMES function hipblasZgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="cublasZgeam") #else function hipblasZgeam_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) bind(c, name="hipblasZgeam") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeam_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeam_full_rank,& hipblasZgeam_rank_0,& hipblasZgeam_rank_1 #endif end interface interface hipblasSgeamBatched #ifdef USE_CUDA_NAMES function hipblasSgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="cublasSgeamBatched") #else function hipblasSgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="hipblasSgeamBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_float) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgeamBatched_full_rank,& hipblasSgeamBatched_rank_0,& hipblasSgeamBatched_rank_1 #endif end interface interface hipblasDgeamBatched #ifdef USE_CUDA_NAMES function hipblasDgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="cublasDgeamBatched") #else function hipblasDgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="hipblasDgeamBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda real(c_double) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgeamBatched_full_rank,& hipblasDgeamBatched_rank_0,& hipblasDgeamBatched_rank_1 #endif end interface interface hipblasCgeamBatched #ifdef USE_CUDA_NAMES function hipblasCgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="cublasCgeamBatched") #else function hipblasCgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="hipblasCgeamBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_float_complex) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeamBatched_full_rank,& hipblasCgeamBatched_rank_0,& hipblasCgeamBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> geamBatched performs one of the batched matrix-matrix operations !> !> C_i = alpha*op( A_i ) + beta*op( B_i ) for i = 0, 1, ... batchCount - 1 !> !> where alpha and beta are scalars, and op(A_i), op(B_i) and C_i are m by n matrices !> and op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> transA [hipblasOperation_t] !> specifies the form of op( A ) !> @param[in] !> transB [hipblasOperation_t] !> specifies the form of op( B ) !> @param[in] !> m [int] !> matrix dimension m. !> @param[in] !> n [int] !> matrix dimension n. !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when transA == HIPBLAS_OP_N and !> is n when transA == HIPBLAS_OP_T. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> @param[in] !> B device array of device pointers storing each matrix B_i on the GPU. !> Each B_i is of dimension ( ldb, k ), where k is m !> when transB == HIPBLAS_OP_N and !> is n when transB == HIPBLAS_OP_T. !> @param[in] !> ldb [int] !> specifies the leading dimension of B. !> @param[in, out] !> C device array of device pointers storing each matrix C_i on the GPU. !> Each C_i is of dimension ( ldc, n ). !> @param[in] !> ldc [int] !> specifies the leading dimension of C. !> !> @param[in] !> batchCount [int] !> number of instances i in the batch. !> interface hipblasZgeamBatched #ifdef USE_CUDA_NAMES function hipblasZgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="cublasZgeamBatched") #else function hipblasZgeamBatched_(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) bind(c, name="hipblasZgeamBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda complex(c_double_complex) :: beta type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeamBatched_full_rank,& hipblasZgeamBatched_rank_0,& hipblasZgeamBatched_rank_1 #endif end interface interface hipblasSgeamStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="cublasSgeamStridedBatched") #else function hipblasSgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="hipblasSgeamStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA real(c_float) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgeamStridedBatched_full_rank,& hipblasSgeamStridedBatched_rank_0,& hipblasSgeamStridedBatched_rank_1 #endif end interface interface hipblasDgeamStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="cublasDgeamStridedBatched") #else function hipblasDgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="hipblasDgeamStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA real(c_double) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgeamStridedBatched_full_rank,& hipblasDgeamStridedBatched_rank_0,& hipblasDgeamStridedBatched_rank_1 #endif end interface interface hipblasCgeamStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="cublasCgeamStridedBatched") #else function hipblasCgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="hipblasCgeamStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA complex(c_float_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeamStridedBatched_full_rank,& hipblasCgeamStridedBatched_rank_0,& hipblasCgeamStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> geamStridedBatched performs one of the batched matrix-matrix operations !> !> C_i = alpha*op( A_i ) + beta*op( B_i ) for i = 0, 1, ... batchCount - 1 !> !> where alpha and beta are scalars, and op(A_i), op(B_i) and C_i are m by n matrices !> and op( X ) is one of !> !> op( X ) = X or !> op( X ) = X**T !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> transA [hipblasOperation_t] !> specifies the form of op( A ) !> !> @param[in] !> transB [hipblasOperation_t] !> specifies the form of op( B ) !> !> @param[in] !> m [int] !> matrix dimension m. !> !> @param[in] !> n [int] !> matrix dimension n. !> !> @param[in] !> alpha device pointer or host pointer specifying the scalar alpha. !> !> @param[in] !> A device pointer to the first matrix A_0 on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when transA == HIPBLAS_OP_N and !> is n when transA == HIPBLAS_OP_T. !> !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> beta device pointer or host pointer specifying the scalar beta. !> !> @param[in] !> B pointer to the first matrix B_0 on the GPU. !> Each B_i is of dimension ( ldb, k ), where k is m !> when transB == HIPBLAS_OP_N and !> is n when transB == HIPBLAS_OP_T. !> !> @param[in] !> ldb [int] !> specifies the leading dimension of B. !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in, out] !> C pointer to the first matrix C_0 on the GPU. !> Each C_i is of dimension ( ldc, n ). !> !> @param[in] !> ldc [int] !> specifies the leading dimension of C. !> !> @param[in] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances i in the batch. !> interface hipblasZgeamStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="cublasZgeamStridedBatched") #else function hipblasZgeamStridedBatched_(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) bind(c, name="hipblasZgeamStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: transa integer(kind(HIPBLAS_OP_N)),value :: transb integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA complex(c_double_complex) :: beta type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeamStridedBatched_full_rank,& hipblasZgeamStridedBatched_rank_0,& hipblasZgeamStridedBatched_rank_1 #endif end interface interface hipblasChemm #ifdef USE_CUDA_NAMES function hipblasChemm_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasChemm_v2") #else function hipblasChemm_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasChemm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChemm_full_rank,& hipblasChemm_rank_0,& hipblasChemm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> hemm performs one of the matrix-matrix operations: !> !> C := alpha*A*B + beta*C if side == HIPBLAS_SIDE_LEFT, !> C := alpha*B*A + beta*C if side == HIPBLAS_SIDE_RIGHT, !> !> where alpha and beta are scalars, B and C are m by n matrices, and !> A is a Hermitian matrix stored as either upper or lower. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: C := alpha*A*B + beta*C !> HIPBLAS_SIDE_RIGHT: C := alpha*B*A + beta*C !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix !> !> @param[in] !> m [int] !> m specifies the number of rows of B and C. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B and C. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A and B are not referenced. !> !> @param[in] !> A pointer storing matrix A on the GPU. !> A is m by m if side == HIPBLAS_SIDE_LEFT !> A is n by n if side == HIPBLAS_SIDE_RIGHT !> Only the upper/lower triangular part is accessed. !> The imaginary component of the diagonal elements is not used. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B pointer storing matrix B on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C pointer storing matrix C on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ) !> interface hipblasZhemm #ifdef USE_CUDA_NAMES function hipblasZhemm_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="cublasZhemm_v2") #else function hipblasZhemm_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) bind(c, name="hipblasZhemm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhemm_full_rank,& hipblasZhemm_rank_0,& hipblasZhemm_rank_1 #endif end interface interface hipblasChemmBatched #ifdef USE_CUDA_NAMES function hipblasChemmBatched_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasChemmBatched") #else function hipblasChemmBatched_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasChemmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChemmBatched_full_rank,& hipblasChemmBatched_rank_0,& hipblasChemmBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> hemmBatched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == HIPBLAS_SIDE_LEFT, !> C_i := alpha*B_i*A_i + beta*C_i if side == HIPBLAS_SIDE_RIGHT, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a Hermitian matrix stored as either upper or lower. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: C_i := alpha*A_i*B_i + beta*C_i !> HIPBLAS_SIDE_RIGHT: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix !> !> @param[in] !> m [int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> A_i is m by m if side == HIPBLAS_SIDE_LEFT !> A_i is n by n if side == HIPBLAS_SIDE_RIGHT !> Only the upper/lower triangular part is accessed. !> The imaginary component of the diagonal elements is not used. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> B device array of device pointers storing each matrix B_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C_i need not be set before entry. !> !> @param[in] !> C device array of device pointers storing each matrix C_i on the GPU. !> Matrix dimension is m by n !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C_i. ldc >= max( 1, m ) !> !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZhemmBatched #ifdef USE_CUDA_NAMES function hipblasZhemmBatched_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="cublasZhemmBatched") #else function hipblasZhemmBatched_(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) bind(c, name="hipblasZhemmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhemmBatched_full_rank,& hipblasZhemmBatched_rank_0,& hipblasZhemmBatched_rank_1 #endif end interface interface hipblasChemmStridedBatched #ifdef USE_CUDA_NAMES function hipblasChemmStridedBatched_(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasChemmStridedBatched") #else function hipblasChemmStridedBatched_(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasChemmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasChemmStridedBatched_full_rank,& hipblasChemmStridedBatched_rank_0,& hipblasChemmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> hemmStridedBatched performs a batch of the matrix-matrix operations: !> !> C_i := alpha*A_i*B_i + beta*C_i if side == HIPBLAS_SIDE_LEFT, !> C_i := alpha*B_i*A_i + beta*C_i if side == HIPBLAS_SIDE_RIGHT, !> !> where alpha and beta are scalars, B_i and C_i are m by n matrices, and !> A_i is a Hermitian matrix stored as either upper or lower. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: C_i := alpha*A_i*B_i + beta*C_i !> HIPBLAS_SIDE_RIGHT: C_i := alpha*B_i*A_i + beta*C_i !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A_i is an upper triangular matrix !> HIPBLAS_FILL_MODE_LOWER: A_i is a lower triangular matrix !> !> @param[in] !> m [int] !> m specifies the number of rows of B_i and C_i. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B_i and C_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i and B_i are not referenced. !> !> @param[in] !> A device pointer to first matrix A_1 !> A_i is m by m if side == HIPBLAS_SIDE_LEFT !> A_i is n by n if side == HIPBLAS_SIDE_RIGHT !> Only the upper/lower triangular part is accessed. !> The imaginary component of the diagonal elements is not used. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A_i. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> otherwise lda >= max( 1, n ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[in] !> B device pointer to first matrix B_1 of dimension (ldb, n) on the GPU !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. !> if side = HIPBLAS_OP_N, ldb >= max( 1, m ), !> otherwise ldb >= max( 1, n ). !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> !> @param[in] !> beta !> beta specifies the scalar beta. When beta is !> zero then C need not be set before entry. !> !> @param[in] !> C device pointer to first matrix C_1 of dimension (ldc, n) on the GPU. !> !> @param[in] !> ldc [int] !> ldc specifies the first dimension of C. ldc >= max( 1, m ) !> !> @param[inout] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> !> @param[in] !> batchCount [int] !> number of instances in the batch !> interface hipblasZhemmStridedBatched #ifdef USE_CUDA_NAMES function hipblasZhemmStridedBatched_(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="cublasZhemmStridedBatched") #else function hipblasZhemmStridedBatched_(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) bind(c, name="hipblasZhemmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZhemmStridedBatched_full_rank,& hipblasZhemmStridedBatched_rank_0,& hipblasZhemmStridedBatched_rank_1 #endif end interface interface hipblasStrmm #ifdef USE_CUDA_NAMES function hipblasStrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasStrmm_v2") #else function hipblasStrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasStrmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrmm_full_rank,& hipblasStrmm_rank_0,& hipblasStrmm_rank_1 #endif end interface interface hipblasDtrmm #ifdef USE_CUDA_NAMES function hipblasDtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasDtrmm_v2") #else function hipblasDtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasDtrmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrmm_full_rank,& hipblasDtrmm_rank_0,& hipblasDtrmm_rank_1 #endif end interface interface hipblasCtrmm #ifdef USE_CUDA_NAMES function hipblasCtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasCtrmm_v2") #else function hipblasCtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasCtrmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrmm_full_rank,& hipblasCtrmm_rank_0,& hipblasCtrmm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> trmm performs one of the matrix-matrix operations !> !> B := alpha*op( A )*B, or B := alpha*B*op( A ) !> !> where alpha is a scalar, B is an m by n matrix, A is a unit, or !> non-unit, upper or lower triangular matrix and op( A ) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> Specifies whether op(A) multiplies B from the left or right as follows: !> HIPBLAS_SIDE_LEFT: B := alpha*op( A )*B. !> HIPBLAS_SIDE_RIGHT: B := alpha*B*op( A ). !> !> @param[in] !> uplo [hipblasFillMode_t] !> Specifies whether the matrix A is an upper or lower triangular matrix as follows: !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> Specifies the form of op(A) to be used in the matrix multiplication as follows: !> HIPBLAS_OP_N: op(A) = A. !> HIPBLAS_OP_T: op(A) = A^T. !> HIPBLAS_OP_C: op(A) = A^H. !> !> @param[in] !> diag [hipblasDiagType_t] !> Specifies whether or not A is unit triangular as follows: !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of B. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A is not referenced and B need not be set before !> entry. !> !> @param[in] !> A Device pointer to matrix A on the GPU. !> A has dimension ( lda, k ), where k is m !> when side == HIPBLAS_SIDE_LEFT and !> is n when side == HIPBLAS_SIDE_RIGHT. !> !> When uplo == HIPBLAS_FILL_MODE_UPPER the leading k by k !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. !> !> When uplo == HIPBLAS_FILL_MODE_LOWER the leading k by k !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. !> !> Note that when diag == HIPBLAS_DIAG_UNIT the diagonal elements of !> A are not referenced either, but are assumed to be unity. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if side == HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> if side == HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ). !> !> @param[inout] !> B Device pointer to the first matrix B_0 on the GPU. !> On entry, the leading m by n part of the array B must !> contain the matrix B, and on exit is overwritten by the !> transformed matrix. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ). !> interface hipblasZtrmm #ifdef USE_CUDA_NAMES function hipblasZtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasZtrmm_v2") #else function hipblasZtrmm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasZtrmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrmm_full_rank,& hipblasZtrmm_rank_0,& hipblasZtrmm_rank_1 #endif end interface interface hipblasStrmmBatched #ifdef USE_CUDA_NAMES function hipblasStrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasStrmmBatched") #else function hipblasStrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasStrmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrmmBatched_full_rank,& hipblasStrmmBatched_rank_0,& hipblasStrmmBatched_rank_1 #endif end interface interface hipblasDtrmmBatched #ifdef USE_CUDA_NAMES function hipblasDtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasDtrmmBatched") #else function hipblasDtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasDtrmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrmmBatched_full_rank,& hipblasDtrmmBatched_rank_0,& hipblasDtrmmBatched_rank_1 #endif end interface interface hipblasCtrmmBatched #ifdef USE_CUDA_NAMES function hipblasCtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasCtrmmBatched") #else function hipblasCtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasCtrmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrmmBatched_full_rank,& hipblasCtrmmBatched_rank_0,& hipblasCtrmmBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> trmmBatched performs one of the batched matrix-matrix operations !> !> B_i := alpha*op( A_i )*B_i, or B_i := alpha*B_i*op( A_i ) for i = 0, 1, ... batchCount -1 !> !> where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or !> non-unit, upper or lower triangular matrix and op( A_i ) is one of !> !> op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> Specifies whether op(A_i) multiplies B_i from the left or right as follows: !> HIPBLAS_SIDE_LEFT: B_i := alpha*op( A_i )*B_i. !> HIPBLAS_SIDE_RIGHT: B_i := alpha*B_i*op( A_i ). !> !> @param[in] !> uplo [hipblasFillMode_t] !> Specifies whether the matrix A is an upper or lower triangular matrix as follows: !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> Specifies the form of op(A_i) to be used in the matrix multiplication as follows: !> HIPBLAS_OP_N: op(A_i) = A_i. !> HIPBLAS_OP_T: op(A_i) = A_i^T. !> HIPBLAS_OP_C: op(A_i) = A_i^H. !> !> @param[in] !> diag [hipblasDiagType_t] !> Specifies whether or not A_i is unit triangular as follows: !> HIPBLAS_DIAG_UNIT: A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of B_i. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i is not referenced and B_i need not be set before !> entry. !> !> @param[in] !> A Device array of device pointers storing each matrix A_i on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when side == HIPBLAS_SIDE_LEFT and !> is n when side == HIPBLAS_SIDE_RIGHT. !> !> When uplo == HIPBLAS_FILL_MODE_UPPER the leading k by k !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. !> !> When uplo == HIPBLAS_FILL_MODE_LOWER the leading k by k !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. !> !> Note that when diag == HIPBLAS_DIAG_UNIT the diagonal elements of !> A_i are not referenced either, but are assumed to be unity. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if side == HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> if side == HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ). !> !> @param[inout] !> B device array of device pointers storing each matrix B_i on the GPU. !> On entry, the leading m by n part of the array B_i must !> contain the matrix B_i, and on exit is overwritten by the !> transformed matrix. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ). !> !> @param[in] !> batchCount [int] !> number of instances i in the batch. interface hipblasZtrmmBatched #ifdef USE_CUDA_NAMES function hipblasZtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasZtrmmBatched") #else function hipblasZtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasZtrmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrmmBatched_full_rank,& hipblasZtrmmBatched_rank_0,& hipblasZtrmmBatched_rank_1 #endif end interface interface hipblasStrmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasStrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasStrmmStridedBatched") #else function hipblasStrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasStrmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrmmStridedBatched_full_rank,& hipblasStrmmStridedBatched_rank_0,& hipblasStrmmStridedBatched_rank_1 #endif end interface interface hipblasDtrmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasDtrmmStridedBatched") #else function hipblasDtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasDtrmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrmmStridedBatched_full_rank,& hipblasDtrmmStridedBatched_rank_0,& hipblasDtrmmStridedBatched_rank_1 #endif end interface interface hipblasCtrmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasCtrmmStridedBatched") #else function hipblasCtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasCtrmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrmmStridedBatched_full_rank,& hipblasCtrmmStridedBatched_rank_0,& hipblasCtrmmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> trmmStridedBatched performs one of the strided_batched matrix-matrix operations !> !> B_i := alpha*op( A_i )*B_i, or B_i := alpha*B_i*op( A_i ) for i = 0, 1, ... batchCount -1 !> !> where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or !> non-unit, upper or lower triangular matrix and op( A_i ) is one of !> !> op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> Specifies whether op(A_i) multiplies B_i from the left or right as follows: !> HIPBLAS_SIDE_LEFT: B_i := alpha*op( A_i )*B_i. !> HIPBLAS_SIDE_RIGHT: B_i := alpha*B_i*op( A_i ). !> !> @param[in] !> uplo [hipblasFillMode_t] !> Specifies whether the matrix A is an upper or lower triangular matrix as follows: !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> Specifies the form of op(A_i) to be used in the matrix multiplication as follows: !> HIPBLAS_OP_N: op(A_i) = A_i. !> HIPBLAS_OP_T: op(A_i) = A_i^T. !> HIPBLAS_OP_C: op(A_i) = A_i^H. !> !> @param[in] !> diag [hipblasDiagType_t] !> Specifies whether or not A_i is unit triangular as follows: !> HIPBLAS_DIAG_UNIT: A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A_i is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of B_i. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B_i. n >= 0. !> !> @param[in] !> alpha !> alpha specifies the scalar alpha. When alpha is !> zero then A_i is not referenced and B_i need not be set before !> entry. !> !> @param[in] !> A Device pointer to the first matrix A_0 on the GPU. !> Each A_i is of dimension ( lda, k ), where k is m !> when side == HIPBLAS_SIDE_LEFT and !> is n when side == HIPBLAS_SIDE_RIGHT. !> !> When uplo == HIPBLAS_FILL_MODE_UPPER the leading k by k !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. !> !> When uplo == HIPBLAS_FILL_MODE_LOWER the leading k by k !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. !> !> Note that when diag == HIPBLAS_DIAG_UNIT the diagonal elements of !> A_i are not referenced either, but are assumed to be unity. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if side == HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> if side == HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ). !> !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> !> @param[inout] !> B Device pointer to the first matrix B_0 on the GPU. !> On entry, the leading m by n part of the array B_i must !> contain the matrix B_i, and on exit is overwritten by the !> transformed matrix. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B_i. ldb >= max( 1, m ). !> !> @param[in] !> strideB [hipblasStride] !> stride from the start of one matrix (B_i) and the next one (B_i+1) !> @param[in] !> batchCount [int] !> number of instances i in the batch. interface hipblasZtrmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasZtrmmStridedBatched") #else function hipblasZtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasZtrmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrmmStridedBatched_full_rank,& hipblasZtrmmStridedBatched_rank_0,& hipblasZtrmmStridedBatched_rank_1 #endif end interface interface hipblasStrsm #ifdef USE_CUDA_NAMES function hipblasStrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasStrsm_v2") #else function hipblasStrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasStrsm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrsm_full_rank,& hipblasStrsm_rank_0,& hipblasStrsm_rank_1 #endif end interface interface hipblasDtrsm #ifdef USE_CUDA_NAMES function hipblasDtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasDtrsm_v2") #else function hipblasDtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasDtrsm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrsm_full_rank,& hipblasDtrsm_rank_0,& hipblasDtrsm_rank_1 #endif end interface interface hipblasCtrsm #ifdef USE_CUDA_NAMES function hipblasCtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasCtrsm_v2") #else function hipblasCtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasCtrsm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrsm_full_rank,& hipblasCtrsm_rank_0,& hipblasCtrsm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> !> trsm solves !> !> op(A)*X = alpha*B or X*op(A) = alpha*B, !> !> where alpha is a scalar, X and B are m by n matrices, !> A is triangular matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> The matrix X is overwritten on B. !> !> Note about memory allocation: !> When trsm is launched with a k evenly divisible by the internal block size of 128, !> and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated !> memory found in the handle to increase overall performance. This memory can be managed by using !> the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory !> used for temporary storage will default to 1 MB and may result in chunking, which in turn may !> reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set !> to the desired chunk of right hand sides to be used at a time. !> !> (where k is m when HIPBLAS_SIDE_LEFT and is n when HIPBLAS_SIDE_RIGHT) !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: op(A)*X = alpha*B. !> HIPBLAS_SIDE_RIGHT: X*op(A) = alpha*B. !> !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: A is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: A is a lower triangular matrix. !> !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: op(A) = A. !> HIPBLAS_OP_T: op(A) = A^T. !> HIPBLAS_OP_C: op(A) = A^H. !> !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: A is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: A is not assumed to be unit triangular. !> !> @param[in] !> m [int] !> m specifies the number of rows of B. m >= 0. !> !> @param[in] !> n [int] !> n specifies the number of columns of B. n >= 0. !> !> @param[in] !> alpha !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced and B need not be set before !> entry. !> !> @param[in] !> A device pointer storing matrix A. !> of dimension ( lda, k ), where k is m !> when HIPBLAS_SIDE_LEFT and !> is n when HIPBLAS_SIDE_RIGHT !> only the upper/lower triangular part is accessed. !> !> @param[in] !> lda [int] !> lda specifies the first dimension of A. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> if side = HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ). !> !> @param[in,out] !> B device pointer storing matrix B. !> !> @param[in] !> ldb [int] !> ldb specifies the first dimension of B. ldb >= max( 1, m ). !> interface hipblasZtrsm #ifdef USE_CUDA_NAMES function hipblasZtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="cublasZtrsm_v2") #else function hipblasZtrsm_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) bind(c, name="hipblasZtrsm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrsm_full_rank,& hipblasZtrsm_rank_0,& hipblasZtrsm_rank_1 #endif end interface interface hipblasStrsmBatched #ifdef USE_CUDA_NAMES function hipblasStrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasStrsmBatched") #else function hipblasStrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasStrsmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrsmBatched_full_rank,& hipblasStrsmBatched_rank_0,& hipblasStrsmBatched_rank_1 #endif end interface interface hipblasDtrsmBatched #ifdef USE_CUDA_NAMES function hipblasDtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasDtrsmBatched") #else function hipblasDtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasDtrsmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrsmBatched_full_rank,& hipblasDtrsmBatched_rank_0,& hipblasDtrsmBatched_rank_1 #endif end interface interface hipblasCtrsmBatched #ifdef USE_CUDA_NAMES function hipblasCtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasCtrsmBatched") #else function hipblasCtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasCtrsmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrsmBatched_full_rank,& hipblasCtrsmBatched_rank_0,& hipblasCtrsmBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> \details !> trsmBatched performs the following batched operation: !> !> op(A_i)*X_i = alpha*B_i or X_i*op(A_i) = alpha*B_i, for i = 1, ..., batchCount. !> !> where alpha is a scalar, X and B are batched m by n matrices, !> A is triangular batched matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> Each matrix X_i is overwritten on B_i for i = 1, ..., batchCount. !> !> Note about memory allocation: !> When trsm is launched with a k evenly divisible by the internal block size of 128, !> and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated !> memory found in the handle to increase overall performance. This memory can be managed by using !> the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory !> used for temporary storage will default to 1 MB and may result in chunking, which in turn may !> reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set !> to the desired chunk of right hand sides to be used at a time. !> (where k is m when HIPBLAS_SIDE_LEFT and is n when HIPBLAS_SIDE_RIGHT) !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: op(A)*X = alpha*B. !> HIPBLAS_SIDE_RIGHT: X*op(A) = alpha*B. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: each A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: each A_i is a lower triangular matrix. !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: op(A) = A. !> HIPBLAS_OP_T: op(A) = A^T. !> HIPBLAS_OP_C: op(A) = A^H. !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular. !> @param[in] !> m [int] !> m specifies the number of rows of each B_i. m >= 0. !> @param[in] !> n [int] !> n specifies the number of columns of each B_i. n >= 0. !> @param[in] !> alpha !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced and B need not be set before !> entry. !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> Matricies are of dimension ( lda, k ), where k is m !> when HIPBLAS_SIDE_LEFT and is n when HIPBLAS_SIDE_RIGHT !> only the upper/lower triangular part is accessed. !> @param[in] !> lda [int] !> lda specifies the first dimension of each A_i. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> if side = HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ). !> @param[in,out] !> B device array of device pointers storing each matrix B_i on the GPU. !> @param[in] !> ldb [int] !> ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). !> @param[in] !> batchCount [int] !> number of trsm operatons in the batch. interface hipblasZtrsmBatched #ifdef USE_CUDA_NAMES function hipblasZtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="cublasZtrsmBatched") #else function hipblasZtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) bind(c, name="hipblasZtrsmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrsmBatched_full_rank,& hipblasZtrsmBatched_rank_0,& hipblasZtrsmBatched_rank_1 #endif end interface interface hipblasStrsmStridedBatched #ifdef USE_CUDA_NAMES function hipblasStrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasStrsmStridedBatched") #else function hipblasStrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasStrsmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrsmStridedBatched_full_rank,& hipblasStrsmStridedBatched_rank_0,& hipblasStrsmStridedBatched_rank_1 #endif end interface interface hipblasDtrsmStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasDtrsmStridedBatched") #else function hipblasDtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasDtrsmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrsmStridedBatched_full_rank,& hipblasDtrsmStridedBatched_rank_0,& hipblasDtrsmStridedBatched_rank_1 #endif end interface interface hipblasCtrsmStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasCtrsmStridedBatched") #else function hipblasCtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasCtrsmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrsmStridedBatched_full_rank,& hipblasCtrsmStridedBatched_rank_0,& hipblasCtrsmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> \details !> trsmSridedBatched performs the following strided batched operation: !> !> op(A_i)*X_i = alpha*B_i or X_i*op(A_i) = alpha*B_i, for i = 1, ..., batchCount. !> !> where alpha is a scalar, X and B are strided batched m by n matrices, !> A is triangular strided batched matrix and op(A) is one of !> !> op( A ) = A or op( A ) = A^T or op( A ) = A^H. !> !> Each matrix X_i is overwritten on B_i for i = 1, ..., batchCount. !> !> Note about memory allocation: !> When trsm is launched with a k evenly divisible by the internal block size of 128, !> and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated !> memory found in the handle to increase overall performance. This memory can be managed by using !> the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory !> used for temporary storage will default to 1 MB and may result in chunking, which in turn may !> reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set !> to the desired chunk of right hand sides to be used at a time. !> (where k is m when HIPBLAS_SIDE_LEFT and is n when HIPBLAS_SIDE_RIGHT) !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> side [hipblasSideMode_t] !> HIPBLAS_SIDE_LEFT: op(A)*X = alpha*B. !> HIPBLAS_SIDE_RIGHT: X*op(A) = alpha*B. !> @param[in] !> uplo [hipblasFillMode_t] !> HIPBLAS_FILL_MODE_UPPER: each A_i is an upper triangular matrix. !> HIPBLAS_FILL_MODE_LOWER: each A_i is a lower triangular matrix. !> @param[in] !> transA [hipblasOperation_t] !> HIPBLAS_OP_N: op(A) = A. !> HIPBLAS_OP_T: op(A) = A^T. !> HIPBLAS_OP_C: op(A) = A^H. !> @param[in] !> diag [hipblasDiagType_t] !> HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular. !> HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular. !> @param[in] !> m [int] !> m specifies the number of rows of each B_i. m >= 0. !> @param[in] !> n [int] !> n specifies the number of columns of each B_i. n >= 0. !> @param[in] !> alpha !> device pointer or host pointer specifying the scalar alpha. When alpha is !> &zero then A is not referenced and B need not be set before !> entry. !> @param[in] !> A device pointer pointing to the first matrix A_1. !> of dimension ( lda, k ), where k is m !> when HIPBLAS_SIDE_LEFT and !> is n when HIPBLAS_SIDE_RIGHT !> only the upper/lower triangular part is accessed. !> @param[in] !> lda [int] !> lda specifies the first dimension of each A_i. !> if side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ), !> if side = HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ). !> @param[in] !> strideA [hipblasStride] !> stride from the start of one A_i matrix to the next A_(i + 1). !> @param[in,out] !> B device pointer pointing to the first matrix B_1. !> @param[in] !> ldb [int] !> ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). !> @param[in] !> strideB [hipblasStride] !> stride from the start of one B_i matrix to the next B_(i + 1). !> @param[in] !> batchCount [int] !> number of trsm operatons in the batch. interface hipblasZtrsmStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="cublasZtrsmStridedBatched") #else function hipblasZtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) bind(c, name="hipblasZtrsmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrsmStridedBatched_full_rank,& hipblasZtrsmStridedBatched_rank_0,& hipblasZtrsmStridedBatched_rank_1 #endif end interface interface hipblasStrtri #ifdef USE_CUDA_NAMES function hipblasStrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="cublasStrtri") #else function hipblasStrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="hipblasStrtri") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtri_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrtri_full_rank,& hipblasStrtri_rank_0,& hipblasStrtri_rank_1 #endif end interface interface hipblasDtrtri #ifdef USE_CUDA_NAMES function hipblasDtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="cublasDtrtri") #else function hipblasDtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="hipblasDtrtri") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtri_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrtri_full_rank,& hipblasDtrtri_rank_0,& hipblasDtrtri_rank_1 #endif end interface interface hipblasCtrtri #ifdef USE_CUDA_NAMES function hipblasCtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="cublasCtrtri") #else function hipblasCtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="hipblasCtrtri") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtri_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrtri_full_rank,& hipblasCtrtri_rank_0,& hipblasCtrtri_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> trtri compute the inverse of a matrix A, namely, invA !> !> and write the result into invA; !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> if HIPBLAS_FILL_MODE_UPPER, the lower part of A is not referenced !> if HIPBLAS_FILL_MODE_LOWER, the upper part of A is not referenced !> @param[in] !> diag [hipblasDiagType_t] !> = 'HIPBLAS_DIAG_NON_UNIT', A is non-unit triangular; !> = 'HIPBLAS_DIAG_UNIT', A is unit triangular; !> @param[in] !> n [int] !> size of matrix A and invA !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[out] !> invA device pointer storing matrix invA. !> @param[in] !> ldinvA [int] !> specifies the leading dimension of invA. !> interface hipblasZtrtri #ifdef USE_CUDA_NAMES function hipblasZtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="cublasZtrtri") #else function hipblasZtrtri_(handle,uplo,diag,n,A,lda,invA,ldinvA) bind(c, name="hipblasZtrtri") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtri_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: invA integer(c_int),value :: ldinvA end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrtri_full_rank,& hipblasZtrtri_rank_0,& hipblasZtrtri_rank_1 #endif end interface interface hipblasStrtriBatched #ifdef USE_CUDA_NAMES function hipblasStrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="cublasStrtriBatched") #else function hipblasStrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="hipblasStrtriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrtriBatched_full_rank,& hipblasStrtriBatched_rank_0,& hipblasStrtriBatched_rank_1 #endif end interface interface hipblasDtrtriBatched #ifdef USE_CUDA_NAMES function hipblasDtrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="cublasDtrtriBatched") #else function hipblasDtrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="hipblasDtrtriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrtriBatched_full_rank,& hipblasDtrtriBatched_rank_0,& hipblasDtrtriBatched_rank_1 #endif end interface interface hipblasCtrtriBatched #ifdef USE_CUDA_NAMES function hipblasCtrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="cublasCtrtriBatched") #else function hipblasCtrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="hipblasCtrtriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrtriBatched_full_rank,& hipblasCtrtriBatched_rank_0,& hipblasCtrtriBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> trtriBatched compute the inverse of A_i and write into invA_i where !> A_i and invA_i are the i-th matrices in the batch, !> for i = 1, ..., batchCount. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> @param[in] !> diag [hipblasDiagType_t] !> = 'HIPBLAS_DIAG_NON_UNIT', A is non-unit triangular; !> = 'HIPBLAS_DIAG_UNIT', A is unit triangular; !> @param[in] !> n [int] !> @param[in] !> A device array of device pointers storing each matrix A_i. !> @param[in] !> lda [int] !> specifies the leading dimension of each A_i. !> @param[out] !> invA device array of device pointers storing the inverse of each matrix A_i. !> Partial inplace operation is supported, see below. !> If UPLO = 'U', the leading N-by-N upper triangular part of the invA will store !> the inverse of the upper triangular matrix, and the strictly lower !> triangular part of invA is cleared. !> If UPLO = 'L', the leading N-by-N lower triangular part of the invA will store !> the inverse of the lower triangular matrix, and the strictly upper !> triangular part of invA is cleared. !> @param[in] !> ldinvA [int] !> specifies the leading dimension of each invA_i. !> @param[in] !> batchCount [int] !> numbers of matrices in the batch interface hipblasZtrtriBatched #ifdef USE_CUDA_NAMES function hipblasZtrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="cublasZtrtriBatched") #else function hipblasZtrtriBatched_(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) bind(c, name="hipblasZtrtriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: invA integer(c_int),value :: ldinvA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrtriBatched_full_rank,& hipblasZtrtriBatched_rank_0,& hipblasZtrtriBatched_rank_1 #endif end interface interface hipblasStrtriStridedBatched #ifdef USE_CUDA_NAMES function hipblasStrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="cublasStrtriStridedBatched") #else function hipblasStrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="hipblasStrtriStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasStrtriStridedBatched_full_rank,& hipblasStrtriStridedBatched_rank_0,& hipblasStrtriStridedBatched_rank_1 #endif end interface interface hipblasDtrtriStridedBatched #ifdef USE_CUDA_NAMES function hipblasDtrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="cublasDtrtriStridedBatched") #else function hipblasDtrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="hipblasDtrtriStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDtrtriStridedBatched_full_rank,& hipblasDtrtriStridedBatched_rank_0,& hipblasDtrtriStridedBatched_rank_1 #endif end interface interface hipblasCtrtriStridedBatched #ifdef USE_CUDA_NAMES function hipblasCtrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="cublasCtrtriStridedBatched") #else function hipblasCtrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="hipblasCtrtriStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCtrtriStridedBatched_full_rank,& hipblasCtrtriStridedBatched_rank_0,& hipblasCtrtriStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> trtriStridedBatched compute the inverse of A_i and write into invA_i where !> A_i and invA_i are the i-th matrices in the batch, !> for i = 1, ..., batchCount !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> uplo [hipblasFillMode_t] !> specifies whether the upper 'HIPBLAS_FILL_MODE_UPPER' or lower 'HIPBLAS_FILL_MODE_LOWER' !> @param[in] !> diag [hipblasDiagType_t] !> = 'HIPBLAS_DIAG_NON_UNIT', A is non-unit triangular; !> = 'HIPBLAS_DIAG_UNIT', A is unit triangular; !> @param[in] !> n [int] !> @param[in] !> A device pointer pointing to address of first matrix A_1. !> @param[in] !> lda [int] !> specifies the leading dimension of each A. !> @param[in] !> strideA [hipblasStride] !> "batch stride a": stride from the start of one A_i matrix to the next A_(i + 1). !> @param[out] !> invA device pointer storing the inverses of each matrix A_i. !> Partial inplace operation is supported, see below. !> If UPLO = 'U', the leading N-by-N upper triangular part of the invA will store !> the inverse of the upper triangular matrix, and the strictly lower !> triangular part of invA is cleared. !> If UPLO = 'L', the leading N-by-N lower triangular part of the invA will store !> the inverse of the lower triangular matrix, and the strictly upper !> triangular part of invA is cleared. !> @param[in] !> ldinvA [int] !> specifies the leading dimension of each invA_i. !> @param[in] !> stride_invA [hipblasStride] !> "batch stride invA": stride from the start of one invA_i matrix to the next invA_(i + 1). !> @param[in] !> batchCount [int] !> numbers of matrices in the batch interface hipblasZtrtriStridedBatched #ifdef USE_CUDA_NAMES function hipblasZtrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="cublasZtrtriStridedBatched") #else function hipblasZtrtriStridedBatched_(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) bind(c, name="hipblasZtrtriStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: invA integer(c_int),value :: ldinvA integer(c_int64_t),value :: stride_invA integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZtrtriStridedBatched_full_rank,& hipblasZtrtriStridedBatched_rank_0,& hipblasZtrtriStridedBatched_rank_1 #endif end interface interface hipblasSdgmm #ifdef USE_CUDA_NAMES function hipblasSdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="cublasSdgmm") #else function hipblasSdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="hipblasSdgmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSdgmm_full_rank,& hipblasSdgmm_rank_0,& hipblasSdgmm_rank_1 #endif end interface interface hipblasDdgmm #ifdef USE_CUDA_NAMES function hipblasDdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="cublasDdgmm") #else function hipblasDdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="hipblasDdgmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDdgmm_full_rank,& hipblasDdgmm_rank_0,& hipblasDdgmm_rank_1 #endif end interface interface hipblasCdgmm #ifdef USE_CUDA_NAMES function hipblasCdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="cublasCdgmm") #else function hipblasCdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="hipblasCdgmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdgmm_full_rank,& hipblasCdgmm_rank_0,& hipblasCdgmm_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> dgmm performs one of the matrix-matrix operations !> !> C = A * diag(x) if side == HIPBLAS_SIDE_RIGHT !> C = diag(x) * A if side == HIPBLAS_SIDE_LEFT !> !> where C and A are m by n dimensional matrices. diag( x ) is a diagonal matrix !> and x is vector of dimension n if side == HIPBLAS_SIDE_RIGHT and dimension m !> if side == HIPBLAS_SIDE_LEFT. !> !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> side [hipblasSideMode_t] !> specifies the side of diag(x) !> @param[in] !> m [int] !> matrix dimension m. !> @param[in] !> n [int] !> matrix dimension n. !> @param[in] !> A device pointer storing matrix A. !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[in] !> x device pointer storing vector x. !> @param[in] !> incx [int] !> specifies the increment between values of x !> @param[in, out] !> C device pointer storing matrix C. !> @param[in] !> ldc [int] !> specifies the leading dimension of C. !> interface hipblasZdgmm #ifdef USE_CUDA_NAMES function hipblasZdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="cublasZdgmm") #else function hipblasZdgmm_(handle,side,m,n,A,lda,x,incx,C,ldc) bind(c, name="hipblasZdgmm") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmm_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: x integer(c_int),value :: incx type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdgmm_full_rank,& hipblasZdgmm_rank_0,& hipblasZdgmm_rank_1 #endif end interface interface hipblasSdgmmBatched #ifdef USE_CUDA_NAMES function hipblasSdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="cublasSdgmmBatched") #else function hipblasSdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="hipblasSdgmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSdgmmBatched_full_rank,& hipblasSdgmmBatched_rank_0,& hipblasSdgmmBatched_rank_1 #endif end interface interface hipblasDdgmmBatched #ifdef USE_CUDA_NAMES function hipblasDdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="cublasDdgmmBatched") #else function hipblasDdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="hipblasDdgmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDdgmmBatched_full_rank,& hipblasDdgmmBatched_rank_0,& hipblasDdgmmBatched_rank_1 #endif end interface interface hipblasCdgmmBatched #ifdef USE_CUDA_NAMES function hipblasCdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="cublasCdgmmBatched") #else function hipblasCdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="hipblasCdgmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdgmmBatched_full_rank,& hipblasCdgmmBatched_rank_0,& hipblasCdgmmBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> dgmmBatched performs one of the batched matrix-matrix operations !> !> C_i = A_i * diag(x_i) for i = 0, 1, ... batchCount-1 if side == HIPBLAS_SIDE_RIGHT !> C_i = diag(x_i) * A_i for i = 0, 1, ... batchCount-1 if side == HIPBLAS_SIDE_LEFT !> !> where C_i and A_i are m by n dimensional matrices. diag(x_i) is a diagonal matrix !> and x_i is vector of dimension n if side == HIPBLAS_SIDE_RIGHT and dimension m !> if side == HIPBLAS_SIDE_LEFT. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> side [hipblasSideMode_t] !> specifies the side of diag(x) !> @param[in] !> m [int] !> matrix dimension m. !> @param[in] !> n [int] !> matrix dimension n. !> @param[in] !> A device array of device pointers storing each matrix A_i on the GPU. !> Each A_i is of dimension ( lda, n ) !> @param[in] !> lda [int] !> specifies the leading dimension of A_i. !> @param[in] !> x device array of device pointers storing each vector x_i on the GPU. !> Each x_i is of dimension n if side == HIPBLAS_SIDE_RIGHT and dimension !> m if side == HIPBLAS_SIDE_LEFT !> @param[in] !> incx [int] !> specifies the increment between values of x_i !> @param[in, out] !> C device array of device pointers storing each matrix C_i on the GPU. !> Each C_i is of dimension ( ldc, n ). !> @param[in] !> ldc [int] !> specifies the leading dimension of C_i. !> @param[in] !> batchCount [int] !> number of instances in the batch. !> interface hipblasZdgmmBatched #ifdef USE_CUDA_NAMES function hipblasZdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="cublasZdgmmBatched") #else function hipblasZdgmmBatched_(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) bind(c, name="hipblasZdgmmBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: x integer(c_int),value :: incx type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdgmmBatched_full_rank,& hipblasZdgmmBatched_rank_0,& hipblasZdgmmBatched_rank_1 #endif end interface interface hipblasSdgmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasSdgmmStridedBatched_(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) bind(c, name="cublasSdgmmStridedBatched") #else function hipblasSdgmmStridedBatched_(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) bind(c, name="hipblasSdgmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSdgmmStridedBatched_full_rank,& hipblasSdgmmStridedBatched_rank_0,& hipblasSdgmmStridedBatched_rank_1 #endif end interface interface hipblasDdgmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasDdgmmStridedBatched_(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) bind(c, name="cublasDdgmmStridedBatched") #else function hipblasDdgmmStridedBatched_(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) bind(c, name="hipblasDdgmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDdgmmStridedBatched_full_rank,& hipblasDdgmmStridedBatched_rank_0,& hipblasDdgmmStridedBatched_rank_1 #endif end interface interface hipblasCdgmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasCdgmmStridedBatched_(handle,side,m,n,A,lda,stride_A,x,incx,stride_x,C,ldc,stride_C,batchCount) bind(c, name="cublasCdgmmStridedBatched") #else function hipblasCdgmmStridedBatched_(handle,side,m,n,A,lda,stride_A,x,incx,stride_x,C,ldc,stride_C,batchCount) bind(c, name="hipblasCdgmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stride_x type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCdgmmStridedBatched_full_rank,& hipblasCdgmmStridedBatched_rank_0,& hipblasCdgmmStridedBatched_rank_1 #endif end interface !> \brief BLAS Level 3 API !> !> \details !> dgmmStridedBatched performs one of the batched matrix-matrix operations !> !> C_i = A_i * diag(x_i) if side == HIPBLAS_SIDE_RIGHT for i = 0, 1, ... batchCount-1 !> C_i = diag(x_i) * A_i if side == HIPBLAS_SIDE_LEFT for i = 0, 1, ... batchCount-1 !> !> where C_i and A_i are m by n dimensional matrices. diag(x_i) is a diagonal matrix !> and x_i is vector of dimension n if side == HIPBLAS_SIDE_RIGHT and dimension m !> if side == HIPBLAS_SIDE_LEFT. !> !> @param[in] !> handle [hipblasHandle_t] !> handle to the hipblas library context queue. !> @param[in] !> side [hipblasSideMode_t] !> specifies the side of diag(x) !> @param[in] !> m [int] !> matrix dimension m. !> @param[in] !> n [int] !> matrix dimension n. !> @param[in] !> A device pointer to the first matrix A_0 on the GPU. !> Each A_i is of dimension ( lda, n ) !> @param[in] !> lda [int] !> specifies the leading dimension of A. !> @param[in] !> strideA [hipblasStride] !> stride from the start of one matrix (A_i) and the next one (A_i+1) !> @param[in] !> x pointer to the first vector x_0 on the GPU. !> Each x_i is of dimension n if side == HIPBLAS_SIDE_RIGHT and dimension !> m if side == HIPBLAS_SIDE_LEFT !> @param[in] !> incx [int] !> specifies the increment between values of x !> @param[in] !> stridex [hipblasStride] !> stride from the start of one vector(x_i) and the next one (x_i+1) !> @param[in, out] !> C device pointer to the first matrix C_0 on the GPU. !> Each C_i is of dimension ( ldc, n ). !> @param[in] !> ldc [int] !> specifies the leading dimension of C. !> @param[in] !> strideC [hipblasStride] !> stride from the start of one matrix (C_i) and the next one (C_i+1) !> @param[in] !> batchCount [int] !> number of instances i in the batch. !> interface hipblasZdgmmStridedBatched #ifdef USE_CUDA_NAMES function hipblasZdgmmStridedBatched_(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) bind(c, name="cublasZdgmmStridedBatched") #else function hipblasZdgmmStridedBatched_(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) bind(c, name="hipblasZdgmmStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: x integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZdgmmStridedBatched_full_rank,& hipblasZdgmmStridedBatched_rank_0,& hipblasZdgmmStridedBatched_rank_1 #endif end interface interface hipblasSgetrf #ifdef USE_CUDA_NAMES function hipblasSgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="cublasSgetrf") #else function hipblasSgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="hipblasSgetrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrf_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetrf_full_rank,& hipblasSgetrf_rank_0,& hipblasSgetrf_rank_1 #endif end interface interface hipblasDgetrf #ifdef USE_CUDA_NAMES function hipblasDgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="cublasDgetrf") #else function hipblasDgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="hipblasDgetrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrf_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetrf_full_rank,& hipblasDgetrf_rank_0,& hipblasDgetrf_rank_1 #endif end interface interface hipblasCgetrf #ifdef USE_CUDA_NAMES function hipblasCgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="cublasCgetrf") #else function hipblasCgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="hipblasCgetrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrf_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetrf_full_rank,& hipblasCgetrf_rank_0,& hipblasCgetrf_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> getrf computes the LU factorization of a general n-by-n matrix A !> using partial pivoting with row interchanges. The LU factorization can !> be done without pivoting if ipiv is passed as a nullptr. !> !> In the case that ipiv is not null, the factorization has the form: !> !> \f[ !> A = PLU !> \f] !> !> where P is a permutation matrix, L is lower triangular with unit !> diagonal elements, and U is upper triangular. !> !> In the case that ipiv is null, the factorization is done without pivoting: !> !> \f[ !> A = LU !> \f] !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> n int. n >= 0.\n !> The number of columns and rows of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the n-by-n matrix A to be factored. !> On exit, the factors L and U from the factorization. !> The unit diagonal elements of L are not stored. !> @param[in] !> lda int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= i <= n, the row i of the !> matrix was interchanged with row ipiv[i]. !> Matrix P of the factorization can be derived from ipiv. !> The factorization here can be done without pivoting if ipiv is passed !> in as a nullptr. !> @param[out] !> info pointer to a int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, U is singular. U[j,j] is the first zero pivot. interface hipblasZgetrf #ifdef USE_CUDA_NAMES function hipblasZgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="cublasZgetrf") #else function hipblasZgetrf_(handle,n,A,lda,ipiv,myInfo) bind(c, name="hipblasZgetrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrf_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetrf_full_rank,& hipblasZgetrf_rank_0,& hipblasZgetrf_rank_1 #endif end interface interface hipblasSgetrfBatched #ifdef USE_CUDA_NAMES function hipblasSgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasSgetrfBatched") #else function hipblasSgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasSgetrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetrfBatched_full_rank,& hipblasSgetrfBatched_rank_0,& hipblasSgetrfBatched_rank_1 #endif end interface interface hipblasDgetrfBatched #ifdef USE_CUDA_NAMES function hipblasDgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasDgetrfBatched") #else function hipblasDgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasDgetrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetrfBatched_full_rank,& hipblasDgetrfBatched_rank_0,& hipblasDgetrfBatched_rank_1 #endif end interface interface hipblasCgetrfBatched #ifdef USE_CUDA_NAMES function hipblasCgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasCgetrfBatched") #else function hipblasCgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasCgetrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetrfBatched_full_rank,& hipblasCgetrfBatched_rank_0,& hipblasCgetrfBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> getrfBatched computes the LU factorization of a batch of general !> n-by-n matrices using partial pivoting with row interchanges. The LU factorization can !> be done without pivoting if ipiv is passed as a nullptr. !> !> In the case that ipiv is not null, the factorization of matrix \f$A_i\f$ in the batch has the form: !> !> \f[ !> A_i = P_iL_iU_i !> \f] !> !> where \f$P_i\f$ is a permutation matrix, \f$L_i\f$ is lower triangular with unit !> diagonal elements, and \f$U_i\f$ is upper triangular. !> !> In the case that ipiv is null, the factorization is done without pivoting: !> !> \f[ !> A_i = L_iU_i !> \f] !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> n int. n >= 0.\n !> The number of columns and rows of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the n-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorizations. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> ipiv pointer to int. Array on the GPU.\n !> Contains the vectors of pivot indices ipiv_i (corresponding to A_i). !> Dimension of ipiv_i is n. !> Elements of ipiv_i are 1-based indices. !> For each instance A_i in the batch and for 1 <= j <= n, the row j of the !> matrix A_i was interchanged with row ipiv_i[j]. !> Matrix P_i of the factorization can be derived from ipiv_i. !> The factorization here can be done without pivoting if ipiv is passed !> in as a nullptr. !> @param[out] !> info pointer to int. Array of batchCount integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of matrices in the batch. interface hipblasZgetrfBatched #ifdef USE_CUDA_NAMES function hipblasZgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasZgetrfBatched") #else function hipblasZgetrfBatched_(handle,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasZgetrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetrfBatched_full_rank,& hipblasZgetrfBatched_rank_0,& hipblasZgetrfBatched_rank_1 #endif end interface interface hipblasSgetrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasSgetrfStridedBatched") #else function hipblasSgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasSgetrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetrfStridedBatched_full_rank,& hipblasSgetrfStridedBatched_rank_0,& hipblasSgetrfStridedBatched_rank_1 #endif end interface interface hipblasDgetrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasDgetrfStridedBatched") #else function hipblasDgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasDgetrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetrfStridedBatched_full_rank,& hipblasDgetrfStridedBatched_rank_0,& hipblasDgetrfStridedBatched_rank_1 #endif end interface interface hipblasCgetrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasCgetrfStridedBatched") #else function hipblasCgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasCgetrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetrfStridedBatched_full_rank,& hipblasCgetrfStridedBatched_rank_0,& hipblasCgetrfStridedBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> getrfStridedBatched computes the LU factorization of a batch of !> general n-by-n matrices using partial pivoting with row interchanges. The LU factorization can !> be done without pivoting if ipiv is passed as a nullptr. !> !> In the case that ipiv is not null, the factorization of matrix \f$A_i\f$ in the batch has the form: !> !> \f[ !> A_i = P_iL_iU_i !> \f] !> !> where \f$P_i\f$ is a permutation matrix, \f$L_i\f$ is lower triangular with unit !> diagonal elements, and \f$U_i\f$ is upper triangular. !> !> In the case that ipiv is null, the factorization is done without pivoting: !> !> \f[ !> A_i = L_iU_i !> \f] !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> n int. n >= 0.\n !> The number of columns and rows of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the n-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorization. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA hipblasStride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> ipiv pointer to int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors of pivots indices ipiv_i (corresponding to A_i). !> Dimension of ipiv_i is n. !> Elements of ipiv_i are 1-based indices. !> For each instance A_i in the batch and for 1 <= j <= n, the row j of the !> matrix A_i was interchanged with row ipiv_i[j]. !> Matrix P_i of the factorization can be derived from ipiv_i. !> The factorization here can be done without pivoting if ipiv is passed !> in as a nullptr. !> @param[in] !> strideP hipblasStride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to int. Array of batchCount integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of matrices in the batch. interface hipblasZgetrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasZgetrfStridedBatched") #else function hipblasZgetrfStridedBatched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasZgetrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetrfStridedBatched_full_rank,& hipblasZgetrfStridedBatched_rank_0,& hipblasZgetrfStridedBatched_rank_1 #endif end interface interface hipblasSgetrs #ifdef USE_CUDA_NAMES function hipblasSgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="cublasSgetrs") #else function hipblasSgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="hipblasSgetrs") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrs_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetrs_full_rank,& hipblasSgetrs_rank_0,& hipblasSgetrs_rank_1 #endif end interface interface hipblasDgetrs #ifdef USE_CUDA_NAMES function hipblasDgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="cublasDgetrs") #else function hipblasDgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="hipblasDgetrs") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrs_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetrs_full_rank,& hipblasDgetrs_rank_0,& hipblasDgetrs_rank_1 #endif end interface interface hipblasCgetrs #ifdef USE_CUDA_NAMES function hipblasCgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="cublasCgetrs") #else function hipblasCgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="hipblasCgetrs") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrs_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetrs_full_rank,& hipblasCgetrs_rank_0,& hipblasCgetrs_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> getrs solves a system of n linear equations on n variables in its factorized form. !> !> It solves one of the following systems, depending on the value of trans: !> !> \f[ !> \begin{array}{cl} !> A X = B & \: \text{not transposed,}\newline !> !> A^T X = B & \: \text{transposed, or}\newline !> !> A^H X = B & \: \text{conjugate transposed.}\newline !> \end{array} !> \f] !> !> Matrix A is defined by its triangular factors as returned by hipblasSgetrf "getrf". !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> trans hipblasOperation_t.\n !> Specifies the form of the system of equations. !> @param[in] !> n int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of A. !> @param[in] !> nrhs int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of the matrix B. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> The factors L and U of the factorization A = P*L*U returned by hipblasSgetrf "getrf". !> @param[in] !> lda int. lda >= n.\n !> The leading dimension of A. !> @param[in] !> ipiv pointer to int. Array on the GPU of dimension n.\n !> The pivot indices returned by hipblasSgetrf "getrf". !> @param[in,out] !> B pointer to type. Array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !> @param[in] !> ldb int. ldb >= n.\n !> The leading dimension of B. !> @param[out] !> info pointer to a int on the host.\n !> If info = 0, successful exit. !> If info = j < 0, the j-th argument is invalid. interface hipblasZgetrs #ifdef USE_CUDA_NAMES function hipblasZgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="cublasZgetrs") #else function hipblasZgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="hipblasZgetrs") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrs_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetrs_full_rank,& hipblasZgetrs_rank_0,& hipblasZgetrs_rank_1 #endif end interface interface hipblasSgetrsBatched #ifdef USE_CUDA_NAMES function hipblasSgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="cublasSgetrsBatched") #else function hipblasSgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="hipblasSgetrsBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetrsBatched_full_rank,& hipblasSgetrsBatched_rank_0,& hipblasSgetrsBatched_rank_1 #endif end interface interface hipblasDgetrsBatched #ifdef USE_CUDA_NAMES function hipblasDgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="cublasDgetrsBatched") #else function hipblasDgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="hipblasDgetrsBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetrsBatched_full_rank,& hipblasDgetrsBatched_rank_0,& hipblasDgetrsBatched_rank_1 #endif end interface interface hipblasCgetrsBatched #ifdef USE_CUDA_NAMES function hipblasCgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="cublasCgetrsBatched") #else function hipblasCgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="hipblasCgetrsBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetrsBatched_full_rank,& hipblasCgetrsBatched_rank_0,& hipblasCgetrsBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details getrsBatched solves a batch of systems of n linear equations on n !> variables in its factorized forms. !> !> For each instance i in the batch, it solves one of the following systems, depending on the value of trans: !> !> \f[ !> \begin{array}{cl} !> A_i X_i = B_i & \: \text{not transposed,}\newline !> !> A_i^T X_i = B_i & \: \text{transposed, or}\newline !> !> A_i^H X_i = B_i & \: \text{conjugate transposed.} !> \end{array} !> \f] !> !> Matrix \f$A_i\f$ is defined by its triangular factors as returned by hipblasSgetrfBatched "getrfBatched". !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> trans hipblasOperation_t.\n !> Specifies the form of the system of equations of each instance in the batch. !> @param[in] !> n int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_i matrices. !> @param[in] !> nrhs int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_i. !> @param[in] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> The factors L_i and U_i of the factorization A_i = P_i*L_i*U_i returned by hipblasSgetrfBatched "getrfBatched". !> @param[in] !> lda int. lda >= n.\n !> The leading dimension of matrices A_i. !> @param[in] !> ipiv pointer to int. Array on the GPU.\n !> Contains the vectors ipiv_i of pivot indices returned by hipblasSgetrfBatched "getrfBatched". !> @param[in,out] !> B Array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrices B_i. !> On exit, the solution matrix X_i of each system in the batch. !> @param[in] !> ldb int. ldb >= n.\n !> The leading dimension of matrices B_i. !> @param[out] !> info pointer to a int on the host.\n !> If info = 0, successful exit. !> If info = j < 0, the j-th argument is invalid. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of instances (systems) in the batch. !> interface hipblasZgetrsBatched #ifdef USE_CUDA_NAMES function hipblasZgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="cublasZgetrsBatched") #else function hipblasZgetrsBatched_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) bind(c, name="hipblasZgetrsBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetrsBatched_full_rank,& hipblasZgetrsBatched_rank_0,& hipblasZgetrsBatched_rank_1 #endif end interface interface hipblasSgetrsStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="cublasSgetrsStridedBatched") #else function hipblasSgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="hipblasSgetrsStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetrsStridedBatched_full_rank,& hipblasSgetrsStridedBatched_rank_0,& hipblasSgetrsStridedBatched_rank_1 #endif end interface interface hipblasDgetrsStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="cublasDgetrsStridedBatched") #else function hipblasDgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="hipblasDgetrsStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetrsStridedBatched_full_rank,& hipblasDgetrsStridedBatched_rank_0,& hipblasDgetrsStridedBatched_rank_1 #endif end interface interface hipblasCgetrsStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="cublasCgetrsStridedBatched") #else function hipblasCgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="hipblasCgetrsStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetrsStridedBatched_full_rank,& hipblasCgetrsStridedBatched_rank_0,& hipblasCgetrsStridedBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> getrsStridedBatched solves a batch of systems of n linear equations !> on n variables in its factorized forms. !> !> For each instance i in the batch, it solves one of the following systems, depending on the value of trans: !> !> \f[ !> \begin{array}{cl} !> A_i X_i = B_i & \: \text{not transposed,} !> !> A_i^T X_i = B_i & \: \text{transposed, or} !> !> A_i^H X_i = B_i & \: \text{conjugate transposed.} !> \end{array} !> \f] !> !> Matrix \f$A_i\f$ is defined by its triangular factors as returned by hipblasSgetrfStridedBatched "getrfStridedBatched". !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> trans hipblasOperation_t.\n !> Specifies the form of the system of equations of each instance in the batch. !> @param[in] !> n int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_i matrices. !> @param[in] !> nrhs int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_i. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> The factors L_i and U_i of the factorization A_i = P_i*L_i*U_i returned by hipblasSgetrfStridedBatched "getrfStridedBatched". !> @param[in] !> lda int. lda >= n.\n !> The leading dimension of matrices A_i. !> @param[in] !> strideA hipblasStride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[in] !> ipiv pointer to int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_i of pivot indices returned by hipblasSgetrfStridedBatched "getrfStridedBatched". !> @param[in] !> strideP hipblasStride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[in,out] !> B pointer to type. Array on the GPU (size depends on the value of strideB).\n !> On entry, the right hand side matrices B_i. !> On exit, the solution matrix X_i of each system in the batch. !> @param[in] !> ldb int. ldb >= n.\n !> The leading dimension of matrices B_i. !> @param[in] !> strideB hipblasStride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs. !> @param[out] !> info pointer to a int on the host.\n !> If info = 0, successful exit. !> If info = j < 0, the j-th argument is invalid. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of instances (systems) in the batch. !> interface hipblasZgetrsStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="cublasZgetrsStridedBatched") #else function hipblasZgetrsStridedBatched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) bind(c, name="hipblasZgetrsStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsStridedBatched_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetrsStridedBatched_full_rank,& hipblasZgetrsStridedBatched_rank_0,& hipblasZgetrsStridedBatched_rank_1 #endif end interface interface hipblasSgetriBatched #ifdef USE_CUDA_NAMES function hipblasSgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="cublasSgetriBatched") #else function hipblasSgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="hipblasSgetriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetriBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: C integer(c_int),value :: ldc type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgetriBatched_full_rank,& hipblasSgetriBatched_rank_0,& hipblasSgetriBatched_rank_1 #endif end interface interface hipblasDgetriBatched #ifdef USE_CUDA_NAMES function hipblasDgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="cublasDgetriBatched") #else function hipblasDgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="hipblasDgetriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetriBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: C integer(c_int),value :: ldc type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgetriBatched_full_rank,& hipblasDgetriBatched_rank_0,& hipblasDgetriBatched_rank_1 #endif end interface interface hipblasCgetriBatched #ifdef USE_CUDA_NAMES function hipblasCgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="cublasCgetriBatched") #else function hipblasCgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="hipblasCgetriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetriBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: C integer(c_int),value :: ldc type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgetriBatched_full_rank,& hipblasCgetriBatched_rank_0,& hipblasCgetriBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> getriBatched computes the inverse \f$C_i = A_i^{-1}\f$ of a batch of general n-by-n matrices \f$A_i\f$. !> !> The inverse is computed by solving the linear system !> !> \f[ !> A_i C_i = I !> \f] !> !> where I is the identity matrix, and \f$A_i\f$ is factorized as \f$A_i = P_i L_i U_i\f$ as given by hipblasSgetrfBatched "getrfBatched". !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> n int. n >= 0.\n !> The number of rows and columns of all matrices A_i in the batch. !> @param[in] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> The factors L_i and U_i of the factorization A_i = P_i*L_i*U_i returned by hipblasSgetrfBatched "getrfBatched". !> @param[in] !> lda int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> ipiv pointer to int. Array on the GPU (the size depends on the value of strideP).\n !> The pivot indices returned by hipblasSgetrfBatched "getrfBatched". !> ipiv can be passed in as a nullptr, this will assume that getrfBatched was called without partial pivoting. !> @param[out] !> C array of pointers to type. Each pointer points to an array on the GPU of dimension ldc*n.\n !> If info[i] = 0, the inverse of matrices A_i. Otherwise, undefined. !> @param[in] !> ldc int. ldc >= n.\n !> Specifies the leading dimension of C_i. !> @param[out] !> info pointer to int. Array of batchCount integers on the GPU.\n !> If info[i] = 0, successful exit for inversion of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of matrices in the batch. !> interface hipblasZgetriBatched #ifdef USE_CUDA_NAMES function hipblasZgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="cublasZgetriBatched") #else function hipblasZgetriBatched_(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) bind(c, name="hipblasZgetriBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetriBatched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr) :: C integer(c_int),value :: ldc type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgetriBatched_full_rank,& hipblasZgetriBatched_rank_0,& hipblasZgetriBatched_rank_1 #endif end interface interface hipblasSgeqrf #ifdef USE_CUDA_NAMES function hipblasSgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="cublasSgeqrf") #else function hipblasSgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="hipblasSgeqrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgeqrf_full_rank,& hipblasSgeqrf_rank_0,& hipblasSgeqrf_rank_1 #endif end interface interface hipblasDgeqrf #ifdef USE_CUDA_NAMES function hipblasDgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="cublasDgeqrf") #else function hipblasDgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="hipblasDgeqrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgeqrf_full_rank,& hipblasDgeqrf_rank_0,& hipblasDgeqrf_rank_1 #endif end interface interface hipblasCgeqrf #ifdef USE_CUDA_NAMES function hipblasCgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="cublasCgeqrf") #else function hipblasCgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="hipblasCgeqrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeqrf_full_rank,& hipblasCgeqrf_rank_0,& hipblasCgeqrf_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> geqrf computes a QR factorization of a general m-by-n matrix A. !> !> The factorization has the form !> !> \f[ !> A = Q\left[\begin{array}{c} !> R\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where R is upper triangular (upper trapezoidal if m < n), and Q is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_1H_2\cdots H_k, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> m int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R; the elements below the diagonal are the last m - i elements !> of Householder vector v_i. !> @param[in] !> lda int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> @param[out] !> info pointer to a int on the host.\n !> If info = 0, successful exit. !> If info = j < 0, the j-th argument is invalid. !> interface hipblasZgeqrf #ifdef USE_CUDA_NAMES function hipblasZgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="cublasZgeqrf") #else function hipblasZgeqrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="hipblasZgeqrf") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeqrf_full_rank,& hipblasZgeqrf_rank_0,& hipblasZgeqrf_rank_1 #endif end interface interface hipblasSgeqrfBatched #ifdef USE_CUDA_NAMES function hipblasSgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasSgeqrfBatched") #else function hipblasSgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasSgeqrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgeqrfBatched_full_rank,& hipblasSgeqrfBatched_rank_0,& hipblasSgeqrfBatched_rank_1 #endif end interface interface hipblasDgeqrfBatched #ifdef USE_CUDA_NAMES function hipblasDgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasDgeqrfBatched") #else function hipblasDgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasDgeqrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgeqrfBatched_full_rank,& hipblasDgeqrfBatched_rank_0,& hipblasDgeqrfBatched_rank_1 #endif end interface interface hipblasCgeqrfBatched #ifdef USE_CUDA_NAMES function hipblasCgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasCgeqrfBatched") #else function hipblasCgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasCgeqrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeqrfBatched_full_rank,& hipblasCgeqrfBatched_rank_0,& hipblasCgeqrfBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> geqrfBatched computes the QR factorization of a batch of general !> m-by-n matrices. !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = Q_i\left[\begin{array}{c} !> R_i\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where \f$R_i\f$ is upper triangular (upper trapezoidal if m < n), and \f$Q_i\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_i = H_{i_1}H_{i_2}\cdots H_{i_k}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{i_j}\f$ is given by !> !> \f[ !> H_{i_j} = I - \text{ipiv}_i[j] \cdot v_{i_j} v_{i_j}' !> \f] !> !> where the first j-1 elements of Householder vector \f$v_{i_j}\f$ are zero, and \f$v_{i_j}[j] = 1\f$. !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> m int. m >= 0.\n !> The number of rows of all the matrices A_i in the batch. !> @param[in] !> n int. n >= 0.\n !> The number of columns of all the matrices A_i in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R_i. The elements below the diagonal are the last m - j elements !> of Householder vector v_(i_j). !> @param[in] !> lda int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> ipiv array of pointers to type. Each pointer points to an array on the GPU !> of dimension min(m, n).\n !> Contains the vectors ipiv_i of corresponding Householder scalars. !> @param[out] !> info pointer to a int on the host.\n !> If info = 0, successful exit. !> If info = k < 0, the k-th argument is invalid. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of matrices in the batch. interface hipblasZgeqrfBatched #ifdef USE_CUDA_NAMES function hipblasZgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="cublasZgeqrfBatched") #else function hipblasZgeqrfBatched_(handle,m,n,A,lda,ipiv,myInfo,batchCount) bind(c, name="hipblasZgeqrfBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: ipiv type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeqrfBatched_full_rank,& hipblasZgeqrfBatched_rank_0,& hipblasZgeqrfBatched_rank_1 #endif end interface interface hipblasSgeqrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasSgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasSgeqrfStridedBatched") #else function hipblasSgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasSgeqrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasSgeqrfStridedBatched_full_rank,& hipblasSgeqrfStridedBatched_rank_0,& hipblasSgeqrfStridedBatched_rank_1 #endif end interface interface hipblasDgeqrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasDgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasDgeqrfStridedBatched") #else function hipblasDgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasDgeqrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasDgeqrfStridedBatched_full_rank,& hipblasDgeqrfStridedBatched_rank_0,& hipblasDgeqrfStridedBatched_rank_1 #endif end interface interface hipblasCgeqrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasCgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasCgeqrfStridedBatched") #else function hipblasCgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasCgeqrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasCgeqrfStridedBatched_full_rank,& hipblasCgeqrfStridedBatched_rank_0,& hipblasCgeqrfStridedBatched_rank_1 #endif end interface !> \brief SOLVER API !> !> \details !> geqrfStridedBatched computes the QR factorization of a batch of !> general m-by-n matrices. !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = Q_i\left[\begin{array}{c} !> R_i\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where \f$R_i\f$ is upper triangular (upper trapezoidal if m < n), and \f$Q_i\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_i = H_{i_1}H_{i_2}\cdots H_{i_k}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{i_j}\f$ is given by !> !> \f[ !> H_{i_j} = I - \text{ipiv}_j[j] \cdot v_{i_j} v_{i_j}' !> \f] !> !> where the first j-1 elements of Householder vector \f$v_{i_j}\f$ are zero, and \f$v_{i_j}[j] = 1\f$. !> !> @param[in] !> handle hipblasHandle_t. !> @param[in] !> m int. m >= 0.\n !> The number of rows of all the matrices A_i in the batch. !> @param[in] !> n int. n >= 0.\n !> The number of columns of all the matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R_i. The elements below the diagonal are the last m - j elements !> of Householder vector v_(i_j). !> @param[in] !> lda int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA hipblasStride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_i of corresponding Householder scalars. !> @param[in] !> strideP hipblasStride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[out] !> info pointer to a int on the host.\n !> If info = 0, successful exit. !> If info = k < 0, the k-th argument is invalid. !> @param[in] !> batchCount int. batchCount >= 0.\n !> Number of matrices in the batch. interface hipblasZgeqrfStridedBatched #ifdef USE_CUDA_NAMES function hipblasZgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="cublasZgeqrfStridedBatched") #else function hipblasZgeqrfStridedBatched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) bind(c, name="hipblasZgeqrfStridedBatched") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfStridedBatched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: myInfo integer(c_int),value :: batchCount end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipblasZgeqrfStridedBatched_full_rank,& hipblasZgeqrfStridedBatched_rank_0,& hipblasZgeqrfStridedBatched_rank_1 #endif end interface interface hipblasGemmEx #ifdef USE_CUDA_NAMES function hipblasGemmEx_(handle,trans_a,trans_b,m,n,k,alpha,a,a_type,lda,b,b_type,ldb,beta,c,c_type,ldc,compute_type,algo) bind(c, name="cublasGemmEx") #else function hipblasGemmEx_(handle,trans_a,trans_b,m,n,k,alpha,a,a_type,lda,b,b_type,ldb,beta,c,c_type,ldc,compute_type,algo) bind(c, name="hipblasGemmEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasGemmEx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans_a integer(kind(HIPBLAS_OP_N)),value :: trans_b integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr),value :: a integer(kind(HIPBLAS_R_16F)),value :: a_type integer(c_int),value :: lda type(c_ptr),value :: b integer(kind(HIPBLAS_R_16F)),value :: b_type integer(c_int),value :: ldb type(c_ptr),value :: beta type(c_ptr),value :: c integer(kind(HIPBLAS_R_16F)),value :: c_type integer(c_int),value :: ldc integer(kind(HIPBLAS_R_16F)),value :: compute_type integer(kind(HIPBLAS_GEMM_DEFAULT)),value :: algo end function end interface interface hipblasGemmBatchedEx #ifdef USE_CUDA_NAMES function hipblasGemmBatchedEx_(handle,trans_a,trans_b,m,n,k,alpha,a,a_type,lda,b,b_type,ldb,beta,c,c_type,ldc,batch_count,compute_type,algo) bind(c, name="cublasGemmBatchedEx") #else function hipblasGemmBatchedEx_(handle,trans_a,trans_b,m,n,k,alpha,a,a_type,lda,b,b_type,ldb,beta,c,c_type,ldc,batch_count,compute_type,algo) bind(c, name="hipblasGemmBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasGemmBatchedEx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans_a integer(kind(HIPBLAS_OP_N)),value :: trans_b integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr) :: a integer(kind(HIPBLAS_R_16F)),value :: a_type integer(c_int),value :: lda type(c_ptr) :: b integer(kind(HIPBLAS_R_16F)),value :: b_type integer(c_int),value :: ldb type(c_ptr),value :: beta type(c_ptr) :: c integer(kind(HIPBLAS_R_16F)),value :: c_type integer(c_int),value :: ldc integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: compute_type integer(kind(HIPBLAS_GEMM_DEFAULT)),value :: algo end function end interface interface hipblasGemmStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasGemmStridedBatchedEx_(handle,trans_a,trans_b,m,n,k,alpha,a,a_type,lda,stride_A,b,b_type,ldb,stride_B,beta,c,c_type,ldc,stride_C,batch_count,compute_type,algo) bind(c, name="cublasGemmStridedBatchedEx") #else function hipblasGemmStridedBatchedEx_(handle,trans_a,trans_b,m,n,k,alpha,a,a_type,lda,stride_A,b,b_type,ldb,stride_B,beta,c,c_type,ldc,stride_C,batch_count,compute_type,algo) bind(c, name="hipblasGemmStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasGemmStridedBatchedEx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_OP_N)),value :: trans_a integer(kind(HIPBLAS_OP_N)),value :: trans_b integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: alpha type(c_ptr),value :: a integer(kind(HIPBLAS_R_16F)),value :: a_type integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: b integer(kind(HIPBLAS_R_16F)),value :: b_type integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B type(c_ptr),value :: beta type(c_ptr),value :: c integer(kind(HIPBLAS_R_16F)),value :: c_type integer(c_int),value :: ldc integer(c_int64_t),value :: stride_C integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: compute_type integer(kind(HIPBLAS_GEMM_DEFAULT)),value :: algo end function end interface interface hipblasTrsmEx #ifdef USE_CUDA_NAMES function hipblasTrsmEx_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,invA,invA_size,compute_type) bind(c, name="cublasTrsmEx") #else function hipblasTrsmEx_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,invA,invA_size,compute_type) bind(c, name="hipblasTrsmEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasTrsmEx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: invA integer(c_int),value :: invA_size integer(kind(HIPBLAS_R_16F)),value :: compute_type end function end interface interface hipblasTrsmBatchedEx #ifdef USE_CUDA_NAMES function hipblasTrsmBatchedEx_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count,invA,invA_size,compute_type) bind(c, name="cublasTrsmBatchedEx") #else function hipblasTrsmBatchedEx_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batch_count,invA,invA_size,compute_type) bind(c, name="hipblasTrsmBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasTrsmBatchedEx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count type(c_ptr),value :: invA integer(c_int),value :: invA_size integer(kind(HIPBLAS_R_16F)),value :: compute_type end function end interface interface hipblasTrsmStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasTrsmStridedBatchedEx_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,batch_count,invA,invA_size,stride_invA,compute_type) bind(c, name="cublasTrsmStridedBatchedEx") #else function hipblasTrsmStridedBatchedEx_(handle,side,uplo,transA,diag,m,n,alpha,A,lda,stride_A,B,ldb,stride_B,batch_count,invA,invA_size,stride_invA,compute_type) bind(c, name="hipblasTrsmStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasTrsmStridedBatchedEx_ type(c_ptr),value :: handle integer(kind(HIPBLAS_SIDE_LEFT)),value :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPBLAS_OP_N)),value :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)),value :: diag integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: stride_A type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: stride_B integer(c_int),value :: batch_count type(c_ptr),value :: invA integer(c_int),value :: invA_size integer(c_int64_t),value :: stride_invA integer(kind(HIPBLAS_R_16F)),value :: compute_type end function end interface interface hipblasAxpyEx #ifdef USE_CUDA_NAMES function hipblasAxpyEx_(handle,n,alpha,alphaType,x,xType,incx,y,yType,incy,executionType) bind(c, name="cublasAxpyEx") #else function hipblasAxpyEx_(handle,n,alpha,alphaType,x,xType,incx,y,yType,incy,executionType) bind(c, name="hipblasAxpyEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasAxpyEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(HIPBLAS_R_16F)),value :: alphaType type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasAxpyBatchedEx #ifdef USE_CUDA_NAMES function hipblasAxpyBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,y,yType,incy,batch_count,executionType) bind(c, name="cublasAxpyBatchedEx") #else function hipblasAxpyBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,y,yType,incy,batch_count,executionType) bind(c, name="hipblasAxpyBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasAxpyBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(HIPBLAS_R_16F)),value :: alphaType type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasAxpyStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasAxpyStridedBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,stridex,y,yType,incy,stridey,batch_count,executionType) bind(c, name="cublasAxpyStridedBatchedEx") #else function hipblasAxpyStridedBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,stridex,y,yType,incy,stridey,batch_count,executionType) bind(c, name="hipblasAxpyStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasAxpyStridedBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(HIPBLAS_R_16F)),value :: alphaType type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasDotEx #ifdef USE_CUDA_NAMES function hipblasDotEx_(handle,n,x,xType,incx,y,yType,incy,myResult,resultType,executionType) bind(c, name="cublasDotEx") #else function hipblasDotEx_(handle,n,x,xType,incx,y,yType,incy,myResult,resultType,executionType) bind(c, name="hipblasDotEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDotEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasDotcEx #ifdef USE_CUDA_NAMES function hipblasDotcEx_(handle,n,x,xType,incx,y,yType,incy,myResult,resultType,executionType) bind(c, name="cublasDotcEx") #else function hipblasDotcEx_(handle,n,x,xType,incx,y,yType,incy,myResult,resultType,executionType) bind(c, name="hipblasDotcEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDotcEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasDotBatchedEx #ifdef USE_CUDA_NAMES function hipblasDotBatchedEx_(handle,n,x,xType,incx,y,yType,incy,batch_count,myResult,resultType,executionType) bind(c, name="cublasDotBatchedEx") #else function hipblasDotBatchedEx_(handle,n,x,xType,incx,y,yType,incy,batch_count,myResult,resultType,executionType) bind(c, name="hipblasDotBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDotBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasDotcBatchedEx #ifdef USE_CUDA_NAMES function hipblasDotcBatchedEx_(handle,n,x,xType,incx,y,yType,incy,batch_count,myResult,resultType,executionType) bind(c, name="cublasDotcBatchedEx") #else function hipblasDotcBatchedEx_(handle,n,x,xType,incx,y,yType,incy,batch_count,myResult,resultType,executionType) bind(c, name="hipblasDotcBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDotcBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasDotStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasDotStridedBatchedEx_(handle,n,x,xType,incx,stridex,y,yType,incy,stridey,batch_count,myResult,resultType,executionType) bind(c, name="cublasDotStridedBatchedEx") #else function hipblasDotStridedBatchedEx_(handle,n,x,xType,incx,stridex,y,yType,incy,stridey,batch_count,myResult,resultType,executionType) bind(c, name="hipblasDotStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDotStridedBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasDotcStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasDotcStridedBatchedEx_(handle,n,x,xType,incx,stridex,y,yType,incy,stridey,batch_count,myResult,resultType,executionType) bind(c, name="cublasDotcStridedBatchedEx") #else function hipblasDotcStridedBatchedEx_(handle,n,x,xType,incx,stridex,y,yType,incy,stridey,batch_count,myResult,resultType,executionType) bind(c, name="hipblasDotcStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDotcStridedBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int64_t),value :: stridey integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasNrm2Ex #ifdef USE_CUDA_NAMES function hipblasNrm2Ex_(handle,n,x,xType,incx,myResult,resultType,executionType) bind(c, name="cublasNrm2Ex") #else function hipblasNrm2Ex_(handle,n,x,xType,incx,myResult,resultType,executionType) bind(c, name="hipblasNrm2Ex") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasNrm2Ex_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasNrm2BatchedEx #ifdef USE_CUDA_NAMES function hipblasNrm2BatchedEx_(handle,n,x,xType,incx,batch_count,myResult,resultType,executionType) bind(c, name="cublasNrm2BatchedEx") #else function hipblasNrm2BatchedEx_(handle,n,x,xType,incx,batch_count,myResult,resultType,executionType) bind(c, name="hipblasNrm2BatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasNrm2BatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasNrm2StridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasNrm2StridedBatchedEx_(handle,n,x,xType,incx,stridex,batch_count,myResult,resultType,executionType) bind(c, name="cublasNrm2StridedBatchedEx") #else function hipblasNrm2StridedBatchedEx_(handle,n,x,xType,incx,stridex,batch_count,myResult,resultType,executionType) bind(c, name="hipblasNrm2StridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasNrm2StridedBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count type(c_ptr),value :: myResult integer(kind(HIPBLAS_R_16F)),value :: resultType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasRotEx #ifdef USE_CUDA_NAMES function hipblasRotEx_(handle,n,x,xType,incx,y,yType,incy,c,s,csType,executionType) bind(c, name="cublasRotEx") #else function hipblasRotEx_(handle,n,x,xType,incx,y,yType,incy,c,s,csType,executionType) bind(c, name="hipblasRotEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasRotEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(kind(HIPBLAS_R_16F)),value :: csType integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasRotBatchedEx #ifdef USE_CUDA_NAMES function hipblasRotBatchedEx_(handle,n,x,xType,incx,y,yType,incy,c,s,csType,batch_count,executionType) bind(c, name="cublasRotBatchedEx") #else function hipblasRotBatchedEx_(handle,n,x,xType,incx,y,yType,incy,c,s,csType,batch_count,executionType) bind(c, name="hipblasRotBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasRotBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy type(c_ptr),value :: c type(c_ptr),value :: s integer(kind(HIPBLAS_R_16F)),value :: csType integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasRotStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasRotStridedBatchedEx_(handle,n,x,xType,incx,stridex,y,yType,incy,stridey,c,s,csType,batch_count,executionType) bind(c, name="cublasRotStridedBatchedEx") #else function hipblasRotStridedBatchedEx_(handle,n,x,xType,incx,stridex,y,yType,incy,stridey,c,s,csType,batch_count,executionType) bind(c, name="hipblasRotStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasRotStridedBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int64_t),value :: stridex type(c_ptr),value :: y integer(kind(HIPBLAS_R_16F)),value :: yType integer(c_int),value :: incy integer(c_int64_t),value :: stridey type(c_ptr),value :: c type(c_ptr),value :: s integer(kind(HIPBLAS_R_16F)),value :: csType integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasScalEx #ifdef USE_CUDA_NAMES function hipblasScalEx_(handle,n,alpha,alphaType,x,xType,incx,executionType) bind(c, name="cublasScalEx") #else function hipblasScalEx_(handle,n,alpha,alphaType,x,xType,incx,executionType) bind(c, name="hipblasScalEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScalEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(HIPBLAS_R_16F)),value :: alphaType type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasScalBatchedEx #ifdef USE_CUDA_NAMES function hipblasScalBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,batch_count,executionType) bind(c, name="cublasScalBatchedEx") #else function hipblasScalBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,batch_count,executionType) bind(c, name="hipblasScalBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScalBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(HIPBLAS_R_16F)),value :: alphaType type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface interface hipblasScalStridedBatchedEx #ifdef USE_CUDA_NAMES function hipblasScalStridedBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,stridex,batch_count,executionType) bind(c, name="cublasScalStridedBatchedEx") #else function hipblasScalStridedBatchedEx_(handle,n,alpha,alphaType,x,xType,incx,stridex,batch_count,executionType) bind(c, name="hipblasScalStridedBatchedEx") #endif use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScalStridedBatchedEx_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: alpha integer(kind(HIPBLAS_R_16F)),value :: alphaType type(c_ptr),value :: x integer(kind(HIPBLAS_R_16F)),value :: xType integer(c_int),value :: incx integer(c_int64_t),value :: stridex integer(c_int),value :: batch_count integer(kind(HIPBLAS_R_16F)),value :: executionType end function end interface #ifdef USE_FPOINTER_INTERFACES contains function hipblasIsamax_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamax_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIsamax_rank_0 = hipblasIsamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIsamax_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamax_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIsamax_rank_1 = hipblasIsamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIdamax_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamax_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIdamax_rank_0 = hipblasIdamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIdamax_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamax_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIdamax_rank_1 = hipblasIdamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIcamax_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamax_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIcamax_rank_0 = hipblasIcamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIcamax_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamax_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIcamax_rank_1 = hipblasIcamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIzamax_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamax_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIzamax_rank_0 = hipblasIzamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIzamax_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamax_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIzamax_rank_1 = hipblasIzamax_(handle,n,c_loc(x),incx,myResult) end function function hipblasIsamaxBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsamaxBatched_full_rank = hipblasIsamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIsamaxBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsamaxBatched_rank_0 = hipblasIsamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIsamaxBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsamaxBatched_rank_1 = hipblasIsamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIdamaxBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdamaxBatched_full_rank = hipblasIdamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIdamaxBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdamaxBatched_rank_0 = hipblasIdamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIdamaxBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdamaxBatched_rank_1 = hipblasIdamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIcamaxBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcamaxBatched_full_rank = hipblasIcamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIcamaxBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcamaxBatched_rank_0 = hipblasIcamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIcamaxBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcamaxBatched_rank_1 = hipblasIcamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIzamaxBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzamaxBatched_full_rank = hipblasIzamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIzamaxBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzamaxBatched_rank_0 = hipblasIzamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIzamaxBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzamaxBatched_rank_1 = hipblasIzamaxBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIsamaxStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsamaxStridedBatched_rank_0 = hipblasIsamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIsamaxStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamaxStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsamaxStridedBatched_rank_1 = hipblasIsamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIdamaxStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdamaxStridedBatched_rank_0 = hipblasIdamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIdamaxStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamaxStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdamaxStridedBatched_rank_1 = hipblasIdamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIcamaxStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcamaxStridedBatched_rank_0 = hipblasIcamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIcamaxStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamaxStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcamaxStridedBatched_rank_1 = hipblasIcamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIzamaxStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzamaxStridedBatched_rank_0 = hipblasIzamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIzamaxStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamaxStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzamaxStridedBatched_rank_1 = hipblasIzamaxStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIsamin_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamin_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIsamin_rank_0 = hipblasIsamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIsamin_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsamin_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIsamin_rank_1 = hipblasIsamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIdamin_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamin_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIdamin_rank_0 = hipblasIdamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIdamin_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdamin_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIdamin_rank_1 = hipblasIdamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIcamin_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamin_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIcamin_rank_0 = hipblasIcamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIcamin_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcamin_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIcamin_rank_1 = hipblasIcamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIzamin_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamin_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIzamin_rank_0 = hipblasIzamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIzamin_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzamin_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasIzamin_rank_1 = hipblasIzamin_(handle,n,c_loc(x),incx,myResult) end function function hipblasIsaminBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsaminBatched_full_rank = hipblasIsaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIsaminBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsaminBatched_rank_0 = hipblasIsaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIsaminBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsaminBatched_rank_1 = hipblasIsaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIdaminBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdaminBatched_full_rank = hipblasIdaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIdaminBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdaminBatched_rank_0 = hipblasIdaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIdaminBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdaminBatched_rank_1 = hipblasIdaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIcaminBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcaminBatched_full_rank = hipblasIcaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIcaminBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcaminBatched_rank_0 = hipblasIcaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIcaminBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcaminBatched_rank_1 = hipblasIcaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIzaminBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzaminBatched_full_rank = hipblasIzaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIzaminBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzaminBatched_rank_0 = hipblasIzaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIzaminBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzaminBatched_rank_1 = hipblasIzaminBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasIsaminStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsaminStridedBatched_rank_0 = hipblasIsaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIsaminStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIsaminStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIsaminStridedBatched_rank_1 = hipblasIsaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIdaminStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdaminStridedBatched_rank_0 = hipblasIdaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIdaminStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIdaminStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIdaminStridedBatched_rank_1 = hipblasIdaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIcaminStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcaminStridedBatched_rank_0 = hipblasIcaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIcaminStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIcaminStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIcaminStridedBatched_rank_1 = hipblasIcaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIzaminStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzaminStridedBatched_rank_0 = hipblasIzaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasIzaminStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasIzaminStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasIzaminStridedBatched_rank_1 = hipblasIzaminStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasSasum_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasum_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasSasum_rank_0 = hipblasSasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasSasum_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasum_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasSasum_rank_1 = hipblasSasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasDasum_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasum_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDasum_rank_0 = hipblasDasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasDasum_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasum_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDasum_rank_1 = hipblasDasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasScasum_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasum_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasScasum_rank_0 = hipblasScasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasScasum_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasum_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasScasum_rank_1 = hipblasScasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasDzasum_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasum_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDzasum_rank_0 = hipblasDzasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasDzasum_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasum_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDzasum_rank_1 = hipblasDzasum_(handle,n,c_loc(x),incx,myResult) end function function hipblasSasumBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSasumBatched_full_rank = hipblasSasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasSasumBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSasumBatched_rank_0 = hipblasSasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasSasumBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSasumBatched_rank_1 = hipblasSasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDasumBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDasumBatched_full_rank = hipblasDasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDasumBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDasumBatched_rank_0 = hipblasDasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDasumBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDasumBatched_rank_1 = hipblasDasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasScasumBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScasumBatched_full_rank = hipblasScasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasScasumBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScasumBatched_rank_0 = hipblasScasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasScasumBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScasumBatched_rank_1 = hipblasScasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDzasumBatched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDzasumBatched_full_rank = hipblasDzasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDzasumBatched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDzasumBatched_rank_0 = hipblasDzasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDzasumBatched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDzasumBatched_rank_1 = hipblasDzasumBatched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasSasumStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSasumStridedBatched_rank_0 = hipblasSasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasSasumStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSasumStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSasumStridedBatched_rank_1 = hipblasSasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDasumStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDasumStridedBatched_rank_0 = hipblasDasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDasumStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDasumStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDasumStridedBatched_rank_1 = hipblasDasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasScasumStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScasumStridedBatched_rank_0 = hipblasScasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasScasumStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScasumStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScasumStridedBatched_rank_1 = hipblasScasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDzasumStridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDzasumStridedBatched_rank_0 = hipblasDzasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDzasumStridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDzasumStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDzasumStridedBatched_rank_1 = hipblasDzasumStridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasSaxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy ! hipblasSaxpy_rank_0 = hipblasSaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasSaxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSaxpy_rank_1 = hipblasSaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasDaxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy ! hipblasDaxpy_rank_0 = hipblasDaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasDaxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDaxpy_rank_1 = hipblasDaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasCaxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasCaxpy_rank_0 = hipblasCaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasCaxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCaxpy_rank_1 = hipblasCaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasZaxpy_rank_0(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZaxpy_rank_0 = hipblasZaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasZaxpy_rank_1(handle,n,alpha,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZaxpy_rank_1 = hipblasZaxpy_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy) end function function hipblasSaxpyBatched_full_rank(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSaxpyBatched_full_rank = hipblasSaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasSaxpyBatched_rank_0(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSaxpyBatched_rank_0 = hipblasSaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasSaxpyBatched_rank_1(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSaxpyBatched_rank_1 = hipblasSaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDaxpyBatched_full_rank(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDaxpyBatched_full_rank = hipblasDaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDaxpyBatched_rank_0(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDaxpyBatched_rank_0 = hipblasDaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDaxpyBatched_rank_1(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDaxpyBatched_rank_1 = hipblasDaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCaxpyBatched_full_rank(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCaxpyBatched_full_rank = hipblasCaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCaxpyBatched_rank_0(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCaxpyBatched_rank_0 = hipblasCaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCaxpyBatched_rank_1(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCaxpyBatched_rank_1 = hipblasCaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZaxpyBatched_full_rank(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZaxpyBatched_full_rank = hipblasZaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZaxpyBatched_rank_0(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZaxpyBatched_rank_0 = hipblasZaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZaxpyBatched_rank_1(handle,n,alpha,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZaxpyBatched_rank_1 = hipblasZaxpyBatched_(handle,n,alpha,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasSaxpyStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSaxpyStridedBatched_rank_0 = hipblasSaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasSaxpyStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSaxpyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSaxpyStridedBatched_rank_1 = hipblasSaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasDaxpyStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDaxpyStridedBatched_rank_0 = hipblasDaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasDaxpyStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDaxpyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDaxpyStridedBatched_rank_1 = hipblasDaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasCaxpyStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCaxpyStridedBatched_rank_0 = hipblasCaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasCaxpyStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCaxpyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCaxpyStridedBatched_rank_1 = hipblasCaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasZaxpyStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZaxpyStridedBatched_rank_0 = hipblasZaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasZaxpyStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZaxpyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZaxpyStridedBatched_rank_1 = hipblasZaxpyStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasScopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy ! hipblasScopy_rank_0 = hipblasScopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasScopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasScopy_rank_1 = hipblasScopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasDcopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy ! hipblasDcopy_rank_0 = hipblasDcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasDcopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDcopy_rank_1 = hipblasDcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasCcopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasCcopy_rank_0 = hipblasCcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasCcopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCcopy_rank_1 = hipblasCcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasZcopy_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopy_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZcopy_rank_0 = hipblasZcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasZcopy_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopy_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZcopy_rank_1 = hipblasZcopy_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasScopyBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasScopyBatched_full_rank = hipblasScopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasScopyBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasScopyBatched_rank_0 = hipblasScopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasScopyBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasScopyBatched_rank_1 = hipblasScopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDcopyBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDcopyBatched_full_rank = hipblasDcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDcopyBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDcopyBatched_rank_0 = hipblasDcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDcopyBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDcopyBatched_rank_1 = hipblasDcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCcopyBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCcopyBatched_full_rank = hipblasCcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCcopyBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCcopyBatched_rank_0 = hipblasCcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCcopyBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCcopyBatched_rank_1 = hipblasCcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZcopyBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZcopyBatched_full_rank = hipblasZcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZcopyBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZcopyBatched_rank_0 = hipblasZcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZcopyBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZcopyBatched_rank_1 = hipblasZcopyBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasScopyStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasScopyStridedBatched_rank_0 = hipblasScopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasScopyStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScopyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasScopyStridedBatched_rank_1 = hipblasScopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasDcopyStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDcopyStridedBatched_rank_0 = hipblasDcopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasDcopyStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDcopyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDcopyStridedBatched_rank_1 = hipblasDcopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasCcopyStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCcopyStridedBatched_rank_0 = hipblasCcopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasCcopyStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCcopyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCcopyStridedBatched_rank_1 = hipblasCcopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasZcopyStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZcopyStridedBatched_rank_0 = hipblasZcopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasZcopyStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZcopyStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZcopyStridedBatched_rank_1 = hipblasZcopyStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasSdot_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasSdot_rank_0 = hipblasSdot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasSdot_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasSdot_rank_1 = hipblasSdot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasDdot_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasDdot_rank_0 = hipblasDdot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasDdot_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasDdot_rank_1 = hipblasDdot_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasCdotc_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotc_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasCdotc_rank_0 = hipblasCdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasCdotc_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotc_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasCdotc_rank_1 = hipblasCdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasCdotu_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotu_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasCdotu_rank_0 = hipblasCdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasCdotu_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotu_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasCdotu_rank_1 = hipblasCdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasZdotc_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotc_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasZdotc_rank_0 = hipblasZdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasZdotc_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotc_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasZdotc_rank_1 = hipblasZdotc_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasZdotu_rank_0(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotu_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasZdotu_rank_0 = hipblasZdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasZdotu_rank_1(handle,n,x,incx,y,incy,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotu_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: myResult ! hipblasZdotu_rank_1 = hipblasZdotu_(handle,n,c_loc(x),incx,c_loc(y),incy,myResult) end function function hipblasSdotBatched_full_rank(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSdotBatched_full_rank = hipblasSdotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasSdotBatched_rank_0(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSdotBatched_rank_0 = hipblasSdotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasSdotBatched_rank_1(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSdotBatched_rank_1 = hipblasSdotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasDdotBatched_full_rank(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDdotBatched_full_rank = hipblasDdotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasDdotBatched_rank_0(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDdotBatched_rank_0 = hipblasDdotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasDdotBatched_rank_1(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDdotBatched_rank_1 = hipblasDdotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasCdotcBatched_full_rank(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotcBatched_full_rank = hipblasCdotcBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasCdotcBatched_rank_0(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotcBatched_rank_0 = hipblasCdotcBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasCdotcBatched_rank_1(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotcBatched_rank_1 = hipblasCdotcBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasCdotuBatched_full_rank(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotuBatched_full_rank = hipblasCdotuBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasCdotuBatched_rank_0(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotuBatched_rank_0 = hipblasCdotuBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasCdotuBatched_rank_1(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotuBatched_rank_1 = hipblasCdotuBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasZdotcBatched_full_rank(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotcBatched_full_rank = hipblasZdotcBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasZdotcBatched_rank_0(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotcBatched_rank_0 = hipblasZdotcBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasZdotcBatched_rank_1(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotcBatched_rank_1 = hipblasZdotcBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasZdotuBatched_full_rank(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotuBatched_full_rank = hipblasZdotuBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasZdotuBatched_rank_0(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotuBatched_rank_0 = hipblasZdotuBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasZdotuBatched_rank_1(handle,n,x,incx,y,incy,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotuBatched_rank_1 = hipblasZdotuBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount,myResult) end function function hipblasSdotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSdotStridedBatched_rank_0 = hipblasSdotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasSdotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSdotStridedBatched_rank_1 = hipblasSdotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasDdotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDdotStridedBatched_rank_0 = hipblasDdotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasDdotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDdotStridedBatched_rank_1 = hipblasDdotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasCdotcStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotcStridedBatched_rank_0 = hipblasCdotcStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasCdotcStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotcStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotcStridedBatched_rank_1 = hipblasCdotcStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasCdotuStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotuStridedBatched_rank_0 = hipblasCdotuStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasCdotuStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdotuStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasCdotuStridedBatched_rank_1 = hipblasCdotuStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasZdotcStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotcStridedBatched_rank_0 = hipblasZdotcStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasZdotcStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotcStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotcStridedBatched_rank_1 = hipblasZdotcStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasZdotuStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotuStridedBatched_rank_0 = hipblasZdotuStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasZdotuStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdotuStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasZdotuStridedBatched_rank_1 = hipblasZdotuStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount,myResult) end function function hipblasSnrm2_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasSnrm2_rank_0 = hipblasSnrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasSnrm2_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasSnrm2_rank_1 = hipblasSnrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasDnrm2_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDnrm2_rank_0 = hipblasDnrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasDnrm2_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDnrm2_rank_1 = hipblasDnrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasScnrm2_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasScnrm2_rank_0 = hipblasScnrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasScnrm2_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasScnrm2_rank_1 = hipblasScnrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasDznrm2_rank_0(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDznrm2_rank_0 = hipblasDznrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasDznrm2_rank_1(handle,n,x,incx,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: myResult ! hipblasDznrm2_rank_1 = hipblasDznrm2_(handle,n,c_loc(x),incx,myResult) end function function hipblasSnrm2Batched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2Batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSnrm2Batched_full_rank = hipblasSnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasSnrm2Batched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2Batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSnrm2Batched_rank_0 = hipblasSnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasSnrm2Batched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2Batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSnrm2Batched_rank_1 = hipblasSnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDnrm2Batched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2Batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDnrm2Batched_full_rank = hipblasDnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDnrm2Batched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2Batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDnrm2Batched_rank_0 = hipblasDnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDnrm2Batched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2Batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDnrm2Batched_rank_1 = hipblasDnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasScnrm2Batched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2Batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScnrm2Batched_full_rank = hipblasScnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasScnrm2Batched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2Batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScnrm2Batched_rank_0 = hipblasScnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasScnrm2Batched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2Batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScnrm2Batched_rank_1 = hipblasScnrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDznrm2Batched_full_rank(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2Batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDznrm2Batched_full_rank = hipblasDznrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDznrm2Batched_rank_0(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2Batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDznrm2Batched_rank_0 = hipblasDznrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasDznrm2Batched_rank_1(handle,n,x,incx,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2Batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDznrm2Batched_rank_1 = hipblasDznrm2Batched_(handle,n,c_loc(x),incx,batchCount,myResult) end function function hipblasSnrm2StridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2StridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSnrm2StridedBatched_rank_0 = hipblasSnrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasSnrm2StridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSnrm2StridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasSnrm2StridedBatched_rank_1 = hipblasSnrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDnrm2StridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2StridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDnrm2StridedBatched_rank_0 = hipblasDnrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDnrm2StridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDnrm2StridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDnrm2StridedBatched_rank_1 = hipblasDnrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasScnrm2StridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2StridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScnrm2StridedBatched_rank_0 = hipblasScnrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasScnrm2StridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasScnrm2StridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasScnrm2StridedBatched_rank_1 = hipblasScnrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDznrm2StridedBatched_rank_0(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2StridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDznrm2StridedBatched_rank_0 = hipblasDznrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasDznrm2StridedBatched_rank_1(handle,n,x,incx,stridex,batchCount,myResult) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDznrm2StridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount type(c_ptr) :: myResult ! hipblasDznrm2StridedBatched_rank_1 = hipblasDznrm2StridedBatched_(handle,n,c_loc(x),incx,stridex,batchCount,myResult) end function function hipblasSrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasSrot_rank_0 = hipblasSrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasSrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasSrot_rank_1 = hipblasSrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasDrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasDrot_rank_0 = hipblasDrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasDrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasDrot_rank_1 = hipblasDrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasCrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasCrot_rank_0 = hipblasCrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasCrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasCrot_rank_1 = hipblasCrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasCsrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasCsrot_rank_0 = hipblasCsrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasCsrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasCsrot_rank_1 = hipblasCsrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasZrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasZrot_rank_0 = hipblasZrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasZrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasZrot_rank_1 = hipblasZrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasZdrot_rank_0(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrot_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasZdrot_rank_0 = hipblasZdrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasZdrot_rank_1(handle,n,x,incx,y,incy,c,s) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrot_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s ! hipblasZdrot_rank_1 = hipblasZdrot_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s) end function function hipblasSrotBatched_full_rank(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasSrotBatched_full_rank = hipblasSrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasSrotBatched_rank_0(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasSrotBatched_rank_0 = hipblasSrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasSrotBatched_rank_1(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasSrotBatched_rank_1 = hipblasSrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasDrotBatched_full_rank(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasDrotBatched_full_rank = hipblasDrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasDrotBatched_rank_0(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasDrotBatched_rank_0 = hipblasDrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasDrotBatched_rank_1(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasDrotBatched_rank_1 = hipblasDrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasCrotBatched_full_rank(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCrotBatched_full_rank = hipblasCrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasCrotBatched_rank_0(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCrotBatched_rank_0 = hipblasCrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasCrotBatched_rank_1(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCrotBatched_rank_1 = hipblasCrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasCsrotBatched_full_rank(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCsrotBatched_full_rank = hipblasCsrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasCsrotBatched_rank_0(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCsrotBatched_rank_0 = hipblasCsrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasCsrotBatched_rank_1(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCsrotBatched_rank_1 = hipblasCsrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasZrotBatched_full_rank(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZrotBatched_full_rank = hipblasZrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasZrotBatched_rank_0(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZrotBatched_rank_0 = hipblasZrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasZrotBatched_rank_1(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZrotBatched_rank_1 = hipblasZrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasZdrotBatched_full_rank(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZdrotBatched_full_rank = hipblasZdrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasZdrotBatched_rank_0(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZdrotBatched_rank_0 = hipblasZdrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasZdrotBatched_rank_1(handle,n,x,incx,y,incy,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZdrotBatched_rank_1 = hipblasZdrotBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,c,s,batchCount) end function function hipblasSrotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasSrotStridedBatched_rank_0 = hipblasSrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasSrotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasSrotStridedBatched_rank_1 = hipblasSrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasDrotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasDrotStridedBatched_rank_0 = hipblasDrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasDrotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasDrotStridedBatched_rank_1 = hipblasDrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasCrotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCrotStridedBatched_rank_0 = hipblasCrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasCrotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCrotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCrotStridedBatched_rank_1 = hipblasCrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasCsrotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCsrotStridedBatched_rank_0 = hipblasCsrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasCsrotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsrotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasCsrotStridedBatched_rank_1 = hipblasCsrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasZrotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZrotStridedBatched_rank_0 = hipblasZrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasZrotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZrotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZrotStridedBatched_rank_1 = hipblasZrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasZdrotStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZdrotStridedBatched_rank_0 = hipblasZdrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasZdrotStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,c,s,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdrotStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: c type(c_ptr) :: s integer(c_int) :: batchCount ! hipblasZdrotStridedBatched_rank_1 = hipblasZdrotStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c,s,batchCount) end function function hipblasSrotm_rank_0(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotm_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: param ! hipblasSrotm_rank_0 = hipblasSrotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function hipblasSrotm_rank_1(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotm_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param ! hipblasSrotm_rank_1 = hipblasSrotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function hipblasDrotm_rank_0(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotm_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: param ! hipblasDrotm_rank_0 = hipblasDrotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function hipblasDrotm_rank_1(handle,n,x,incx,y,incy,param) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotm_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param ! hipblasDrotm_rank_1 = hipblasDrotm_(handle,n,c_loc(x),incx,c_loc(y),incy,param) end function function hipblasSrotmBatched_full_rank(handle,n,x,incx,y,incy,param,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batchCount ! hipblasSrotmBatched_full_rank = hipblasSrotmBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batchCount) end function function hipblasSrotmBatched_rank_0(handle,n,x,incx,y,incy,param,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batchCount ! hipblasSrotmBatched_rank_0 = hipblasSrotmBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batchCount) end function function hipblasSrotmBatched_rank_1(handle,n,x,incx,y,incy,param,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batchCount ! hipblasSrotmBatched_rank_1 = hipblasSrotmBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batchCount) end function function hipblasDrotmBatched_full_rank(handle,n,x,incx,y,incy,param,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batchCount ! hipblasDrotmBatched_full_rank = hipblasDrotmBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batchCount) end function function hipblasDrotmBatched_rank_0(handle,n,x,incx,y,incy,param,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batchCount ! hipblasDrotmBatched_rank_0 = hipblasDrotmBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batchCount) end function function hipblasDrotmBatched_rank_1(handle,n,x,incx,y,incy,param,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: param integer(c_int) :: batchCount ! hipblasDrotmBatched_rank_1 = hipblasDrotmBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,param,batchCount) end function function hipblasSrotmStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: param integer(c_int64_t) :: strideParam integer(c_int) :: batchCount ! hipblasSrotmStridedBatched_rank_0 = hipblasSrotmStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,param,strideParam,batchCount) end function function hipblasSrotmStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSrotmStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: param integer(c_int64_t) :: strideParam integer(c_int) :: batchCount ! hipblasSrotmStridedBatched_rank_1 = hipblasSrotmStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,param,strideParam,batchCount) end function function hipblasDrotmStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: param integer(c_int64_t) :: strideParam integer(c_int) :: batchCount ! hipblasDrotmStridedBatched_rank_0 = hipblasDrotmStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,param,strideParam,batchCount) end function function hipblasDrotmStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,param,strideParam,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDrotmStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: param integer(c_int64_t) :: strideParam integer(c_int) :: batchCount ! hipblasDrotmStridedBatched_rank_1 = hipblasDrotmStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,param,strideParam,batchCount) end function function hipblasSscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx ! hipblasSscal_rank_0 = hipblasSscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasSscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasSscal_rank_1 = hipblasSscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasDscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx ! hipblasDscal_rank_0 = hipblasDscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasDscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDscal_rank_1 = hipblasDscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasCscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCscal_rank_0 = hipblasCscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasCscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCscal_rank_1 = hipblasCscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasCsscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCsscal_rank_0 = hipblasCsscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasCsscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCsscal_rank_1 = hipblasCsscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasZscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZscal_rank_0 = hipblasZscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasZscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZscal_rank_1 = hipblasZscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasZdscal_rank_0(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscal_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZdscal_rank_0 = hipblasZdscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasZdscal_rank_1(handle,n,alpha,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscal_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZdscal_rank_1 = hipblasZdscal_(handle,n,alpha,c_loc(x),incx) end function function hipblasSscalBatched_full_rank(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasSscalBatched_full_rank = hipblasSscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasSscalBatched_rank_0(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasSscalBatched_rank_0 = hipblasSscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasSscalBatched_rank_1(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasSscalBatched_rank_1 = hipblasSscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasDscalBatched_full_rank(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDscalBatched_full_rank = hipblasDscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasDscalBatched_rank_0(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDscalBatched_rank_0 = hipblasDscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasDscalBatched_rank_1(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDscalBatched_rank_1 = hipblasDscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasCscalBatched_full_rank(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCscalBatched_full_rank = hipblasCscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasCscalBatched_rank_0(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCscalBatched_rank_0 = hipblasCscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasCscalBatched_rank_1(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCscalBatched_rank_1 = hipblasCscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasZscalBatched_full_rank(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZscalBatched_full_rank = hipblasZscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasZscalBatched_rank_0(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZscalBatched_rank_0 = hipblasZscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasZscalBatched_rank_1(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZscalBatched_rank_1 = hipblasZscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasCsscalBatched_full_rank(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCsscalBatched_full_rank = hipblasCsscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasCsscalBatched_rank_0(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCsscalBatched_rank_0 = hipblasCsscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasCsscalBatched_rank_1(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCsscalBatched_rank_1 = hipblasCsscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasZdscalBatched_full_rank(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZdscalBatched_full_rank = hipblasZdscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasZdscalBatched_rank_0(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZdscalBatched_rank_0 = hipblasZdscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasZdscalBatched_rank_1(handle,n,alpha,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZdscalBatched_rank_1 = hipblasZdscalBatched_(handle,n,alpha,c_loc(x),incx,batchCount) end function function hipblasSscalStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasSscalStridedBatched_rank_0 = hipblasSscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasSscalStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSscalStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasSscalStridedBatched_rank_1 = hipblasSscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasDscalStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDscalStridedBatched_rank_0 = hipblasDscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasDscalStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDscalStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDscalStridedBatched_rank_1 = hipblasDscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasCscalStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCscalStridedBatched_rank_0 = hipblasCscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasCscalStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCscalStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCscalStridedBatched_rank_1 = hipblasCscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasZscalStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZscalStridedBatched_rank_0 = hipblasZscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasZscalStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZscalStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZscalStridedBatched_rank_1 = hipblasZscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasCsscalStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCsscalStridedBatched_rank_0 = hipblasCsscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasCsscalStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsscalStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCsscalStridedBatched_rank_1 = hipblasCsscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasZdscalStridedBatched_rank_0(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZdscalStridedBatched_rank_0 = hipblasZdscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasZdscalStridedBatched_rank_1(handle,n,alpha,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdscalStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZdscalStridedBatched_rank_1 = hipblasZdscalStridedBatched_(handle,n,alpha,c_loc(x),incx,stridex,batchCount) end function function hipblasSswap_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswap_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy ! hipblasSswap_rank_0 = hipblasSswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasSswap_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswap_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSswap_rank_1 = hipblasSswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasDswap_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswap_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy ! hipblasDswap_rank_0 = hipblasDswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasDswap_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswap_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDswap_rank_1 = hipblasDswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasCswap_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswap_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasCswap_rank_0 = hipblasCswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasCswap_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswap_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCswap_rank_1 = hipblasCswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasZswap_rank_0(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswap_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZswap_rank_0 = hipblasZswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasZswap_rank_1(handle,n,x,incx,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswap_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZswap_rank_1 = hipblasZswap_(handle,n,c_loc(x),incx,c_loc(y),incy) end function function hipblasSswapBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSswapBatched_full_rank = hipblasSswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasSswapBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSswapBatched_rank_0 = hipblasSswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasSswapBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSswapBatched_rank_1 = hipblasSswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDswapBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDswapBatched_full_rank = hipblasDswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDswapBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDswapBatched_rank_0 = hipblasDswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasDswapBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDswapBatched_rank_1 = hipblasDswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCswapBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCswapBatched_full_rank = hipblasCswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCswapBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCswapBatched_rank_0 = hipblasCswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasCswapBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCswapBatched_rank_1 = hipblasCswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZswapBatched_full_rank(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZswapBatched_full_rank = hipblasZswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZswapBatched_rank_0(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZswapBatched_rank_0 = hipblasZswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasZswapBatched_rank_1(handle,n,x,incx,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZswapBatched_rank_1 = hipblasZswapBatched_(handle,n,c_loc(x),incx,c_loc(y),incy,batchCount) end function function hipblasSswapStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSswapStridedBatched_rank_0 = hipblasSswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasSswapStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSswapStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSswapStridedBatched_rank_1 = hipblasSswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasDswapStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDswapStridedBatched_rank_0 = hipblasDswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasDswapStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDswapStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDswapStridedBatched_rank_1 = hipblasDswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasCswapStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCswapStridedBatched_rank_0 = hipblasCswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasCswapStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCswapStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCswapStridedBatched_rank_1 = hipblasCswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasZswapStridedBatched_rank_0(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZswapStridedBatched_rank_0 = hipblasZswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasZswapStridedBatched_rank_1(handle,n,x,incx,stridex,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZswapStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZswapStridedBatched_rank_1 = hipblasZswapStridedBatched_(handle,n,c_loc(x),incx,stridex,c_loc(y),incy,stridey,batchCount) end function function hipblasSgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSgbmv_full_rank = hipblasSgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! hipblasSgbmv_rank_0 = hipblasSgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSgbmv_rank_1 = hipblasSgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDgbmv_full_rank = hipblasDgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! hipblasDgbmv_rank_0 = hipblasDgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDgbmv_rank_1 = hipblasDgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCgbmv_full_rank = hipblasCgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasCgbmv_rank_0 = hipblasCgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCgbmv_rank_1 = hipblasCgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZgbmv_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZgbmv_full_rank = hipblasZgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZgbmv_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZgbmv_rank_0 = hipblasZgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZgbmv_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZgbmv_rank_1 = hipblasZgbmv_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSgbmvBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSgbmvBatched_full_rank = hipblasSgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSgbmvBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSgbmvBatched_rank_0 = hipblasSgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSgbmvBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSgbmvBatched_rank_1 = hipblasSgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDgbmvBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDgbmvBatched_full_rank = hipblasDgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDgbmvBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDgbmvBatched_rank_0 = hipblasDgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDgbmvBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDgbmvBatched_rank_1 = hipblasDgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCgbmvBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCgbmvBatched_full_rank = hipblasCgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCgbmvBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCgbmvBatched_rank_0 = hipblasCgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCgbmvBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCgbmvBatched_rank_1 = hipblasCgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZgbmvBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZgbmvBatched_full_rank = hipblasZgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZgbmvBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZgbmvBatched_rank_0 = hipblasZgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZgbmvBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZgbmvBatched_rank_1 = hipblasZgbmvBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSgbmvStridedBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSgbmvStridedBatched_full_rank = hipblasSgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSgbmvStridedBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSgbmvStridedBatched_rank_0 = hipblasSgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSgbmvStridedBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSgbmvStridedBatched_rank_1 = hipblasSgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDgbmvStridedBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDgbmvStridedBatched_full_rank = hipblasDgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDgbmvStridedBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDgbmvStridedBatched_rank_0 = hipblasDgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDgbmvStridedBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDgbmvStridedBatched_rank_1 = hipblasDgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCgbmvStridedBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCgbmvStridedBatched_full_rank = hipblasCgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCgbmvStridedBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCgbmvStridedBatched_rank_0 = hipblasCgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCgbmvStridedBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCgbmvStridedBatched_rank_1 = hipblasCgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZgbmvStridedBatched_full_rank(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZgbmvStridedBatched_full_rank = hipblasZgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZgbmvStridedBatched_rank_0(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZgbmvStridedBatched_rank_0 = hipblasZgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZgbmvStridedBatched_rank_1(handle,trans,m,n,kl,ku,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: kl integer(c_int) :: ku complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZgbmvStridedBatched_rank_1 = hipblasZgbmvStridedBatched_(handle,trans,m,n,kl,ku,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSgemv_full_rank = hipblasSgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! hipblasSgemv_rank_0 = hipblasSgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSgemv_rank_1 = hipblasSgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDgemv_full_rank = hipblasDgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! hipblasDgemv_rank_0 = hipblasDgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDgemv_rank_1 = hipblasDgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCgemv_full_rank = hipblasCgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasCgemv_rank_0 = hipblasCgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCgemv_rank_1 = hipblasCgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZgemv_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZgemv_full_rank = hipblasZgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZgemv_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZgemv_rank_0 = hipblasZgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZgemv_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZgemv_rank_1 = hipblasZgemv_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSgemvBatched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSgemvBatched_full_rank = hipblasSgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSgemvBatched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSgemvBatched_rank_0 = hipblasSgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSgemvBatched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSgemvBatched_rank_1 = hipblasSgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDgemvBatched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDgemvBatched_full_rank = hipblasDgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDgemvBatched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDgemvBatched_rank_0 = hipblasDgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDgemvBatched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDgemvBatched_rank_1 = hipblasDgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCgemvBatched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCgemvBatched_full_rank = hipblasCgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCgemvBatched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCgemvBatched_rank_0 = hipblasCgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCgemvBatched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCgemvBatched_rank_1 = hipblasCgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZgemvBatched_full_rank(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZgemvBatched_full_rank = hipblasZgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZgemvBatched_rank_0(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZgemvBatched_rank_0 = hipblasZgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZgemvBatched_rank_1(handle,trans,m,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZgemvBatched_rank_1 = hipblasZgemvBatched_(handle,trans,m,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSgemvStridedBatched_full_rank(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSgemvStridedBatched_full_rank = hipblasSgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSgemvStridedBatched_rank_0(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSgemvStridedBatched_rank_0 = hipblasSgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSgemvStridedBatched_rank_1(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSgemvStridedBatched_rank_1 = hipblasSgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDgemvStridedBatched_full_rank(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDgemvStridedBatched_full_rank = hipblasDgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDgemvStridedBatched_rank_0(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDgemvStridedBatched_rank_0 = hipblasDgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDgemvStridedBatched_rank_1(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDgemvStridedBatched_rank_1 = hipblasDgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCgemvStridedBatched_full_rank(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCgemvStridedBatched_full_rank = hipblasCgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCgemvStridedBatched_rank_0(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCgemvStridedBatched_rank_0 = hipblasCgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCgemvStridedBatched_rank_1(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCgemvStridedBatched_rank_1 = hipblasCgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZgemvStridedBatched_full_rank(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZgemvStridedBatched_full_rank = hipblasZgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZgemvStridedBatched_rank_0(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZgemvStridedBatched_rank_0 = hipblasZgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZgemvStridedBatched_rank_1(handle,trans,m,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZgemvStridedBatched_rank_1 = hipblasZgemvStridedBatched_(handle,trans,m,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSger_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSger_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasSger_full_rank = hipblasSger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasSger_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSger_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda ! hipblasSger_rank_0 = hipblasSger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasSger_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSger_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! hipblasSger_rank_1 = hipblasSger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasDger_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDger_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasDger_full_rank = hipblasDger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasDger_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDger_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda ! hipblasDger_rank_0 = hipblasDger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasDger_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDger_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! hipblasDger_rank_1 = hipblasDger_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCgeru_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeru_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasCgeru_full_rank = hipblasCgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCgeru_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! hipblasCgeru_rank_0 = hipblasCgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCgeru_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasCgeru_rank_1 = hipblasCgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCgerc_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgerc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasCgerc_full_rank = hipblasCgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCgerc_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgerc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! hipblasCgerc_rank_0 = hipblasCgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCgerc_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgerc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasCgerc_rank_1 = hipblasCgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZgeru_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeru_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasZgeru_full_rank = hipblasZgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZgeru_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeru_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! hipblasZgeru_rank_0 = hipblasZgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZgeru_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeru_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasZgeru_rank_1 = hipblasZgeru_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZgerc_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgerc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasZgerc_full_rank = hipblasZgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZgerc_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgerc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! hipblasZgerc_rank_0 = hipblasZgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZgerc_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgerc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasZgerc_rank_1 = hipblasZgerc_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasSgerBatched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSgerBatched_full_rank = hipblasSgerBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasSgerBatched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSgerBatched_rank_0 = hipblasSgerBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasSgerBatched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSgerBatched_rank_1 = hipblasSgerBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasDgerBatched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDgerBatched_full_rank = hipblasDgerBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasDgerBatched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDgerBatched_rank_0 = hipblasDgerBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasDgerBatched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDgerBatched_rank_1 = hipblasDgerBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCgeruBatched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCgeruBatched_full_rank = hipblasCgeruBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCgeruBatched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCgeruBatched_rank_0 = hipblasCgeruBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCgeruBatched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCgeruBatched_rank_1 = hipblasCgeruBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCgercBatched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCgercBatched_full_rank = hipblasCgercBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCgercBatched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCgercBatched_rank_0 = hipblasCgercBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCgercBatched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCgercBatched_rank_1 = hipblasCgercBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZgeruBatched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZgeruBatched_full_rank = hipblasZgeruBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZgeruBatched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZgeruBatched_rank_0 = hipblasZgeruBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZgeruBatched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZgeruBatched_rank_1 = hipblasZgeruBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZgercBatched_full_rank(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZgercBatched_full_rank = hipblasZgercBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZgercBatched_rank_0(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZgercBatched_rank_0 = hipblasZgercBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZgercBatched_rank_1(handle,m,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZgercBatched_rank_1 = hipblasZgercBatched_(handle,m,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasSgerStridedBatched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasSgerStridedBatched_full_rank = hipblasSgerStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasSgerStridedBatched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasSgerStridedBatched_rank_0 = hipblasSgerStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasSgerStridedBatched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgerStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasSgerStridedBatched_rank_1 = hipblasSgerStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasDgerStridedBatched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasDgerStridedBatched_full_rank = hipblasDgerStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasDgerStridedBatched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasDgerStridedBatched_rank_0 = hipblasDgerStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasDgerStridedBatched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgerStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasDgerStridedBatched_rank_1 = hipblasDgerStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCgeruStridedBatched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCgeruStridedBatched_full_rank = hipblasCgeruStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCgeruStridedBatched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCgeruStridedBatched_rank_0 = hipblasCgeruStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCgeruStridedBatched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeruStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCgeruStridedBatched_rank_1 = hipblasCgeruStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCgercStridedBatched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCgercStridedBatched_full_rank = hipblasCgercStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCgercStridedBatched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCgercStridedBatched_rank_0 = hipblasCgercStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCgercStridedBatched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgercStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCgercStridedBatched_rank_1 = hipblasCgercStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZgeruStridedBatched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZgeruStridedBatched_full_rank = hipblasZgeruStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZgeruStridedBatched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZgeruStridedBatched_rank_0 = hipblasZgeruStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZgeruStridedBatched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeruStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZgeruStridedBatched_rank_1 = hipblasZgeruStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZgercStridedBatched_full_rank(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZgercStridedBatched_full_rank = hipblasZgercStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZgercStridedBatched_rank_0(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZgercStridedBatched_rank_0 = hipblasZgercStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZgercStridedBatched_rank_1(handle,m,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgercStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZgercStridedBatched_rank_1 = hipblasZgercStridedBatched_(handle,m,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasChbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasChbmv_full_rank = hipblasChbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasChbmv_rank_0 = hipblasChbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasChbmv_rank_1 = hipblasChbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZhbmv_full_rank = hipblasZhbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZhbmv_rank_0 = hipblasZhbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZhbmv_rank_1 = hipblasZhbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChbmvBatched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChbmvBatched_full_rank = hipblasChbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChbmvBatched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChbmvBatched_rank_0 = hipblasChbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChbmvBatched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChbmvBatched_rank_1 = hipblasChbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhbmvBatched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhbmvBatched_full_rank = hipblasZhbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhbmvBatched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhbmvBatched_rank_0 = hipblasZhbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhbmvBatched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhbmvBatched_rank_1 = hipblasZhbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChbmvStridedBatched_full_rank(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChbmvStridedBatched_full_rank = hipblasChbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChbmvStridedBatched_rank_0(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChbmvStridedBatched_rank_0 = hipblasChbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChbmvStridedBatched_rank_1(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChbmvStridedBatched_rank_1 = hipblasChbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhbmvStridedBatched_full_rank(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhbmvStridedBatched_full_rank = hipblasZhbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhbmvStridedBatched_rank_0(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhbmvStridedBatched_rank_0 = hipblasZhbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhbmvStridedBatched_rank_1(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhbmvStridedBatched_rank_1 = hipblasZhbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChemv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasChemv_full_rank = hipblasChemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChemv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasChemv_rank_0 = hipblasChemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChemv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasChemv_rank_1 = hipblasChemv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhemv_full_rank(handle,uplo,n,alpha,A,da,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: da complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZhemv_full_rank = hipblasZhemv_(handle,uplo,n,alpha,c_loc(A),da,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhemv_rank_0(handle,uplo,n,alpha,A,da,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: da complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZhemv_rank_0 = hipblasZhemv_(handle,uplo,n,alpha,c_loc(A),da,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhemv_rank_1(handle,uplo,n,alpha,A,da,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: da complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZhemv_rank_1 = hipblasZhemv_(handle,uplo,n,alpha,c_loc(A),da,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChemvBatched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChemvBatched_full_rank = hipblasChemvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChemvBatched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChemvBatched_rank_0 = hipblasChemvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChemvBatched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChemvBatched_rank_1 = hipblasChemvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhemvBatched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhemvBatched_full_rank = hipblasZhemvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhemvBatched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhemvBatched_rank_0 = hipblasZhemvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhemvBatched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhemvBatched_rank_1 = hipblasZhemvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChemvStridedBatched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChemvStridedBatched_full_rank = hipblasChemvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChemvStridedBatched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChemvStridedBatched_rank_0 = hipblasChemvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChemvStridedBatched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChemvStridedBatched_rank_1 = hipblasChemvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhemvStridedBatched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhemvStridedBatched_full_rank = hipblasZhemvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhemvStridedBatched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhemvStridedBatched_rank_0 = hipblasZhemvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhemvStridedBatched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhemvStridedBatched_rank_1 = hipblasZhemvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCher_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasCher_full_rank = hipblasCher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasCher_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda ! hipblasCher_rank_0 = hipblasCher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasCher_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasCher_rank_1 = hipblasCher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasZher_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasZher_full_rank = hipblasZher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasZher_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda ! hipblasZher_rank_0 = hipblasZher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasZher_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasZher_rank_1 = hipblasZher_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasCherBatched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCherBatched_full_rank = hipblasCherBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasCherBatched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCherBatched_rank_0 = hipblasCherBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasCherBatched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCherBatched_rank_1 = hipblasCherBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasZherBatched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZherBatched_full_rank = hipblasZherBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasZherBatched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZherBatched_rank_0 = hipblasZherBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasZherBatched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZherBatched_rank_1 = hipblasZherBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasCherStridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCherStridedBatched_full_rank = hipblasCherStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batchCount) end function function hipblasCherStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCherStridedBatched_rank_0 = hipblasCherStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batchCount) end function function hipblasCherStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCherStridedBatched_rank_1 = hipblasCherStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batchCount) end function function hipblasZherStridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZherStridedBatched_full_rank = hipblasZherStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batchCount) end function function hipblasZherStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZherStridedBatched_rank_0 = hipblasZherStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batchCount) end function function hipblasZherStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZherStridedBatched_rank_1 = hipblasZherStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,strideA,batchCount) end function function hipblasCher2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasCher2_full_rank = hipblasCher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCher2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! hipblasCher2_rank_0 = hipblasCher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCher2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasCher2_rank_1 = hipblasCher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZher2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasZher2_full_rank = hipblasZher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZher2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! hipblasZher2_rank_0 = hipblasZher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZher2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasZher2_rank_1 = hipblasZher2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCher2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCher2Batched_full_rank = hipblasCher2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCher2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCher2Batched_rank_0 = hipblasCher2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCher2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCher2Batched_rank_1 = hipblasCher2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZher2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZher2Batched_full_rank = hipblasZher2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZher2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZher2Batched_rank_0 = hipblasZher2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZher2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZher2Batched_rank_1 = hipblasZher2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCher2StridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2StridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCher2StridedBatched_full_rank = hipblasCher2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCher2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCher2StridedBatched_rank_0 = hipblasCher2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCher2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCher2StridedBatched_rank_1 = hipblasCher2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZher2StridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2StridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZher2StridedBatched_full_rank = hipblasZher2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZher2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZher2StridedBatched_rank_0 = hipblasZher2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZher2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZher2StridedBatched_rank_1 = hipblasZher2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasChpmv_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasChpmv_rank_0 = hipblasChpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChpmv_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasChpmv_rank_1 = hipblasChpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhpmv_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZhpmv_rank_0 = hipblasZhpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZhpmv_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZhpmv_rank_1 = hipblasZhpmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasChpmvBatched_full_rank(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChpmvBatched_full_rank = hipblasChpmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChpmvBatched_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChpmvBatched_rank_0 = hipblasChpmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChpmvBatched_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasChpmvBatched_rank_1 = hipblasChpmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhpmvBatched_full_rank(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhpmvBatched_full_rank = hipblasZhpmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhpmvBatched_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhpmvBatched_rank_0 = hipblasZhpmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZhpmvBatched_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZhpmvBatched_rank_1 = hipblasZhpmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasChpmvStridedBatched_rank_0(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChpmvStridedBatched_rank_0 = hipblasChpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChpmvStridedBatched_rank_1(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasChpmvStridedBatched_rank_1 = hipblasChpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhpmvStridedBatched_rank_0(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhpmvStridedBatched_rank_0 = hipblasZhpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZhpmvStridedBatched_rank_1(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZhpmvStridedBatched_rank_1 = hipblasZhpmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasChpr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasChpr_rank_0 = hipblasChpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasChpr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasChpr_rank_1 = hipblasChpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasZhpr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasZhpr_rank_0 = hipblasZhpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasZhpr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasZhpr_rank_1 = hipblasZhpr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasChprBatched_full_rank(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasChprBatched_full_rank = hipblasChprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasChprBatched_rank_0(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasChprBatched_rank_0 = hipblasChprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasChprBatched_rank_1(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasChprBatched_rank_1 = hipblasChprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasZhprBatched_full_rank(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZhprBatched_full_rank = hipblasZhprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasZhprBatched_rank_0(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZhprBatched_rank_0 = hipblasZhprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasZhprBatched_rank_1(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZhprBatched_rank_1 = hipblasZhprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasChprStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasChprStridedBatched_rank_0 = hipblasChprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasChprStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChprStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasChprStridedBatched_rank_1 = hipblasChprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasZhprStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasZhprStridedBatched_rank_0 = hipblasZhprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasZhprStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhprStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasZhprStridedBatched_rank_1 = hipblasZhprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasChpr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasChpr2_rank_0 = hipblasChpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasChpr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasChpr2_rank_1 = hipblasChpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasZhpr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasZhpr2_rank_0 = hipblasZhpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasZhpr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasZhpr2_rank_1 = hipblasZhpr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasChpr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasChpr2Batched_full_rank = hipblasChpr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasChpr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasChpr2Batched_rank_0 = hipblasChpr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasChpr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasChpr2Batched_rank_1 = hipblasChpr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasZhpr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZhpr2Batched_full_rank = hipblasZhpr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasZhpr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZhpr2Batched_rank_0 = hipblasZhpr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasZhpr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZhpr2Batched_rank_1 = hipblasZhpr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasChpr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasChpr2StridedBatched_rank_0 = hipblasChpr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasChpr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChpr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasChpr2StridedBatched_rank_1 = hipblasChpr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasZhpr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasZhpr2StridedBatched_rank_0 = hipblasZhpr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasZhpr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhpr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasZhpr2StridedBatched_rank_1 = hipblasZhpr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasSsbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSsbmv_full_rank = hipblasSsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSsbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! hipblasSsbmv_rank_0 = hipblasSsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSsbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSsbmv_rank_1 = hipblasSsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDsbmv_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDsbmv_full_rank = hipblasDsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDsbmv_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! hipblasDsbmv_rank_0 = hipblasDsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDsbmv_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDsbmv_rank_1 = hipblasDsbmv_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSsbmvBatched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSsbmvBatched_full_rank = hipblasSsbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSsbmvBatched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSsbmvBatched_rank_0 = hipblasSsbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSsbmvBatched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSsbmvBatched_rank_1 = hipblasSsbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDsbmvBatched_full_rank(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDsbmvBatched_full_rank = hipblasDsbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDsbmvBatched_rank_0(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDsbmvBatched_rank_0 = hipblasDsbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDsbmvBatched_rank_1(handle,uplo,n,k,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDsbmvBatched_rank_1 = hipblasDsbmvBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSsbmvStridedBatched_full_rank(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsbmvStridedBatched_full_rank = hipblasSsbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSsbmvStridedBatched_rank_0(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsbmvStridedBatched_rank_0 = hipblasSsbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSsbmvStridedBatched_rank_1(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsbmvStridedBatched_rank_1 = hipblasSsbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDsbmvStridedBatched_full_rank(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsbmvStridedBatched_full_rank = hipblasDsbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDsbmvStridedBatched_rank_0(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsbmvStridedBatched_rank_0 = hipblasDsbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDsbmvStridedBatched_rank_1(handle,uplo,n,k,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsbmvStridedBatched_rank_1 = hipblasDsbmvStridedBatched_(handle,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSspmv_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! hipblasSspmv_rank_0 = hipblasSspmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSspmv_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSspmv_rank_1 = hipblasSspmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDspmv_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! hipblasDspmv_rank_0 = hipblasDspmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDspmv_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDspmv_rank_1 = hipblasDspmv_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSspmvBatched_full_rank(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSspmvBatched_full_rank = hipblasSspmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSspmvBatched_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSspmvBatched_rank_0 = hipblasSspmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSspmvBatched_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSspmvBatched_rank_1 = hipblasSspmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDspmvBatched_full_rank(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDspmvBatched_full_rank = hipblasDspmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDspmvBatched_rank_0(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDspmvBatched_rank_0 = hipblasDspmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDspmvBatched_rank_1(handle,uplo,n,alpha,AP,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDspmvBatched_rank_1 = hipblasDspmvBatched_(handle,uplo,n,alpha,AP,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSspmvStridedBatched_rank_0(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSspmvStridedBatched_rank_0 = hipblasSspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSspmvStridedBatched_rank_1(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSspmvStridedBatched_rank_1 = hipblasSspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDspmvStridedBatched_rank_0(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDspmvStridedBatched_rank_0 = hipblasDspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDspmvStridedBatched_rank_1(handle,uplo,n,alpha,AP,strideAP,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDspmvStridedBatched_rank_1 = hipblasDspmvStridedBatched_(handle,uplo,n,alpha,AP,strideAP,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasSspr_rank_0 = hipblasSspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasSspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasSspr_rank_1 = hipblasSspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasDspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasDspr_rank_0 = hipblasDspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasDspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasDspr_rank_1 = hipblasDspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasCspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCspr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasCspr_rank_0 = hipblasCspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasCspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCspr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasCspr_rank_1 = hipblasCspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasZspr_rank_0(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZspr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasZspr_rank_0 = hipblasZspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasZspr_rank_1(handle,uplo,n,alpha,x,incx,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZspr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP ! hipblasZspr_rank_1 = hipblasZspr_(handle,uplo,n,alpha,c_loc(x),incx,AP) end function function hipblasSsprBatched_full_rank(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasSsprBatched_full_rank = hipblasSsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasSsprBatched_rank_0(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasSsprBatched_rank_0 = hipblasSsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasSsprBatched_rank_1(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasSsprBatched_rank_1 = hipblasSsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasDsprBatched_full_rank(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasDsprBatched_full_rank = hipblasDsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasDsprBatched_rank_0(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasDsprBatched_rank_0 = hipblasDsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasDsprBatched_rank_1(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasDsprBatched_rank_1 = hipblasDsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasCsprBatched_full_rank(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasCsprBatched_full_rank = hipblasCsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasCsprBatched_rank_0(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasCsprBatched_rank_0 = hipblasCsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasCsprBatched_rank_1(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasCsprBatched_rank_1 = hipblasCsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasZsprBatched_full_rank(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZsprBatched_full_rank = hipblasZsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasZsprBatched_rank_0(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZsprBatched_rank_0 = hipblasZsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasZsprBatched_rank_1(handle,uplo,n,alpha,x,incx,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasZsprBatched_rank_1 = hipblasZsprBatched_(handle,uplo,n,alpha,c_loc(x),incx,AP,batchCount) end function function hipblasSsprStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasSsprStridedBatched_rank_0 = hipblasSsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasSsprStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsprStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasSsprStridedBatched_rank_1 = hipblasSsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasDsprStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasDsprStridedBatched_rank_0 = hipblasDsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasDsprStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsprStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasDsprStridedBatched_rank_1 = hipblasDsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasCsprStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasCsprStridedBatched_rank_0 = hipblasCsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasCsprStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsprStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasCsprStridedBatched_rank_1 = hipblasCsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasZsprStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasZsprStridedBatched_rank_0 = hipblasZsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasZsprStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsprStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasZsprStridedBatched_rank_1 = hipblasZsprStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,AP,strideAP,batchCount) end function function hipblasSspr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasSspr2_rank_0 = hipblasSspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasSspr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasSspr2_rank_1 = hipblasSspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasDspr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasDspr2_rank_0 = hipblasDspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasDspr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP ! hipblasDspr2_rank_1 = hipblasDspr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP) end function function hipblasSspr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasSspr2Batched_full_rank = hipblasSspr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasSspr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasSspr2Batched_rank_0 = hipblasSspr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasSspr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasSspr2Batched_rank_1 = hipblasSspr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasDspr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasDspr2Batched_full_rank = hipblasDspr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasDspr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasDspr2Batched_rank_0 = hipblasDspr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasDspr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,AP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy type(c_ptr) :: AP integer(c_int) :: batchCount ! hipblasDspr2Batched_rank_1 = hipblasDspr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,AP,batchCount) end function function hipblasSspr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasSspr2StridedBatched_rank_0 = hipblasSspr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasSspr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSspr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasSspr2StridedBatched_rank_1 = hipblasSspr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasDspr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasDspr2StridedBatched_rank_0 = hipblasDspr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasDspr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,AP,strideAP,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDspr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey type(c_ptr) :: AP integer(c_int64_t) :: strideAP integer(c_int) :: batchCount ! hipblasDspr2StridedBatched_rank_1 = hipblasDspr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,AP,strideAP,batchCount) end function function hipblasSsymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSsymv_full_rank = hipblasSsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSsymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy ! hipblasSsymv_rank_0 = hipblasSsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSsymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy ! hipblasSsymv_rank_1 = hipblasSsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDsymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDsymv_full_rank = hipblasDsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDsymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy ! hipblasDsymv_rank_0 = hipblasDsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasDsymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy ! hipblasDsymv_rank_1 = hipblasDsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCsymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCsymv_full_rank = hipblasCsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCsymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy ! hipblasCsymv_rank_0 = hipblasCsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasCsymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasCsymv_rank_1 = hipblasCsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZsymv_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZsymv_full_rank = hipblasZsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZsymv_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy ! hipblasZsymv_rank_0 = hipblasZsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasZsymv_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy ! hipblasZsymv_rank_1 = hipblasZsymv_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy) end function function hipblasSsymvBatched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSsymvBatched_full_rank = hipblasSsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSsymvBatched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSsymvBatched_rank_0 = hipblasSsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSsymvBatched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasSsymvBatched_rank_1 = hipblasSsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDsymvBatched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDsymvBatched_full_rank = hipblasDsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDsymvBatched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDsymvBatched_rank_0 = hipblasDsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasDsymvBatched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasDsymvBatched_rank_1 = hipblasDsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCsymvBatched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCsymvBatched_full_rank = hipblasCsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCsymvBatched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCsymvBatched_rank_0 = hipblasCsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasCsymvBatched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasCsymvBatched_rank_1 = hipblasCsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZsymvBatched_full_rank(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZsymvBatched_full_rank = hipblasZsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZsymvBatched_rank_0(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZsymvBatched_rank_0 = hipblasZsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasZsymvBatched_rank_1(handle,uplo,n,alpha,A,lda,x,incx,beta,y,incy,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int) :: batchCount ! hipblasZsymvBatched_rank_1 = hipblasZsymvBatched_(handle,uplo,n,alpha,c_loc(A),lda,c_loc(x),incx,beta,c_loc(y),incy,batchCount) end function function hipblasSsymvStridedBatched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsymvStridedBatched_full_rank = hipblasSsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSsymvStridedBatched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsymvStridedBatched_rank_0 = hipblasSsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSsymvStridedBatched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsymvStridedBatched_rank_1 = hipblasSsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDsymvStridedBatched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsymvStridedBatched_full_rank = hipblasDsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDsymvStridedBatched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsymvStridedBatched_rank_0 = hipblasDsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasDsymvStridedBatched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsymvStridedBatched_rank_1 = hipblasDsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCsymvStridedBatched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCsymvStridedBatched_full_rank = hipblasCsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCsymvStridedBatched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCsymvStridedBatched_rank_0 = hipblasCsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasCsymvStridedBatched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCsymvStridedBatched_rank_1 = hipblasCsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZsymvStridedBatched_full_rank(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZsymvStridedBatched_full_rank = hipblasZsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZsymvStridedBatched_rank_0(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZsymvStridedBatched_rank_0 = hipblasZsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasZsymvStridedBatched_rank_1(handle,uplo,n,alpha,A,lda,strideA,x,incx,stridex,beta,y,incy,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZsymvStridedBatched_rank_1 = hipblasZsymvStridedBatched_(handle,uplo,n,alpha,c_loc(A),lda,strideA,c_loc(x),incx,stridex,beta,c_loc(y),incy,stridey,batchCount) end function function hipblasSsyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasSsyr_full_rank = hipblasSsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasSsyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: A integer(c_int) :: lda ! hipblasSsyr_rank_0 = hipblasSsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasSsyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! hipblasSsyr_rank_1 = hipblasSsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasDsyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasDsyr_full_rank = hipblasDsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasDsyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: A integer(c_int) :: lda ! hipblasDsyr_rank_0 = hipblasDsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasDsyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! hipblasDsyr_rank_1 = hipblasDsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasCsyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasCsyr_full_rank = hipblasCsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasCsyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda ! hipblasCsyr_rank_0 = hipblasCsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasCsyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasCsyr_rank_1 = hipblasCsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasZsyr_full_rank(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasZsyr_full_rank = hipblasZsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasZsyr_rank_0(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda ! hipblasZsyr_rank_0 = hipblasZsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasZsyr_rank_1(handle,uplo,n,alpha,x,incx,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasZsyr_rank_1 = hipblasZsyr_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda) end function function hipblasSsyrBatched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSsyrBatched_full_rank = hipblasSsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasSsyrBatched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSsyrBatched_rank_0 = hipblasSsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasSsyrBatched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSsyrBatched_rank_1 = hipblasSsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasDsyrBatched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDsyrBatched_full_rank = hipblasDsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasDsyrBatched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDsyrBatched_rank_0 = hipblasDsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasDsyrBatched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDsyrBatched_rank_1 = hipblasDsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasCsyrBatched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCsyrBatched_full_rank = hipblasCsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasCsyrBatched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCsyrBatched_rank_0 = hipblasCsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasCsyrBatched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCsyrBatched_rank_1 = hipblasCsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasZsyrBatched_full_rank(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZsyrBatched_full_rank = hipblasZsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasZsyrBatched_rank_0(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZsyrBatched_rank_0 = hipblasZsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasZsyrBatched_rank_1(handle,uplo,n,alpha,x,incx,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZsyrBatched_rank_1 = hipblasZsyrBatched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(A),lda,batchCount) end function function hipblasSsyrStridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsyrStridedBatched_full_rank = hipblasSsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasSsyrStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsyrStridedBatched_rank_0 = hipblasSsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasSsyrStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasSsyrStridedBatched_rank_1 = hipblasSsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasDsyrStridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsyrStridedBatched_full_rank = hipblasDsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasDsyrStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsyrStridedBatched_rank_0 = hipblasDsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasDsyrStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasDsyrStridedBatched_rank_1 = hipblasDsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasCsyrStridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCsyrStridedBatched_full_rank = hipblasCsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasCsyrStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCsyrStridedBatched_rank_0 = hipblasCsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasCsyrStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasCsyrStridedBatched_rank_1 = hipblasCsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasZsyrStridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZsyrStridedBatched_full_rank = hipblasZsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasZsyrStridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZsyrStridedBatched_rank_0 = hipblasZsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasZsyrStridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,A,lda,stridey,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stridey integer(c_int) :: batchCount ! hipblasZsyrStridedBatched_rank_1 = hipblasZsyrStridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(A),lda,stridey,batchCount) end function function hipblasSsyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasSsyr2_full_rank = hipblasSsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasSsyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda ! hipblasSsyr2_rank_0 = hipblasSsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasSsyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! hipblasSsyr2_rank_1 = hipblasSsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasDsyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasDsyr2_full_rank = hipblasDsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasDsyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda ! hipblasDsyr2_rank_0 = hipblasDsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasDsyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! hipblasDsyr2_rank_1 = hipblasDsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCsyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasCsyr2_full_rank = hipblasCsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCsyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda ! hipblasCsyr2_rank_0 = hipblasCsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasCsyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasCsyr2_rank_1 = hipblasCsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZsyr2_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! hipblasZsyr2_full_rank = hipblasZsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZsyr2_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda ! hipblasZsyr2_rank_0 = hipblasZsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasZsyr2_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! hipblasZsyr2_rank_1 = hipblasZsyr2_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda) end function function hipblasSsyr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: y integer(c_int) :: incy real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSsyr2Batched_full_rank = hipblasSsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasSsyr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: y integer(c_int) :: incy real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSsyr2Batched_rank_0 = hipblasSsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasSsyr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: y integer(c_int) :: incy real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasSsyr2Batched_rank_1 = hipblasSsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasDsyr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: y integer(c_int) :: incy real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDsyr2Batched_full_rank = hipblasDsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasDsyr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: y integer(c_int) :: incy real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDsyr2Batched_rank_0 = hipblasDsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasDsyr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: y integer(c_int) :: incy real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasDsyr2Batched_rank_1 = hipblasDsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCsyr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCsyr2Batched_full_rank = hipblasCsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCsyr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: y integer(c_int) :: incy complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCsyr2Batched_rank_0 = hipblasCsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasCsyr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasCsyr2Batched_rank_1 = hipblasCsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZsyr2Batched_full_rank(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2Batched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZsyr2Batched_full_rank = hipblasZsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZsyr2Batched_rank_0(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2Batched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: y integer(c_int) :: incy complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZsyr2Batched_rank_0 = hipblasZsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasZsyr2Batched_rank_1(handle,uplo,n,alpha,x,incx,y,incy,A,lda,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2Batched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: batchCount ! hipblasZsyr2Batched_rank_1 = hipblasZsyr2Batched_(handle,uplo,n,alpha,c_loc(x),incx,c_loc(y),incy,c_loc(A),lda,batchCount) end function function hipblasSsyr2StridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2StridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasSsyr2StridedBatched_full_rank = hipblasSsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasSsyr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasSsyr2StridedBatched_rank_0 = hipblasSsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasSsyr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasSsyr2StridedBatched_rank_1 = hipblasSsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasDsyr2StridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2StridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasDsyr2StridedBatched_full_rank = hipblasDsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasDsyr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasDsyr2StridedBatched_rank_0 = hipblasDsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasDsyr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasDsyr2StridedBatched_rank_1 = hipblasDsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCsyr2StridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2StridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCsyr2StridedBatched_full_rank = hipblasCsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCsyr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCsyr2StridedBatched_rank_0 = hipblasCsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasCsyr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_float_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasCsyr2StridedBatched_rank_1 = hipblasCsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZsyr2StridedBatched_full_rank(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2StridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZsyr2StridedBatched_full_rank = hipblasZsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZsyr2StridedBatched_rank_0(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2StridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZsyr2StridedBatched_rank_0 = hipblasZsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasZsyr2StridedBatched_rank_1(handle,uplo,n,alpha,x,incx,stridex,y,incy,stridey,A,lda,strideA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2StridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: y integer(c_int) :: incy integer(c_int64_t) :: stridey complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: batchCount ! hipblasZsyr2StridedBatched_rank_1 = hipblasZsyr2StridedBatched_(handle,uplo,n,alpha,c_loc(x),incx,stridex,c_loc(y),incy,stridey,c_loc(A),lda,strideA,batchCount) end function function hipblasStbmv_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStbmv_full_rank = hipblasStbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasStbmv_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! hipblasStbmv_rank_0 = hipblasStbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasStbmv_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStbmv_rank_1 = hipblasStbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtbmv_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtbmv_full_rank = hipblasDtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtbmv_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! hipblasDtbmv_rank_0 = hipblasDtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtbmv_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtbmv_rank_1 = hipblasDtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtbmv_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtbmv_full_rank = hipblasCtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtbmv_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCtbmv_rank_0 = hipblasCtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtbmv_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtbmv_rank_1 = hipblasCtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtbmv_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtbmv_full_rank = hipblasZtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtbmv_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZtbmv_rank_0 = hipblasZtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtbmv_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtbmv_rank_1 = hipblasZtbmv_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasStbmvBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStbmvBatched_full_rank = hipblasStbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStbmvBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStbmvBatched_rank_0 = hipblasStbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStbmvBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStbmvBatched_rank_1 = hipblasStbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtbmvBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtbmvBatched_full_rank = hipblasDtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtbmvBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtbmvBatched_rank_0 = hipblasDtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtbmvBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtbmvBatched_rank_1 = hipblasDtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtbmvBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtbmvBatched_full_rank = hipblasCtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtbmvBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtbmvBatched_rank_0 = hipblasCtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtbmvBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtbmvBatched_rank_1 = hipblasCtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtbmvBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtbmvBatched_full_rank = hipblasZtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtbmvBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtbmvBatched_rank_0 = hipblasZtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtbmvBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtbmvBatched_rank_1 = hipblasZtbmvBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStbmvStridedBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStbmvStridedBatched_full_rank = hipblasStbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStbmvStridedBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStbmvStridedBatched_rank_0 = hipblasStbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStbmvStridedBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStbmvStridedBatched_rank_1 = hipblasStbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtbmvStridedBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtbmvStridedBatched_full_rank = hipblasDtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtbmvStridedBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtbmvStridedBatched_rank_0 = hipblasDtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtbmvStridedBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtbmvStridedBatched_rank_1 = hipblasDtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtbmvStridedBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtbmvStridedBatched_full_rank = hipblasCtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtbmvStridedBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtbmvStridedBatched_rank_0 = hipblasCtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtbmvStridedBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtbmvStridedBatched_rank_1 = hipblasCtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtbmvStridedBatched_full_rank(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtbmvStridedBatched_full_rank = hipblasZtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtbmvStridedBatched_rank_0(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtbmvStridedBatched_rank_0 = hipblasZtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtbmvStridedBatched_rank_1(handle,uplo,transA,diag,m,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtbmvStridedBatched_rank_1 = hipblasZtbmvStridedBatched_(handle,uplo,transA,diag,m,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStbsv_full_rank = hipblasStbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasStbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! hipblasStbsv_rank_0 = hipblasStbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasStbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStbsv_rank_1 = hipblasStbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtbsv_full_rank = hipblasDtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! hipblasDtbsv_rank_0 = hipblasDtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtbsv_rank_1 = hipblasDtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtbsv_full_rank = hipblasCtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCtbsv_rank_0 = hipblasCtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtbsv_rank_1 = hipblasCtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtbsv_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtbsv_full_rank = hipblasZtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtbsv_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZtbsv_rank_0 = hipblasZtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtbsv_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtbsv_rank_1 = hipblasZtbsv_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx) end function function hipblasStbsvBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStbsvBatched_full_rank = hipblasStbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStbsvBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStbsvBatched_rank_0 = hipblasStbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStbsvBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStbsvBatched_rank_1 = hipblasStbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtbsvBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtbsvBatched_full_rank = hipblasDtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtbsvBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtbsvBatched_rank_0 = hipblasDtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtbsvBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtbsvBatched_rank_1 = hipblasDtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtbsvBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtbsvBatched_full_rank = hipblasCtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtbsvBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtbsvBatched_rank_0 = hipblasCtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtbsvBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtbsvBatched_rank_1 = hipblasCtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtbsvBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtbsvBatched_full_rank = hipblasZtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtbsvBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtbsvBatched_rank_0 = hipblasZtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtbsvBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtbsvBatched_rank_1 = hipblasZtbsvBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStbsvStridedBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStbsvStridedBatched_full_rank = hipblasStbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStbsvStridedBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStbsvStridedBatched_rank_0 = hipblasStbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStbsvStridedBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStbsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStbsvStridedBatched_rank_1 = hipblasStbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtbsvStridedBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtbsvStridedBatched_full_rank = hipblasDtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtbsvStridedBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtbsvStridedBatched_rank_0 = hipblasDtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtbsvStridedBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtbsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtbsvStridedBatched_rank_1 = hipblasDtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtbsvStridedBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtbsvStridedBatched_full_rank = hipblasCtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtbsvStridedBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtbsvStridedBatched_rank_0 = hipblasCtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtbsvStridedBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtbsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtbsvStridedBatched_rank_1 = hipblasCtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtbsvStridedBatched_full_rank(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtbsvStridedBatched_full_rank = hipblasZtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtbsvStridedBatched_rank_0(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtbsvStridedBatched_rank_0 = hipblasZtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtbsvStridedBatched_rank_1(handle,uplo,transA,diag,n,k,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtbsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtbsvStridedBatched_rank_1 = hipblasZtbsvStridedBatched_(handle,uplo,transA,diag,n,k,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStpmv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx ! hipblasStpmv_rank_0 = hipblasStpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasStpmv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStpmv_rank_1 = hipblasStpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasDtpmv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx ! hipblasDtpmv_rank_0 = hipblasDtpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasDtpmv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtpmv_rank_1 = hipblasDtpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasCtpmv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCtpmv_rank_0 = hipblasCtpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasCtpmv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtpmv_rank_1 = hipblasCtpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasZtpmv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZtpmv_rank_0 = hipblasZtpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasZtpmv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtpmv_rank_1 = hipblasZtpmv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasStpmvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStpmvBatched_full_rank = hipblasStpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasStpmvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStpmvBatched_rank_0 = hipblasStpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasStpmvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStpmvBatched_rank_1 = hipblasStpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasDtpmvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtpmvBatched_full_rank = hipblasDtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasDtpmvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtpmvBatched_rank_0 = hipblasDtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasDtpmvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtpmvBatched_rank_1 = hipblasDtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasCtpmvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtpmvBatched_full_rank = hipblasCtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasCtpmvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtpmvBatched_rank_0 = hipblasCtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasCtpmvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtpmvBatched_rank_1 = hipblasCtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasZtpmvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtpmvBatched_full_rank = hipblasZtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasZtpmvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtpmvBatched_rank_0 = hipblasZtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasZtpmvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtpmvBatched_rank_1 = hipblasZtpmvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasStpmvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasStpmvStridedBatched_rank_0 = hipblasStpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasStpmvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasStpmvStridedBatched_rank_1 = hipblasStpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasDtpmvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasDtpmvStridedBatched_rank_0 = hipblasDtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasDtpmvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasDtpmvStridedBatched_rank_1 = hipblasDtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasCtpmvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasCtpmvStridedBatched_rank_0 = hipblasCtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasCtpmvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasCtpmvStridedBatched_rank_1 = hipblasCtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasZtpmvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasZtpmvStridedBatched_rank_0 = hipblasZtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasZtpmvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stride,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride integer(c_int) :: batchCount ! hipblasZtpmvStridedBatched_rank_1 = hipblasZtpmvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stride,batchCount) end function function hipblasStpsv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx ! hipblasStpsv_rank_0 = hipblasStpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasStpsv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStpsv_rank_1 = hipblasStpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasDtpsv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx ! hipblasDtpsv_rank_0 = hipblasDtpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasDtpsv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtpsv_rank_1 = hipblasDtpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasCtpsv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCtpsv_rank_0 = hipblasCtpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasCtpsv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtpsv_rank_1 = hipblasCtpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasZtpsv_rank_0(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZtpsv_rank_0 = hipblasZtpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasZtpsv_rank_1(handle,uplo,transA,diag,m,AP,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtpsv_rank_1 = hipblasZtpsv_(handle,uplo,transA,diag,m,AP,c_loc(x),incx) end function function hipblasStpsvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStpsvBatched_full_rank = hipblasStpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasStpsvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStpsvBatched_rank_0 = hipblasStpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasStpsvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStpsvBatched_rank_1 = hipblasStpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasDtpsvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtpsvBatched_full_rank = hipblasDtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasDtpsvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtpsvBatched_rank_0 = hipblasDtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasDtpsvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtpsvBatched_rank_1 = hipblasDtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasCtpsvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtpsvBatched_full_rank = hipblasCtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasCtpsvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtpsvBatched_rank_0 = hipblasCtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasCtpsvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtpsvBatched_rank_1 = hipblasCtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasZtpsvBatched_full_rank(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtpsvBatched_full_rank = hipblasZtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasZtpsvBatched_rank_0(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtpsvBatched_rank_0 = hipblasZtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasZtpsvBatched_rank_1(handle,uplo,transA,diag,m,AP,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtpsvBatched_rank_1 = hipblasZtpsvBatched_(handle,uplo,transA,diag,m,AP,c_loc(x),incx,batchCount) end function function hipblasStpsvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStpsvStridedBatched_rank_0 = hipblasStpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasStpsvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStpsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStpsvStridedBatched_rank_1 = hipblasStpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasDtpsvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtpsvStridedBatched_rank_0 = hipblasDtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasDtpsvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtpsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtpsvStridedBatched_rank_1 = hipblasDtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasCtpsvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtpsvStridedBatched_rank_0 = hipblasCtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasCtpsvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtpsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtpsvStridedBatched_rank_1 = hipblasCtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasZtpsvStridedBatched_rank_0(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtpsvStridedBatched_rank_0 = hipblasZtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasZtpsvStridedBatched_rank_1(handle,uplo,transA,diag,m,AP,strideAP,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtpsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m type(c_ptr) :: AP integer(c_int64_t) :: strideAP complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtpsvStridedBatched_rank_1 = hipblasZtpsvStridedBatched_(handle,uplo,transA,diag,m,AP,strideAP,c_loc(x),incx,stridex,batchCount) end function function hipblasStrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStrmv_full_rank = hipblasStrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasStrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! hipblasStrmv_rank_0 = hipblasStrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasStrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStrmv_rank_1 = hipblasStrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtrmv_full_rank = hipblasDtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! hipblasDtrmv_rank_0 = hipblasDtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtrmv_rank_1 = hipblasDtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtrmv_full_rank = hipblasCtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCtrmv_rank_0 = hipblasCtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtrmv_rank_1 = hipblasCtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtrmv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtrmv_full_rank = hipblasZtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtrmv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZtrmv_rank_0 = hipblasZtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtrmv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtrmv_rank_1 = hipblasZtrmv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasStrmvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStrmvBatched_full_rank = hipblasStrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStrmvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStrmvBatched_rank_0 = hipblasStrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStrmvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStrmvBatched_rank_1 = hipblasStrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtrmvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtrmvBatched_full_rank = hipblasDtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtrmvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtrmvBatched_rank_0 = hipblasDtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtrmvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtrmvBatched_rank_1 = hipblasDtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtrmvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtrmvBatched_full_rank = hipblasCtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtrmvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtrmvBatched_rank_0 = hipblasCtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtrmvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtrmvBatched_rank_1 = hipblasCtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtrmvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtrmvBatched_full_rank = hipblasZtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtrmvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtrmvBatched_rank_0 = hipblasZtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtrmvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtrmvBatched_rank_1 = hipblasZtrmvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStrmvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStrmvStridedBatched_full_rank = hipblasStrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStrmvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStrmvStridedBatched_rank_0 = hipblasStrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStrmvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStrmvStridedBatched_rank_1 = hipblasStrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtrmvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtrmvStridedBatched_full_rank = hipblasDtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtrmvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtrmvStridedBatched_rank_0 = hipblasDtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtrmvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtrmvStridedBatched_rank_1 = hipblasDtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtrmvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtrmvStridedBatched_full_rank = hipblasCtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtrmvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtrmvStridedBatched_rank_0 = hipblasCtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtrmvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtrmvStridedBatched_rank_1 = hipblasCtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtrmvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtrmvStridedBatched_full_rank = hipblasZtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtrmvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtrmvStridedBatched_rank_0 = hipblasZtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtrmvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtrmvStridedBatched_rank_1 = hipblasZtrmvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStrsv_full_rank = hipblasStrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasStrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx ! hipblasStrsv_rank_0 = hipblasStrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasStrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx ! hipblasStrsv_rank_1 = hipblasStrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtrsv_full_rank = hipblasDtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx ! hipblasDtrsv_rank_0 = hipblasDtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasDtrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx ! hipblasDtrsv_rank_1 = hipblasDtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtrsv_full_rank = hipblasCtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx ! hipblasCtrsv_rank_0 = hipblasCtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasCtrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasCtrsv_rank_1 = hipblasCtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtrsv_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsv_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtrsv_full_rank = hipblasZtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtrsv_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsv_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx ! hipblasZtrsv_rank_0 = hipblasZtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasZtrsv_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsv_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! hipblasZtrsv_rank_1 = hipblasZtrsv_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx) end function function hipblasStrsvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStrsvBatched_full_rank = hipblasStrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStrsvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStrsvBatched_rank_0 = hipblasStrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStrsvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasStrsvBatched_rank_1 = hipblasStrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtrsvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtrsvBatched_full_rank = hipblasDtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtrsvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtrsvBatched_rank_0 = hipblasDtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasDtrsvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasDtrsvBatched_rank_1 = hipblasDtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtrsvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtrsvBatched_full_rank = hipblasCtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtrsvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtrsvBatched_rank_0 = hipblasCtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasCtrsvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasCtrsvBatched_rank_1 = hipblasCtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtrsvBatched_full_rank(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtrsvBatched_full_rank = hipblasZtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtrsvBatched_rank_0(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtrsvBatched_rank_0 = hipblasZtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasZtrsvBatched_rank_1(handle,uplo,transA,diag,m,A,lda,x,incx,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int) :: batchCount ! hipblasZtrsvBatched_rank_1 = hipblasZtrsvBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,c_loc(x),incx,batchCount) end function function hipblasStrsvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStrsvStridedBatched_full_rank = hipblasStrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStrsvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStrsvStridedBatched_rank_0 = hipblasStrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasStrsvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasStrsvStridedBatched_rank_1 = hipblasStrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtrsvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtrsvStridedBatched_full_rank = hipblasDtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtrsvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtrsvStridedBatched_rank_0 = hipblasDtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasDtrsvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasDtrsvStridedBatched_rank_1 = hipblasDtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtrsvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtrsvStridedBatched_full_rank = hipblasCtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtrsvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtrsvStridedBatched_rank_0 = hipblasCtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasCtrsvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasCtrsvStridedBatched_rank_1 = hipblasCtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtrsvStridedBatched_full_rank(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtrsvStridedBatched_full_rank = hipblasZtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtrsvStridedBatched_rank_0(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtrsvStridedBatched_rank_0 = hipblasZtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasZtrsvStridedBatched_rank_1(handle,uplo,transA,diag,m,A,lda,strideA,x,incx,stridex,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsvStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex integer(c_int) :: batchCount ! hipblasZtrsvStridedBatched_rank_1 = hipblasZtrsvStridedBatched_(handle,uplo,transA,diag,m,c_loc(A),lda,strideA,c_loc(x),incx,stridex,batchCount) end function function hipblasSgemm_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSgemm_full_rank = hipblasSgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSgemm_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipblasSgemm_rank_0 = hipblasSgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSgemm_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSgemm_rank_1 = hipblasSgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDgemm_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDgemm_full_rank = hipblasDgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDgemm_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipblasDgemm_rank_0 = hipblasDgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDgemm_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDgemm_rank_1 = hipblasDgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCgemm_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCgemm_full_rank = hipblasCgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCgemm_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCgemm_rank_0 = hipblasCgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCgemm_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCgemm_rank_1 = hipblasCgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZgemm_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZgemm_full_rank = hipblasZgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZgemm_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZgemm_rank_0 = hipblasZgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZgemm_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZgemm_rank_1 = hipblasZgemm_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSgemmBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSgemmBatched_full_rank = hipblasSgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSgemmBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSgemmBatched_rank_0 = hipblasSgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSgemmBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSgemmBatched_rank_1 = hipblasSgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDgemmBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDgemmBatched_full_rank = hipblasDgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDgemmBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDgemmBatched_rank_0 = hipblasDgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDgemmBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDgemmBatched_rank_1 = hipblasDgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCgemmBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCgemmBatched_full_rank = hipblasCgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCgemmBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCgemmBatched_rank_0 = hipblasCgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCgemmBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCgemmBatched_rank_1 = hipblasCgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZgemmBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZgemmBatched_full_rank = hipblasZgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZgemmBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZgemmBatched_rank_0 = hipblasZgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZgemmBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZgemmBatched_rank_1 = hipblasZgemmBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSgemmStridedBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasSgemmStridedBatched_full_rank = hipblasSgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSgemmStridedBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_long_long) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_long_long) :: strideB real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasSgemmStridedBatched_rank_0 = hipblasSgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSgemmStridedBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgemmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasSgemmStridedBatched_rank_1 = hipblasSgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDgemmStridedBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasDgemmStridedBatched_full_rank = hipblasDgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDgemmStridedBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_long_long) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_long_long) :: strideB real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasDgemmStridedBatched_rank_0 = hipblasDgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDgemmStridedBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgemmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasDgemmStridedBatched_rank_1 = hipblasDgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCgemmStridedBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasCgemmStridedBatched_full_rank = hipblasCgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCgemmStridedBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_long_long) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_long_long) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasCgemmStridedBatched_rank_0 = hipblasCgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCgemmStridedBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgemmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasCgemmStridedBatched_rank_1 = hipblasCgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZgemmStridedBatched_full_rank(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasZgemmStridedBatched_full_rank = hipblasZgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZgemmStridedBatched_rank_0(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_long_long) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_long_long) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasZgemmStridedBatched_rank_0 = hipblasZgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZgemmStridedBatched_rank_1(handle,transa,transb,m,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgemmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_long_long) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_long_long) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_long_long) :: strideC integer(c_int) :: batchCount ! hipblasZgemmStridedBatched_rank_1 = hipblasZgemmStridedBatched_(handle,transa,transb,m,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCherk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherk_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCherk_full_rank = hipblasCherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasCherk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherk_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCherk_rank_0 = hipblasCherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasCherk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherk_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCherk_rank_1 = hipblasCherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasZherk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherk_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZherk_full_rank = hipblasZherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasZherk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherk_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZherk_rank_0 = hipblasZherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasZherk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherk_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZherk_rank_1 = hipblasZherk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasCherkBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCherkBatched_full_rank = hipblasCherkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasCherkBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCherkBatched_rank_0 = hipblasCherkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasCherkBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCherkBatched_rank_1 = hipblasCherkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasZherkBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZherkBatched_full_rank = hipblasZherkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasZherkBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZherkBatched_rank_0 = hipblasZherkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasZherkBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZherkBatched_rank_1 = hipblasZherkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasCherkStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCherkStridedBatched_full_rank = hipblasCherkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCherkStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCherkStridedBatched_rank_0 = hipblasCherkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCherkStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCherkStridedBatched_rank_1 = hipblasCherkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZherkStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZherkStridedBatched_full_rank = hipblasZherkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZherkStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZherkStridedBatched_rank_0 = hipblasZherkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZherkStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZherkStridedBatched_rank_1 = hipblasZherkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCherkx_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkx_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCherkx_full_rank = hipblasCherkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCherkx_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkx_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCherkx_rank_0 = hipblasCherkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCherkx_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkx_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCherkx_rank_1 = hipblasCherkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZherkx_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkx_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZherkx_full_rank = hipblasZherkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZherkx_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkx_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZherkx_rank_0 = hipblasZherkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZherkx_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkx_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZherkx_rank_1 = hipblasZherkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCherkxBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCherkxBatched_full_rank = hipblasCherkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCherkxBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCherkxBatched_rank_0 = hipblasCherkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCherkxBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCherkxBatched_rank_1 = hipblasCherkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZherkxBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZherkxBatched_full_rank = hipblasZherkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZherkxBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZherkxBatched_rank_0 = hipblasZherkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZherkxBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZherkxBatched_rank_1 = hipblasZherkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCherkxStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCherkxStridedBatched_full_rank = hipblasCherkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCherkxStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCherkxStridedBatched_rank_0 = hipblasCherkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCherkxStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCherkxStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCherkxStridedBatched_rank_1 = hipblasCherkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZherkxStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZherkxStridedBatched_full_rank = hipblasZherkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZherkxStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZherkxStridedBatched_rank_0 = hipblasZherkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZherkxStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZherkxStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZherkxStridedBatched_rank_1 = hipblasZherkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCher2k_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2k_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCher2k_full_rank = hipblasCher2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCher2k_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2k_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCher2k_rank_0 = hipblasCher2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCher2k_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2k_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCher2k_rank_1 = hipblasCher2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZher2k_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2k_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZher2k_full_rank = hipblasZher2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZher2k_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2k_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZher2k_rank_0 = hipblasZher2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZher2k_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2k_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZher2k_rank_1 = hipblasZher2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCher2kBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCher2kBatched_full_rank = hipblasCher2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCher2kBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCher2kBatched_rank_0 = hipblasCher2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCher2kBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCher2kBatched_rank_1 = hipblasCher2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZher2kBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZher2kBatched_full_rank = hipblasZher2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZher2kBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZher2kBatched_rank_0 = hipblasZher2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZher2kBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZher2kBatched_rank_1 = hipblasZher2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCher2kStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCher2kStridedBatched_full_rank = hipblasCher2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCher2kStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCher2kStridedBatched_rank_0 = hipblasCher2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCher2kStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCher2kStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCher2kStridedBatched_rank_1 = hipblasCher2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZher2kStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZher2kStridedBatched_full_rank = hipblasZher2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZher2kStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZher2kStridedBatched_rank_0 = hipblasZher2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZher2kStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZher2kStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZher2kStridedBatched_rank_1 = hipblasZher2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSsymm_full_rank = hipblasSsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipblasSsymm_rank_0 = hipblasSsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSsymm_rank_1 = hipblasSsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDsymm_full_rank = hipblasDsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipblasDsymm_rank_0 = hipblasDsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDsymm_rank_1 = hipblasDsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCsymm_full_rank = hipblasCsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCsymm_rank_0 = hipblasCsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCsymm_rank_1 = hipblasCsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsymm_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZsymm_full_rank = hipblasZsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsymm_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZsymm_rank_0 = hipblasZsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsymm_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZsymm_rank_1 = hipblasZsymm_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsymmBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsymmBatched_full_rank = hipblasSsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsymmBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsymmBatched_rank_0 = hipblasSsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsymmBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsymmBatched_rank_1 = hipblasSsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsymmBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsymmBatched_full_rank = hipblasDsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsymmBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsymmBatched_rank_0 = hipblasDsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsymmBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsymmBatched_rank_1 = hipblasDsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsymmBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsymmBatched_full_rank = hipblasCsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsymmBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsymmBatched_rank_0 = hipblasCsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsymmBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsymmBatched_rank_1 = hipblasCsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsymmBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsymmBatched_full_rank = hipblasZsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsymmBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsymmBatched_rank_0 = hipblasZsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsymmBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsymmBatched_rank_1 = hipblasZsymmBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsymmStridedBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsymmStridedBatched_full_rank = hipblasSsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsymmStridedBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsymmStridedBatched_rank_0 = hipblasSsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsymmStridedBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsymmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsymmStridedBatched_rank_1 = hipblasSsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsymmStridedBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsymmStridedBatched_full_rank = hipblasDsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsymmStridedBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsymmStridedBatched_rank_0 = hipblasDsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsymmStridedBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsymmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsymmStridedBatched_rank_1 = hipblasDsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsymmStridedBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsymmStridedBatched_full_rank = hipblasCsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsymmStridedBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsymmStridedBatched_rank_0 = hipblasCsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsymmStridedBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsymmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsymmStridedBatched_rank_1 = hipblasCsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsymmStridedBatched_full_rank(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsymmStridedBatched_full_rank = hipblasZsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsymmStridedBatched_rank_0(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsymmStridedBatched_rank_0 = hipblasZsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsymmStridedBatched_rank_1(handle,side,uplo,m,n,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsymmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsymmStridedBatched_rank_1 = hipblasZsymmStridedBatched_(handle,side,uplo,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrk_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSsyrk_full_rank = hipblasSsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasSsyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrk_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipblasSsyrk_rank_0 = hipblasSsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasSsyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrk_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSsyrk_rank_1 = hipblasSsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasDsyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrk_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDsyrk_full_rank = hipblasDsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasDsyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrk_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipblasDsyrk_rank_0 = hipblasDsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasDsyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrk_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDsyrk_rank_1 = hipblasDsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasCsyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrk_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCsyrk_full_rank = hipblasCsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasCsyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrk_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCsyrk_rank_0 = hipblasCsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasCsyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrk_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCsyrk_rank_1 = hipblasCsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasZsyrk_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrk_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZsyrk_full_rank = hipblasZsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasZsyrk_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrk_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZsyrk_rank_0 = hipblasZsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasZsyrk_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrk_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZsyrk_rank_1 = hipblasZsyrk_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc) end function function hipblasSsyrkBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyrkBatched_full_rank = hipblasSsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyrkBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyrkBatched_rank_0 = hipblasSsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyrkBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyrkBatched_rank_1 = hipblasSsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyrkBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyrkBatched_full_rank = hipblasDsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyrkBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyrkBatched_rank_0 = hipblasDsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyrkBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyrkBatched_rank_1 = hipblasDsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyrkBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyrkBatched_full_rank = hipblasCsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyrkBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyrkBatched_rank_0 = hipblasCsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyrkBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyrkBatched_rank_1 = hipblasCsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyrkBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyrkBatched_full_rank = hipblasZsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyrkBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyrkBatched_rank_0 = hipblasZsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyrkBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyrkBatched_rank_1 = hipblasZsyrkBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyrkStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsyrkStridedBatched_full_rank = hipblasSsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyrkStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsyrkStridedBatched_rank_0 = hipblasSsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyrkStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsyrkStridedBatched_rank_1 = hipblasSsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsyrkStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsyrkStridedBatched_full_rank = hipblasDsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsyrkStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsyrkStridedBatched_rank_0 = hipblasDsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsyrkStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsyrkStridedBatched_rank_1 = hipblasDsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsyrkStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsyrkStridedBatched_full_rank = hipblasCsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsyrkStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsyrkStridedBatched_rank_0 = hipblasCsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsyrkStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsyrkStridedBatched_rank_1 = hipblasCsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsyrkStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsyrkStridedBatched_full_rank = hipblasZsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsyrkStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsyrkStridedBatched_rank_0 = hipblasZsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsyrkStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsyrkStridedBatched_rank_1 = hipblasZsyrkStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyr2k_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2k_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSsyr2k_full_rank = hipblasSsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsyr2k_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2k_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipblasSsyr2k_rank_0 = hipblasSsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsyr2k_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2k_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSsyr2k_rank_1 = hipblasSsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsyr2k_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2k_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDsyr2k_full_rank = hipblasDsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsyr2k_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2k_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipblasDsyr2k_rank_0 = hipblasDsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsyr2k_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2k_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDsyr2k_rank_1 = hipblasDsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsyr2k_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2k_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCsyr2k_full_rank = hipblasCsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsyr2k_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2k_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCsyr2k_rank_0 = hipblasCsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsyr2k_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2k_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCsyr2k_rank_1 = hipblasCsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsyr2k_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2k_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZsyr2k_full_rank = hipblasZsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsyr2k_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2k_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZsyr2k_rank_0 = hipblasZsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsyr2k_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2k_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZsyr2k_rank_1 = hipblasZsyr2k_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsyr2kBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyr2kBatched_full_rank = hipblasSsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyr2kBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyr2kBatched_rank_0 = hipblasSsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyr2kBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyr2kBatched_rank_1 = hipblasSsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyr2kBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyr2kBatched_full_rank = hipblasDsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyr2kBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyr2kBatched_rank_0 = hipblasDsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyr2kBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyr2kBatched_rank_1 = hipblasDsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyr2kBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyr2kBatched_full_rank = hipblasCsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyr2kBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyr2kBatched_rank_0 = hipblasCsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyr2kBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyr2kBatched_rank_1 = hipblasCsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyr2kBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyr2kBatched_full_rank = hipblasZsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyr2kBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyr2kBatched_rank_0 = hipblasZsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyr2kBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyr2kBatched_rank_1 = hipblasZsyr2kBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyr2kStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsyr2kStridedBatched_full_rank = hipblasSsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyr2kStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsyr2kStridedBatched_rank_0 = hipblasSsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyr2kStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyr2kStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSsyr2kStridedBatched_rank_1 = hipblasSsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsyr2kStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsyr2kStridedBatched_full_rank = hipblasDsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsyr2kStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsyr2kStridedBatched_rank_0 = hipblasDsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasDsyr2kStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyr2kStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDsyr2kStridedBatched_rank_1 = hipblasDsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsyr2kStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsyr2kStridedBatched_full_rank = hipblasCsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsyr2kStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsyr2kStridedBatched_rank_0 = hipblasCsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasCsyr2kStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyr2kStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCsyr2kStridedBatched_rank_1 = hipblasCsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsyr2kStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsyr2kStridedBatched_full_rank = hipblasZsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsyr2kStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsyr2kStridedBatched_rank_0 = hipblasZsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZsyr2kStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyr2kStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZsyr2kStridedBatched_rank_1 = hipblasZsyr2kStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasSsyrkx_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkx_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSsyrkx_full_rank = hipblasSsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsyrkx_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkx_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! hipblasSsyrkx_rank_0 = hipblasSsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsyrkx_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkx_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSsyrkx_rank_1 = hipblasSsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsyrkx_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkx_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDsyrkx_full_rank = hipblasDsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsyrkx_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkx_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! hipblasDsyrkx_rank_0 = hipblasDsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasDsyrkx_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkx_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDsyrkx_rank_1 = hipblasDsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsyrkx_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkx_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCsyrkx_full_rank = hipblasCsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsyrkx_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkx_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCsyrkx_rank_0 = hipblasCsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasCsyrkx_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkx_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCsyrkx_rank_1 = hipblasCsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsyrkx_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkx_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZsyrkx_full_rank = hipblasZsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsyrkx_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkx_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZsyrkx_rank_0 = hipblasZsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZsyrkx_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkx_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZsyrkx_rank_1 = hipblasZsyrkx_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasSsyrkxBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyrkxBatched_full_rank = hipblasSsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyrkxBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyrkxBatched_rank_0 = hipblasSsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyrkxBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSsyrkxBatched_rank_1 = hipblasSsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyrkxBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyrkxBatched_full_rank = hipblasDsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyrkxBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyrkxBatched_rank_0 = hipblasDsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasDsyrkxBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDsyrkxBatched_rank_1 = hipblasDsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyrkxBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyrkxBatched_full_rank = hipblasCsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyrkxBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyrkxBatched_rank_0 = hipblasCsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasCsyrkxBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCsyrkxBatched_rank_1 = hipblasCsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyrkxBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyrkxBatched_full_rank = hipblasZsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyrkxBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyrkxBatched_rank_0 = hipblasZsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZsyrkxBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZsyrkxBatched_rank_1 = hipblasZsyrkxBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasSsyrkxStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasSsyrkxStridedBatched_full_rank = hipblasSsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasSsyrkxStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasSsyrkxStridedBatched_rank_0 = hipblasSsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasSsyrkxStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSsyrkxStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasSsyrkxStridedBatched_rank_1 = hipblasSsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasDsyrkxStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasDsyrkxStridedBatched_full_rank = hipblasDsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasDsyrkxStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasDsyrkxStridedBatched_rank_0 = hipblasDsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasDsyrkxStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDsyrkxStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasDsyrkxStridedBatched_rank_1 = hipblasDsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasCsyrkxStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasCsyrkxStridedBatched_full_rank = hipblasCsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasCsyrkxStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasCsyrkxStridedBatched_rank_0 = hipblasCsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasCsyrkxStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCsyrkxStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasCsyrkxStridedBatched_rank_1 = hipblasCsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasZsyrkxStridedBatched_full_rank(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasZsyrkxStridedBatched_full_rank = hipblasZsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasZsyrkxStridedBatched_rank_0(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasZsyrkxStridedBatched_rank_0 = hipblasZsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasZsyrkxStridedBatched_rank_1(handle,uplo,transA,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,stridec,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZsyrkxStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stridec integer(c_int) :: batchCount ! hipblasZsyrkxStridedBatched_rank_1 = hipblasZsyrkxStridedBatched_(handle,uplo,transA,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,stridec,batchCount) end function function hipblasSgeam_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeam_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSgeam_full_rank = hipblasSgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasSgeam_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeam_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: C integer(c_int) :: ldc ! hipblasSgeam_rank_0 = hipblasSgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasSgeam_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeam_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSgeam_rank_1 = hipblasSgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasDgeam_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeam_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDgeam_full_rank = hipblasDgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasDgeam_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeam_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: C integer(c_int) :: ldc ! hipblasDgeam_rank_0 = hipblasDgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasDgeam_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeam_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDgeam_rank_1 = hipblasDgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasCgeam_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeam_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCgeam_full_rank = hipblasCgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasCgeam_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeam_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCgeam_rank_0 = hipblasCgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasCgeam_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeam_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCgeam_rank_1 = hipblasCgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasZgeam_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeam_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZgeam_full_rank = hipblasZgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasZgeam_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeam_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZgeam_rank_0 = hipblasZgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasZgeam_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeam_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZgeam_rank_1 = hipblasZgeam_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc) end function function hipblasSgeamBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSgeamBatched_full_rank = hipblasSgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasSgeamBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSgeamBatched_rank_0 = hipblasSgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasSgeamBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: beta real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSgeamBatched_rank_1 = hipblasSgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasDgeamBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDgeamBatched_full_rank = hipblasDgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasDgeamBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDgeamBatched_rank_0 = hipblasDgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasDgeamBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: beta real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDgeamBatched_rank_1 = hipblasDgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasCgeamBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCgeamBatched_full_rank = hipblasCgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasCgeamBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCgeamBatched_rank_0 = hipblasCgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasCgeamBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCgeamBatched_rank_1 = hipblasCgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasZgeamBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZgeamBatched_full_rank = hipblasZgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasZgeamBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZgeamBatched_rank_0 = hipblasZgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasZgeamBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,beta,B,ldb,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZgeamBatched_rank_1 = hipblasZgeamBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,beta,c_loc(B),ldb,c_loc(C),ldc,batchCount) end function function hipblasSgeamStridedBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSgeamStridedBatched_full_rank = hipblasSgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasSgeamStridedBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSgeamStridedBatched_rank_0 = hipblasSgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasSgeamStridedBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeamStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float) :: beta real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSgeamStridedBatched_rank_1 = hipblasSgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasDgeamStridedBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDgeamStridedBatched_full_rank = hipblasDgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasDgeamStridedBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDgeamStridedBatched_rank_0 = hipblasDgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasDgeamStridedBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeamStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double) :: beta real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDgeamStridedBatched_rank_1 = hipblasDgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasCgeamStridedBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCgeamStridedBatched_full_rank = hipblasCgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasCgeamStridedBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex) :: beta complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCgeamStridedBatched_rank_0 = hipblasCgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasCgeamStridedBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeamStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasCgeamStridedBatched_rank_1 = hipblasCgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasZgeamStridedBatched_full_rank(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZgeamStridedBatched_full_rank = hipblasZgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasZgeamStridedBatched_rank_0(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex) :: beta complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZgeamStridedBatched_rank_0 = hipblasZgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasZgeamStridedBatched_rank_1(handle,transa,transb,m,n,alpha,A,lda,strideA,beta,B,ldb,strideB,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeamStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: transa integer(kind(HIPBLAS_OP_N)) :: transb integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZgeamStridedBatched_rank_1 = hipblasZgeamStridedBatched_(handle,transa,transb,m,n,alpha,c_loc(A),lda,strideA,beta,c_loc(B),ldb,strideB,c_loc(C),ldc,strideC,batchCount) end function function hipblasChemm_full_rank(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasChemm_full_rank = hipblasChemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasChemm_rank_0(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasChemm_rank_0 = hipblasChemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasChemm_rank_1(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasChemm_rank_1 = hipblasChemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZhemm_full_rank(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZhemm_full_rank = hipblasZhemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZhemm_rank_0(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZhemm_rank_0 = hipblasZhemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasZhemm_rank_1(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZhemm_rank_1 = hipblasZhemm_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc) end function function hipblasChemmBatched_full_rank(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasChemmBatched_full_rank = hipblasChemmBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasChemmBatched_rank_0(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasChemmBatched_rank_0 = hipblasChemmBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasChemmBatched_rank_1(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasChemmBatched_rank_1 = hipblasChemmBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZhemmBatched_full_rank(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZhemmBatched_full_rank = hipblasZhemmBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZhemmBatched_rank_0(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZhemmBatched_rank_0 = hipblasZhemmBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasZhemmBatched_rank_1(handle,side,uplo,n,k,alpha,A,lda,B,ldb,beta,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZhemmBatched_rank_1 = hipblasZhemmBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,c_loc(B),ldb,beta,c_loc(C),ldc,batchCount) end function function hipblasChemmStridedBatched_full_rank(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasChemmStridedBatched_full_rank = hipblasChemmStridedBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasChemmStridedBatched_rank_0(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasChemmStridedBatched_rank_0 = hipblasChemmStridedBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasChemmStridedBatched_rank_1(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasChemmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasChemmStridedBatched_rank_1 = hipblasChemmStridedBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZhemmStridedBatched_full_rank(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZhemmStridedBatched_full_rank = hipblasZhemmStridedBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZhemmStridedBatched_rank_0(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZhemmStridedBatched_rank_0 = hipblasZhemmStridedBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasZhemmStridedBatched_rank_1(handle,side,uplo,n,k,alpha,A,lda,strideA,B,ldb,strideB,beta,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZhemmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZhemmStridedBatched_rank_1 = hipblasZhemmStridedBatched_(handle,side,uplo,n,k,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,beta,c_loc(C),ldc,strideC,batchCount) end function function hipblasStrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasStrmm_full_rank = hipblasStrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasStrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! hipblasStrmm_rank_0 = hipblasStrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasStrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasStrmm_rank_1 = hipblasStrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasDtrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasDtrmm_full_rank = hipblasDtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasDtrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! hipblasDtrmm_rank_0 = hipblasDtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasDtrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasDtrmm_rank_1 = hipblasDtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasCtrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasCtrmm_full_rank = hipblasCtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasCtrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! hipblasCtrmm_rank_0 = hipblasCtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasCtrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasCtrmm_rank_1 = hipblasCtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasZtrmm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasZtrmm_full_rank = hipblasZtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasZtrmm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! hipblasZtrmm_rank_0 = hipblasZtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasZtrmm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasZtrmm_rank_1 = hipblasZtrmm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasStrmmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasStrmmBatched_full_rank = hipblasStrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasStrmmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasStrmmBatched_rank_0 = hipblasStrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasStrmmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasStrmmBatched_rank_1 = hipblasStrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasDtrmmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasDtrmmBatched_full_rank = hipblasDtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasDtrmmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasDtrmmBatched_rank_0 = hipblasDtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasDtrmmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasDtrmmBatched_rank_1 = hipblasDtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasCtrmmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasCtrmmBatched_full_rank = hipblasCtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasCtrmmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasCtrmmBatched_rank_0 = hipblasCtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasCtrmmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasCtrmmBatched_rank_1 = hipblasCtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasZtrmmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasZtrmmBatched_full_rank = hipblasZtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasZtrmmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasZtrmmBatched_rank_0 = hipblasZtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasZtrmmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasZtrmmBatched_rank_1 = hipblasZtrmmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasStrmmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasStrmmStridedBatched_full_rank = hipblasStrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasStrmmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasStrmmStridedBatched_rank_0 = hipblasStrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasStrmmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasStrmmStridedBatched_rank_1 = hipblasStrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasDtrmmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasDtrmmStridedBatched_full_rank = hipblasDtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasDtrmmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasDtrmmStridedBatched_rank_0 = hipblasDtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasDtrmmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasDtrmmStridedBatched_rank_1 = hipblasDtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasCtrmmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasCtrmmStridedBatched_full_rank = hipblasCtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasCtrmmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasCtrmmStridedBatched_rank_0 = hipblasCtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasCtrmmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasCtrmmStridedBatched_rank_1 = hipblasCtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasZtrmmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasZtrmmStridedBatched_full_rank = hipblasZtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasZtrmmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasZtrmmStridedBatched_rank_0 = hipblasZtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasZtrmmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasZtrmmStridedBatched_rank_1 = hipblasZtrmmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasStrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasStrsm_full_rank = hipblasStrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasStrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! hipblasStrsm_rank_0 = hipblasStrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasStrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasStrsm_rank_1 = hipblasStrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasDtrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasDtrsm_full_rank = hipblasDtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasDtrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! hipblasDtrsm_rank_0 = hipblasDtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasDtrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasDtrsm_rank_1 = hipblasDtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasCtrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasCtrsm_full_rank = hipblasCtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasCtrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! hipblasCtrsm_rank_0 = hipblasCtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasCtrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasCtrsm_rank_1 = hipblasCtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasZtrsm_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! hipblasZtrsm_full_rank = hipblasZtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasZtrsm_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! hipblasZtrsm_rank_0 = hipblasZtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasZtrsm_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! hipblasZtrsm_rank_1 = hipblasZtrsm_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb) end function function hipblasStrsmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasStrsmBatched_full_rank = hipblasStrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasStrsmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasStrsmBatched_rank_0 = hipblasStrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasStrsmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasStrsmBatched_rank_1 = hipblasStrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasDtrsmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasDtrsmBatched_full_rank = hipblasDtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasDtrsmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasDtrsmBatched_rank_0 = hipblasDtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasDtrsmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasDtrsmBatched_rank_1 = hipblasDtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasCtrsmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasCtrsmBatched_full_rank = hipblasCtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasCtrsmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasCtrsmBatched_rank_0 = hipblasCtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasCtrsmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasCtrsmBatched_rank_1 = hipblasCtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasZtrsmBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasZtrsmBatched_full_rank = hipblasZtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasZtrsmBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasZtrsmBatched_rank_0 = hipblasZtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasZtrsmBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,B,ldb,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batchCount ! hipblasZtrsmBatched_rank_1 = hipblasZtrsmBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,c_loc(B),ldb,batchCount) end function function hipblasStrsmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasStrsmStridedBatched_full_rank = hipblasStrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasStrsmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasStrsmStridedBatched_rank_0 = hipblasStrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasStrsmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrsmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasStrsmStridedBatched_rank_1 = hipblasStrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasDtrsmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasDtrsmStridedBatched_full_rank = hipblasDtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasDtrsmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasDtrsmStridedBatched_rank_0 = hipblasDtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasDtrsmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrsmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasDtrsmStridedBatched_rank_1 = hipblasDtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasCtrsmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasCtrsmStridedBatched_full_rank = hipblasCtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasCtrsmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasCtrsmStridedBatched_rank_0 = hipblasCtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasCtrsmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrsmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasCtrsmStridedBatched_rank_1 = hipblasCtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasZtrsmStridedBatched_full_rank(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasZtrsmStridedBatched_full_rank = hipblasZtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasZtrsmStridedBatched_rank_0(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasZtrsmStridedBatched_rank_0 = hipblasZtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasZtrsmStridedBatched_rank_1(handle,side,uplo,transA,diag,m,n,alpha,A,lda,strideA,B,ldb,strideB,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrsmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_OP_N)) :: transA integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batchCount ! hipblasZtrsmStridedBatched_rank_1 = hipblasZtrsmStridedBatched_(handle,side,uplo,transA,diag,m,n,alpha,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batchCount) end function function hipblasStrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtri_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! hipblasStrtri_full_rank = hipblasStrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasStrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtri_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: invA integer(c_int) :: ldinvA ! hipblasStrtri_rank_0 = hipblasStrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasStrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtri_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: invA integer(c_int) :: ldinvA ! hipblasStrtri_rank_1 = hipblasStrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasDtrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtri_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! hipblasDtrtri_full_rank = hipblasDtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasDtrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtri_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: invA integer(c_int) :: ldinvA ! hipblasDtrtri_rank_0 = hipblasDtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasDtrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtri_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: invA integer(c_int) :: ldinvA ! hipblasDtrtri_rank_1 = hipblasDtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasCtrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtri_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! hipblasCtrtri_full_rank = hipblasCtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasCtrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtri_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: invA integer(c_int) :: ldinvA ! hipblasCtrtri_rank_0 = hipblasCtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasCtrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtri_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA ! hipblasCtrtri_rank_1 = hipblasCtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasZtrtri_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtri_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA ! hipblasZtrtri_full_rank = hipblasZtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasZtrtri_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtri_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: invA integer(c_int) :: ldinvA ! hipblasZtrtri_rank_0 = hipblasZtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasZtrtri_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtri_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA ! hipblasZtrtri_rank_1 = hipblasZtrtri_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA) end function function hipblasStrtriBatched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasStrtriBatched_full_rank = hipblasStrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasStrtriBatched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasStrtriBatched_rank_0 = hipblasStrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasStrtriBatched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasStrtriBatched_rank_1 = hipblasStrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasDtrtriBatched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasDtrtriBatched_full_rank = hipblasDtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasDtrtriBatched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasDtrtriBatched_rank_0 = hipblasDtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasDtrtriBatched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasDtrtriBatched_rank_1 = hipblasDtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasCtrtriBatched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasCtrtriBatched_full_rank = hipblasCtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasCtrtriBatched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasCtrtriBatched_rank_0 = hipblasCtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasCtrtriBatched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasCtrtriBatched_rank_1 = hipblasCtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasZtrtriBatched_full_rank(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasZtrtriBatched_full_rank = hipblasZtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasZtrtriBatched_rank_0(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasZtrtriBatched_rank_0 = hipblasZtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasZtrtriBatched_rank_1(handle,uplo,diag,n,A,lda,invA,ldinvA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int) :: batchCount ! hipblasZtrtriBatched_rank_1 = hipblasZtrtriBatched_(handle,uplo,diag,n,c_loc(A),lda,c_loc(invA),ldinvA,batchCount) end function function hipblasStrtriStridedBatched_full_rank(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasStrtriStridedBatched_full_rank = hipblasStrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasStrtriStridedBatched_rank_0(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasStrtriStridedBatched_rank_0 = hipblasStrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasStrtriStridedBatched_rank_1(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasStrtriStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasStrtriStridedBatched_rank_1 = hipblasStrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasDtrtriStridedBatched_full_rank(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasDtrtriStridedBatched_full_rank = hipblasDtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasDtrtriStridedBatched_rank_0(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasDtrtriStridedBatched_rank_0 = hipblasDtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasDtrtriStridedBatched_rank_1(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDtrtriStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasDtrtriStridedBatched_rank_1 = hipblasDtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasCtrtriStridedBatched_full_rank(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasCtrtriStridedBatched_full_rank = hipblasCtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasCtrtriStridedBatched_rank_0(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasCtrtriStridedBatched_rank_0 = hipblasCtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasCtrtriStridedBatched_rank_1(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCtrtriStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasCtrtriStridedBatched_rank_1 = hipblasCtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasZtrtriStridedBatched_full_rank(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasZtrtriStridedBatched_full_rank = hipblasZtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasZtrtriStridedBatched_rank_0(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasZtrtriStridedBatched_rank_0 = hipblasZtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasZtrtriStridedBatched_rank_1(handle,uplo,diag,n,A,lda,strideA,invA,ldinvA,stride_invA,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZtrtriStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_FILL_MODE_UPPER)) :: uplo integer(kind(HIPBLAS_DIAG_NON_UNIT)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: invA integer(c_int) :: ldinvA integer(c_int64_t) :: stride_invA integer(c_int) :: batchCount ! hipblasZtrtriStridedBatched_rank_1 = hipblasZtrtriStridedBatched_(handle,uplo,diag,n,c_loc(A),lda,strideA,c_loc(invA),ldinvA,stride_invA,batchCount) end function function hipblasSdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasSdgmm_full_rank = hipblasSdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasSdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: C integer(c_int) :: ldc ! hipblasSdgmm_rank_0 = hipblasSdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasSdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasSdgmm_rank_1 = hipblasSdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasDdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasDdgmm_full_rank = hipblasDdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasDdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: C integer(c_int) :: ldc ! hipblasDdgmm_rank_0 = hipblasDdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasDdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasDdgmm_rank_1 = hipblasDdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasCdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasCdgmm_full_rank = hipblasCdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasCdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: C integer(c_int) :: ldc ! hipblasCdgmm_rank_0 = hipblasCdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasCdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasCdgmm_rank_1 = hipblasCdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasZdgmm_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmm_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! hipblasZdgmm_full_rank = hipblasZdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasZdgmm_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmm_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: C integer(c_int) :: ldc ! hipblasZdgmm_rank_0 = hipblasZdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasZdgmm_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmm_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! hipblasZdgmm_rank_1 = hipblasZdgmm_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc) end function function hipblasSdgmmBatched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: x integer(c_int) :: incx real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSdgmmBatched_full_rank = hipblasSdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasSdgmmBatched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: x integer(c_int) :: incx real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSdgmmBatched_rank_0 = hipblasSdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasSdgmmBatched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasSdgmmBatched_rank_1 = hipblasSdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasDdgmmBatched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: x integer(c_int) :: incx real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDdgmmBatched_full_rank = hipblasDdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasDdgmmBatched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: x integer(c_int) :: incx real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDdgmmBatched_rank_0 = hipblasDdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasDdgmmBatched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasDdgmmBatched_rank_1 = hipblasDdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasCdgmmBatched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCdgmmBatched_full_rank = hipblasCdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasCdgmmBatched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCdgmmBatched_rank_0 = hipblasCdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasCdgmmBatched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasCdgmmBatched_rank_1 = hipblasCdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasZdgmmBatched_full_rank(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZdgmmBatched_full_rank = hipblasZdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasZdgmmBatched_rank_0(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZdgmmBatched_rank_0 = hipblasZdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasZdgmmBatched_rank_1(handle,side,m,n,A,lda,x,incx,C,ldc,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: batchCount ! hipblasZdgmmBatched_rank_1 = hipblasZdgmmBatched_(handle,side,m,n,c_loc(A),lda,c_loc(x),incx,c_loc(C),ldc,batchCount) end function function hipblasSdgmmStridedBatched_full_rank(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSdgmmStridedBatched_full_rank = hipblasSdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasSdgmmStridedBatched_rank_0(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSdgmmStridedBatched_rank_0 = hipblasSdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasSdgmmStridedBatched_rank_1(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSdgmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasSdgmmStridedBatched_rank_1 = hipblasSdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasDdgmmStridedBatched_full_rank(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDdgmmStridedBatched_full_rank = hipblasDdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasDdgmmStridedBatched_rank_0(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDdgmmStridedBatched_rank_0 = hipblasDdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasDdgmmStridedBatched_rank_1(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDdgmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasDdgmmStridedBatched_rank_1 = hipblasDdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasCdgmmStridedBatched_full_rank(handle,side,m,n,A,lda,stride_A,x,incx,stride_x,C,ldc,stride_C,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batchCount ! hipblasCdgmmStridedBatched_full_rank = hipblasCdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_C,batchCount) end function function hipblasCdgmmStridedBatched_rank_0(handle,side,m,n,A,lda,stride_A,x,incx,stride_x,C,ldc,stride_C,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batchCount ! hipblasCdgmmStridedBatched_rank_0 = hipblasCdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_C,batchCount) end function function hipblasCdgmmStridedBatched_rank_1(handle,side,m,n,A,lda,stride_A,x,incx,stride_x,C,ldc,stride_C,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCdgmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: stride_A complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stride_x complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: stride_C integer(c_int) :: batchCount ! hipblasCdgmmStridedBatched_rank_1 = hipblasCdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,stride_A,c_loc(x),incx,stride_x,c_loc(C),ldc,stride_C,batchCount) end function function hipblasZdgmmStridedBatched_full_rank(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZdgmmStridedBatched_full_rank = hipblasZdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasZdgmmStridedBatched_rank_0(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZdgmmStridedBatched_rank_0 = hipblasZdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasZdgmmStridedBatched_rank_1(handle,side,m,n,A,lda,strideA,x,incx,stridex,C,ldc,strideC,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZdgmmStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx integer(c_int64_t) :: stridex complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: batchCount ! hipblasZdgmmStridedBatched_rank_1 = hipblasZdgmmStridedBatched_(handle,side,m,n,c_loc(A),lda,strideA,c_loc(x),incx,stridex,c_loc(C),ldc,strideC,batchCount) end function function hipblasSgetrf_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasSgetrf_full_rank = hipblasSgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasSgetrf_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasSgetrf_rank_0 = hipblasSgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasSgetrf_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasSgetrf_rank_1 = hipblasSgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasDgetrf_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasDgetrf_full_rank = hipblasDgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasDgetrf_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasDgetrf_rank_0 = hipblasDgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasDgetrf_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasDgetrf_rank_1 = hipblasDgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasCgetrf_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasCgetrf_full_rank = hipblasCgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasCgetrf_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasCgetrf_rank_0 = hipblasCgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasCgetrf_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasCgetrf_rank_1 = hipblasCgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasZgetrf_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasZgetrf_full_rank = hipblasZgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasZgetrf_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasZgetrf_rank_0 = hipblasZgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasZgetrf_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasZgetrf_rank_1 = hipblasZgetrf_(handle,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasSgetrfBatched_full_rank(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrfBatched_full_rank = hipblasSgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasSgetrfBatched_rank_0(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrfBatched_rank_0 = hipblasSgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasSgetrfBatched_rank_1(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrfBatched_rank_1 = hipblasSgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasDgetrfBatched_full_rank(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrfBatched_full_rank = hipblasDgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasDgetrfBatched_rank_0(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrfBatched_rank_0 = hipblasDgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasDgetrfBatched_rank_1(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrfBatched_rank_1 = hipblasDgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasCgetrfBatched_full_rank(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrfBatched_full_rank = hipblasCgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasCgetrfBatched_rank_0(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrfBatched_rank_0 = hipblasCgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasCgetrfBatched_rank_1(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrfBatched_rank_1 = hipblasCgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasZgetrfBatched_full_rank(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrfBatched_full_rank = hipblasZgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasZgetrfBatched_rank_0(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrfBatched_rank_0 = hipblasZgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasZgetrfBatched_rank_1(handle,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrfBatched_rank_1 = hipblasZgetrfBatched_(handle,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasSgetrfStridedBatched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrfStridedBatched_full_rank = hipblasSgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasSgetrfStridedBatched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrfStridedBatched_rank_0 = hipblasSgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasSgetrfStridedBatched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrfStridedBatched_rank_1 = hipblasSgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasDgetrfStridedBatched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrfStridedBatched_full_rank = hipblasDgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasDgetrfStridedBatched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrfStridedBatched_rank_0 = hipblasDgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasDgetrfStridedBatched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrfStridedBatched_rank_1 = hipblasDgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasCgetrfStridedBatched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrfStridedBatched_full_rank = hipblasCgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasCgetrfStridedBatched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrfStridedBatched_rank_0 = hipblasCgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasCgetrfStridedBatched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrfStridedBatched_rank_1 = hipblasCgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasZgetrfStridedBatched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrfStridedBatched_full_rank = hipblasZgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasZgetrfStridedBatched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrfStridedBatched_rank_0 = hipblasZgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasZgetrfStridedBatched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrfStridedBatched_rank_1 = hipblasZgetrfStridedBatched_(handle,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasSgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasSgetrs_full_rank = hipblasSgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasSgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasSgetrs_rank_0 = hipblasSgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasSgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasSgetrs_rank_1 = hipblasSgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasDgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasDgetrs_full_rank = hipblasDgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasDgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasDgetrs_rank_0 = hipblasDgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasDgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasDgetrs_rank_1 = hipblasDgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasCgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasCgetrs_full_rank = hipblasCgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasCgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasCgetrs_rank_0 = hipblasCgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasCgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasCgetrs_rank_1 = hipblasCgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasZgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasZgetrs_full_rank = hipblasZgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasZgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasZgetrs_rank_0 = hipblasZgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasZgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo ! hipblasZgetrs_rank_1 = hipblasZgetrs_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo) end function function hipblasSgetrsBatched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrsBatched_full_rank = hipblasSgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasSgetrsBatched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrsBatched_rank_0 = hipblasSgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasSgetrsBatched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrsBatched_rank_1 = hipblasSgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasDgetrsBatched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrsBatched_full_rank = hipblasDgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasDgetrsBatched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrsBatched_rank_0 = hipblasDgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasDgetrsBatched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrsBatched_rank_1 = hipblasDgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasCgetrsBatched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrsBatched_full_rank = hipblasCgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasCgetrsBatched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrsBatched_rank_0 = hipblasCgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasCgetrsBatched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrsBatched_rank_1 = hipblasCgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasZgetrsBatched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrsBatched_full_rank = hipblasZgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasZgetrsBatched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrsBatched_rank_0 = hipblasZgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasZgetrsBatched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrsBatched_rank_1 = hipblasZgetrsBatched_(handle,trans,n,nrhs,c_loc(A),lda,ipiv,c_loc(B),ldb,myInfo,batchCount) end function function hipblasSgetrsStridedBatched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrsStridedBatched_full_rank = hipblasSgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasSgetrsStridedBatched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrsStridedBatched_rank_0 = hipblasSgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasSgetrsStridedBatched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetrsStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetrsStridedBatched_rank_1 = hipblasSgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasDgetrsStridedBatched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrsStridedBatched_full_rank = hipblasDgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasDgetrsStridedBatched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrsStridedBatched_rank_0 = hipblasDgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasDgetrsStridedBatched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetrsStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetrsStridedBatched_rank_1 = hipblasDgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasCgetrsStridedBatched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrsStridedBatched_full_rank = hipblasCgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasCgetrsStridedBatched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrsStridedBatched_rank_0 = hipblasCgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasCgetrsStridedBatched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetrsStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetrsStridedBatched_rank_1 = hipblasCgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasZgetrsStridedBatched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsStridedBatched_full_rank type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrsStridedBatched_full_rank = hipblasZgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasZgetrsStridedBatched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsStridedBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrsStridedBatched_rank_0 = hipblasZgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasZgetrsStridedBatched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetrsStridedBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPBLAS_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetrsStridedBatched_rank_1 = hipblasZgetrsStridedBatched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,ipiv,strideP,c_loc(B),ldb,strideB,myInfo,batchCount) end function function hipblasSgetriBatched_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetriBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetriBatched_full_rank = hipblasSgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasSgetriBatched_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetriBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetriBatched_rank_0 = hipblasSgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasSgetriBatched_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgetriBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgetriBatched_rank_1 = hipblasSgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasDgetriBatched_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetriBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetriBatched_full_rank = hipblasDgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasDgetriBatched_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetriBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetriBatched_rank_0 = hipblasDgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasDgetriBatched_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgetriBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgetriBatched_rank_1 = hipblasDgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasCgetriBatched_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetriBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetriBatched_full_rank = hipblasCgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasCgetriBatched_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetriBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetriBatched_rank_0 = hipblasCgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasCgetriBatched_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgetriBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgetriBatched_rank_1 = hipblasCgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasZgetriBatched_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetriBatched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetriBatched_full_rank = hipblasZgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasZgetriBatched_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetriBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetriBatched_rank_0 = hipblasZgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasZgetriBatched_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgetriBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgetriBatched_rank_1 = hipblasZgetriBatched_(handle,n,c_loc(A),lda,ipiv,c_loc(C),ldc,myInfo,batchCount) end function function hipblasSgeqrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasSgeqrf_full_rank = hipblasSgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasSgeqrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasSgeqrf_rank_0 = hipblasSgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasSgeqrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasSgeqrf_rank_1 = hipblasSgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasDgeqrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasDgeqrf_full_rank = hipblasDgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasDgeqrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasDgeqrf_rank_0 = hipblasDgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasDgeqrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasDgeqrf_rank_1 = hipblasDgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasCgeqrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasCgeqrf_full_rank = hipblasCgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasCgeqrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasCgeqrf_rank_0 = hipblasCgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasCgeqrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasCgeqrf_rank_1 = hipblasCgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasZgeqrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasZgeqrf_full_rank = hipblasZgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasZgeqrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasZgeqrf_rank_0 = hipblasZgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasZgeqrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo ! hipblasZgeqrf_rank_1 = hipblasZgeqrf_(handle,m,n,c_loc(A),lda,ipiv,myInfo) end function function hipblasSgeqrfBatched_full_rank(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgeqrfBatched_full_rank = hipblasSgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasSgeqrfBatched_rank_0(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgeqrfBatched_rank_0 = hipblasSgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasSgeqrfBatched_rank_1(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgeqrfBatched_rank_1 = hipblasSgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasDgeqrfBatched_full_rank(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgeqrfBatched_full_rank = hipblasDgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasDgeqrfBatched_rank_0(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgeqrfBatched_rank_0 = hipblasDgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasDgeqrfBatched_rank_1(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgeqrfBatched_rank_1 = hipblasDgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasCgeqrfBatched_full_rank(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgeqrfBatched_full_rank = hipblasCgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasCgeqrfBatched_rank_0(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgeqrfBatched_rank_0 = hipblasCgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasCgeqrfBatched_rank_1(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgeqrfBatched_rank_1 = hipblasCgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasZgeqrfBatched_full_rank(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgeqrfBatched_full_rank = hipblasZgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasZgeqrfBatched_rank_0(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgeqrfBatched_rank_0 = hipblasZgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasZgeqrfBatched_rank_1(handle,m,n,A,lda,ipiv,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgeqrfBatched_rank_1 = hipblasZgeqrfBatched_(handle,m,n,c_loc(A),lda,ipiv,myInfo,batchCount) end function function hipblasSgeqrfStridedBatched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgeqrfStridedBatched_full_rank = hipblasSgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasSgeqrfStridedBatched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgeqrfStridedBatched_rank_0 = hipblasSgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasSgeqrfStridedBatched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasSgeqrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasSgeqrfStridedBatched_rank_1 = hipblasSgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasDgeqrfStridedBatched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgeqrfStridedBatched_full_rank = hipblasDgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasDgeqrfStridedBatched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgeqrfStridedBatched_rank_0 = hipblasDgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasDgeqrfStridedBatched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasDgeqrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasDgeqrfStridedBatched_rank_1 = hipblasDgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasCgeqrfStridedBatched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgeqrfStridedBatched_full_rank = hipblasCgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasCgeqrfStridedBatched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgeqrfStridedBatched_rank_0 = hipblasCgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasCgeqrfStridedBatched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasCgeqrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasCgeqrfStridedBatched_rank_1 = hipblasCgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasZgeqrfStridedBatched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfStridedBatched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgeqrfStridedBatched_full_rank = hipblasZgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasZgeqrfStridedBatched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfStridedBatched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgeqrfStridedBatched_rank_0 = hipblasZgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function function hipblasZgeqrfStridedBatched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batchCount) use iso_c_binding use hipfort_hipblas_enums implicit none integer(kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasZgeqrfStridedBatched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA type(c_ptr) :: ipiv integer(c_int64_t) :: strideP type(c_ptr) :: myInfo integer(c_int) :: batchCount ! hipblasZgeqrfStridedBatched_rank_1 = hipblasZgeqrfStridedBatched_(handle,m,n,c_loc(A),lda,strideA,ipiv,strideP,myInfo,batchCount) end function #endif end module hipfort_hipblas hipfort-7.2.4/lib/hipfort/hipfort_rocsolver.F900000664000175000017500001104711715207260635021657 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocsolver use hipfort_rocsolver_enums implicit none interface rocsolver_create_handle function rocsolver_create_handle_(handle) bind(c, name="rocsolver_create_handle") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_create_handle_ type(c_ptr) :: handle end function end interface interface rocsolver_destroy_handle function rocsolver_destroy_handle_(handle) bind(c, name="rocsolver_destroy_handle") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_destroy_handle_ type(c_ptr),value :: handle end function end interface interface rocsolver_set_stream function rocsolver_set_stream_(handle,stream) bind(c, name="rocsolver_set_stream") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_set_stream_ type(c_ptr),value :: handle type(c_ptr),value :: stream end function end interface interface rocsolver_get_stream function rocsolver_get_stream_(handle,stream) bind(c, name="rocsolver_get_stream") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_get_stream_ type(c_ptr),value :: handle type(c_ptr) :: stream end function end interface interface rocsolver_set_matrix function rocsolver_set_matrix_(rows,cols,elem_size,a,lda,b,ldb) bind(c, name="rocsolver_set_matrix") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_set_matrix_ integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: a integer(c_int),value :: lda type(c_ptr),value :: b integer(c_int),value :: ldb end function end interface interface rocsolver_get_matrix function rocsolver_get_matrix_(rows,cols,elem_size,a,lda,b,ldb) bind(c, name="rocsolver_get_matrix") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_get_matrix_ integer(c_int),value :: rows integer(c_int),value :: cols integer(c_int),value :: elem_size type(c_ptr),value :: a integer(c_int),value :: lda type(c_ptr),value :: b integer(c_int),value :: ldb end function end interface !> \brief GET_VERSION_STRING Queries the library version. !> !> \details !> @param[out] !> buf A buffer that the version string will be written into. !> @param[in] !> len The size of the given buffer in bytes. !> interface rocsolver_get_version_string function rocsolver_get_version_string_(buf,len) bind(c, name="rocsolver_get_version_string") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_get_version_string_ type(c_ptr),value :: buf integer(c_size_t),value :: len end function end interface !> \brief GET_VERSION_STRING_SIZE Queries the minimum buffer size for a !> successful call to \ref rocsolver_get_version_string. !> !> \details !> @param[out] !> len pointer to size_t.\n !> The minimum length of buffer to pass to !> \ref rocsolver_get_version_string. !> interface rocsolver_get_version_string_size function rocsolver_get_version_string_size_(len) bind(c, name="rocsolver_get_version_string_size") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_get_version_string_size_ type(c_ptr),value :: len end function end interface !> \brief LOG_BEGIN begins a rocSOLVER multi-level logging session. !> !> \details !> Initializes the rocSOLVER logging environment with default values (no !> logging and one level depth). Default mode can be overridden by using the !> environment variables ROCSOLVER_LAYER and ROCSOLVER_LEVELS. !> !> This function also sets the streams where the log results will be outputted. !> The default is STDERR for all the modes. This default can also be overridden !> using the environment variable ROCSOLVER_LOG_PATH, or specifically !> ROCSOLVER_LOG_TRACE_PATH, ROCSOLVER_LOG_BENCH_PATH, and/or ROCSOLVER_LOG_PROFILE_PATH. interface rocsolver_log_begin function rocsolver_log_begin_() bind(c, name="rocsolver_log_begin") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_begin_ end function end interface !> \brief LOG_END ends the multi-level rocSOLVER logging session. !> !> \details !> If applicable, this function also prints the profile logging results !> before cleaning the logging environment. interface rocsolver_log_end function rocsolver_log_end_() bind(c, name="rocsolver_log_end") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_end_ end function end interface !> \brief LOG_SET_LAYER_MODE sets the logging mode for the rocSOLVER multi-level !> logging environment. !> !> \details !> @param[in] !> layer_mode rocblas_layer_mode_flags.\n !> Specifies the logging mode. interface rocsolver_log_set_layer_mode function rocsolver_log_set_layer_mode_(layer_mode) bind(c, name="rocsolver_log_set_layer_mode") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_set_layer_mode_ integer(4),value :: layer_mode end function end interface !> \brief LOG_SET_MAX_LEVELS sets the maximum trace log depth for the rocSOLVER !> multi-level logging environment. !> !> \details !> @param[in] !> max_levels rocblas_int. max_levels >= 1.\n !> Specifies the maximum depth at which nested function calls !> will appear in the trace and profile logs. interface rocsolver_log_set_max_levels function rocsolver_log_set_max_levels_(max_levels) bind(c, name="rocsolver_log_set_max_levels") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_set_max_levels_ integer(c_int),value :: max_levels end function end interface !> \brief LOG_RESTORE_DEFAULTS restores the default values of the rocSOLVER !> multi-level logging environment. !> !> \details !> This function sets the logging mode and maximum trace log depth to their !> default values (no logging and one level depth). interface rocsolver_log_restore_defaults function rocsolver_log_restore_defaults_() bind(c, name="rocsolver_log_restore_defaults") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_restore_defaults_ end function end interface !> \brief LOG_WRITE_PROFILE prints the profile logging results. interface rocsolver_log_write_profile function rocsolver_log_write_profile_() bind(c, name="rocsolver_log_write_profile") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_write_profile_ end function end interface !> \brief LOG_FLUSH_PROFILE prints the profile logging results and clears the !> profile record. interface rocsolver_log_flush_profile function rocsolver_log_flush_profile_() bind(c, name="rocsolver_log_flush_profile") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_log_flush_profile_ end function end interface !> \brief LACGV conjugates the complex vector x. !> !> \details !> It conjugates the n entries of a complex vector x with increment incx. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The dimension of vector x. !> @param[inout] !> x pointer to type. Array on the GPU of size at least n (size depends on the value of incx).\n !> On entry, the vector x. !> On exit, each entry is overwritten with its conjugate value. !> @param[in] !> incx rocblas_int. incx != 0.\n !> The distance between two consecutive elements of x. !> If incx is negative, the elements of x are indexed in !> reverse order. interface rocsolver_clacgv function rocsolver_clacgv_(handle,n,x,incx) bind(c, name="rocsolver_clacgv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clacgv_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clacgv_rank_0,& rocsolver_clacgv_rank_1 #endif end interface interface rocsolver_zlacgv function rocsolver_zlacgv_(handle,n,x,incx) bind(c, name="rocsolver_zlacgv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlacgv_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlacgv_rank_0,& rocsolver_zlacgv_rank_1 #endif end interface !> \brief LASWP performs a series of row interchanges on the matrix A. !> !> \details !> Row interchanges are done one by one. If \f$\text{ipiv}[k_1 + (j - k_1) \cdot \text{abs}(\text{incx})] = r\f$, then the j-th row of A !> will be interchanged with the r-th row of A, for \f$j = k_1,k_1+1,\dots,k_2\f$. Indices \f$k_1\f$ and \f$k_2\f$ are 1-based indices. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n. \n !> On entry, the matrix to which the row !> interchanges will be applied. On exit, the resulting permuted matrix. !> @param[in] !> lda rocblas_int. lda > 0.\n !> The leading dimension of the array A. !> @param[in] !> k1 rocblas_int. k1 > 0.\n !> The k_1 index. It is the first element of ipiv for which a row interchange will !> be done. This is a 1-based index. !> @param[in] !> k2 rocblas_int. k2 > k1 > 0.\n !> The k_2 index. k_2 - k_1 + 1 is the number of elements of ipiv for which a row !> interchange will be done. This is a 1-based index. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU of dimension at least k_1 + (k_2 - k_1)*abs(incx).\n !> The vector of pivot indices. Only the elements in positions !> k_1 through k_1 + (k_2 - k_1)*abs(incx) of this vector are accessed. !> Elements of ipiv are considered 1-based. !> @param[in] !> incx rocblas_int. incx != 0.\n !> The distance between successive values of ipiv. If incx !> is negative, the pivots are applied in reverse order. interface rocsolver_slaswp function rocsolver_slaswp_(handle,n,A,lda,k1,k2,ipiv,incx) bind(c, name="rocsolver_slaswp") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slaswp_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: k1 integer(c_int),value :: k2 type(c_ptr),value :: ipiv integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slaswp_full_rank,& rocsolver_slaswp_rank_0,& rocsolver_slaswp_rank_1 #endif end interface interface rocsolver_dlaswp function rocsolver_dlaswp_(handle,n,A,lda,k1,k2,ipiv,incx) bind(c, name="rocsolver_dlaswp") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlaswp_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: k1 integer(c_int),value :: k2 type(c_ptr),value :: ipiv integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlaswp_full_rank,& rocsolver_dlaswp_rank_0,& rocsolver_dlaswp_rank_1 #endif end interface interface rocsolver_claswp function rocsolver_claswp_(handle,n,A,lda,k1,k2,ipiv,incx) bind(c, name="rocsolver_claswp") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_claswp_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: k1 integer(c_int),value :: k2 type(c_ptr),value :: ipiv integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_claswp_full_rank,& rocsolver_claswp_rank_0,& rocsolver_claswp_rank_1 #endif end interface interface rocsolver_zlaswp function rocsolver_zlaswp_(handle,n,A,lda,k1,k2,ipiv,incx) bind(c, name="rocsolver_zlaswp") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlaswp_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: k1 integer(c_int),value :: k2 type(c_ptr),value :: ipiv integer(c_int),value :: incx end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlaswp_full_rank,& rocsolver_zlaswp_rank_0,& rocsolver_zlaswp_rank_1 #endif end interface !> \brief LARFG generates a Householder reflector H of order n. !> !> \details !> The reflector H is such that !> !> \f[ !> H'\left[\begin{array}{c} !> \text{alpha}\newline !> !> x !> \end{array}\right]=\left[\begin{array}{c} !> \text{beta}\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where x is an n-1 vector, and alpha and beta are scalars. Matrix H can be !> generated as !> !> \f[ !> H = I - \text{tau}\left[\begin{array}{c} !> 1\newline !> !> v !> \end{array}\right]\left[\begin{array}{cc} !> 1 & v' !> \end{array}\right] !> \f] !> !> where v is an n-1 vector, and tau is a scalar known as the Householder scalar. The vector !> !> \f[ !> \bar{v}=\left[\begin{array}{c} !> 1\newline !> !> v !> \end{array}\right] !> \f] !> !> is the Householder vector associated with the reflection. !> !> \note !> The matrix H is orthogonal/unitary (i.e. \f$H'H=HH'=I\f$). It is symmetric when real (i.e. \f$H^T=H\f$), but not Hermitian when complex !> (i.e. \f$H^H\neq H\f$ in general). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order (size) of reflector H. !> @param[inout] !> alpha pointer to type. A scalar on the GPU.\n !> On entry, the scalar alpha. !> On exit, it is overwritten with beta. !> @param[inout] !> x pointer to type. Array on the GPU of size at least n-1 (size depends on the value of incx).\n !> On entry, the vector x, !> On exit, it is overwritten with vector v. !> @param[in] !> incx rocblas_int. incx > 0.\n !> The distance between two consecutive elements of x. !> @param[out] !> tau pointer to type. A scalar on the GPU.\n !> The Householder scalar tau. !> interface rocsolver_slarfg function rocsolver_slarfg_(handle,n,alpha,x,incx,tau) bind(c, name="rocsolver_slarfg") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfg_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slarfg_rank_0,& rocsolver_slarfg_rank_1 #endif end interface interface rocsolver_dlarfg function rocsolver_dlarfg_(handle,n,alpha,x,incx,tau) bind(c, name="rocsolver_dlarfg") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfg_ type(c_ptr),value :: handle integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlarfg_rank_0,& rocsolver_dlarfg_rank_1 #endif end interface interface rocsolver_clarfg function rocsolver_clarfg_(handle,n,alpha,x,incx,tau) bind(c, name="rocsolver_clarfg") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfg_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clarfg_rank_0,& rocsolver_clarfg_rank_1 #endif end interface interface rocsolver_zlarfg function rocsolver_zlarfg_(handle,n,alpha,x,incx,tau) bind(c, name="rocsolver_zlarfg") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfg_ type(c_ptr),value :: handle integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlarfg_rank_0,& rocsolver_zlarfg_rank_1 #endif end interface !> \brief LARFT generates the triangular factor T of a block reflector H of !> order n. !> !> \details !> The block reflector H is defined as the product of k Householder matrices !> !> \f[ !> \begin{array}{cl} !> H = H_1H_2\cdots H_k & \: \text{if direct indicates forward direction, or} \newline !> !> H = H_k\cdots H_2H_1 & \: \text{if direct indicates backward direction} !> \end{array} !> \f] !> !> The triangular factor T is upper triangular in the forward direction and lower triangular in the backward direction. !> If storev is column-wise, then !> !> \f[ !> H = I - VTV' !> \f] !> !> where the i-th column of matrix V contains the Householder vector associated with \f$H_i\f$. If storev is row-wise, then !> !> \f[ !> H = I - V'TV !> \f] !> !> where the i-th row of matrix V contains the Householder vector associated with \f$H_i\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> direct rocblas_direct.\n !> Specifies the direction in which the Householder matrices are applied. !> @param[in] !> storev rocblas_storev.\n !> Specifies how the Householder vectors are stored in matrix V. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order (size) of the block reflector. !> @param[in] !> k rocblas_int. k >= 1.\n !> The number of Householder matrices forming H. !> @param[in] !> V pointer to type. Array on the GPU of size ldv*k if column-wise, or ldv*n if row-wise.\n !> The matrix of Householder vectors. !> @param[in] !> ldv rocblas_int. ldv >= n if column-wise, or ldv >= k if row-wise.\n !> Leading dimension of V. !> @param[in] !> tau pointer to type. Array of k scalars on the GPU.\n !> The vector of all the Householder scalars. !> @param[out] !> T pointer to type. Array on the GPU of dimension ldt*k.\n !> The triangular factor. T is upper triangular if direct indicates forward direction, otherwise it is !> lower triangular. The rest of the array is not used. !> @param[in] !> ldt rocblas_int. ldt >= k.\n !> The leading dimension of T. !> interface rocsolver_slarft function rocsolver_slarft_(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) bind(c, name="rocsolver_slarft") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarft_ type(c_ptr),value :: handle integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv real(c_float) :: tau type(c_ptr),value :: T integer(c_int),value :: ldt end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slarft_full_rank,& rocsolver_slarft_rank_0,& rocsolver_slarft_rank_1 #endif end interface interface rocsolver_dlarft function rocsolver_dlarft_(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) bind(c, name="rocsolver_dlarft") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarft_ type(c_ptr),value :: handle integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv real(c_double) :: tau type(c_ptr),value :: T integer(c_int),value :: ldt end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlarft_full_rank,& rocsolver_dlarft_rank_0,& rocsolver_dlarft_rank_1 #endif end interface interface rocsolver_clarft function rocsolver_clarft_(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) bind(c, name="rocsolver_clarft") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarft_ type(c_ptr),value :: handle integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv complex(c_float_complex) :: tau type(c_ptr),value :: T integer(c_int),value :: ldt end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clarft_full_rank,& rocsolver_clarft_rank_0,& rocsolver_clarft_rank_1 #endif end interface interface rocsolver_zlarft function rocsolver_zlarft_(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) bind(c, name="rocsolver_zlarft") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarft_ type(c_ptr),value :: handle integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv complex(c_double_complex) :: tau type(c_ptr),value :: T integer(c_int),value :: ldt end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlarft_full_rank,& rocsolver_zlarft_rank_0,& rocsolver_zlarft_rank_1 #endif end interface !> \brief LARF applies a Householder reflector H to a general matrix A. !> !> \details !> The Householder reflector H, of order m or n, is to be applied to an m-by-n matrix A !> from the left or the right, depending on the value of side. H is given by !> !> \f[ !> H = I - \text{alpha}\cdot xx' !> \f] !> !> where alpha is the Householder scalar and x is a Householder vector. H is never actually computed. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Determines whether H is applied from the left or the right. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of A. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of A. !> @param[in] !> x pointer to type. Array on the GPU of !> size at least 1 + (m-1)*abs(incx) if left side, or !> at least 1 + (n-1)*abs(incx) if right side.\n !> The Householder vector x. !> @param[in] !> incx rocblas_int. incx != 0.\n !> Distance between two consecutive elements of x. !> If incx < 0, the elements of x are indexed in reverse order. !> @param[in] !> alpha pointer to type. A scalar on the GPU.\n !> The Householder scalar. If alpha = 0, then H = I (A will remain the same; x is never used) !> @param[inout] !> A pointer to type. Array on the GPU of size lda*n.\n !> On entry, the matrix A. On exit, it is overwritten with !> H*A (or A*H). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Leading dimension of A. !> interface rocsolver_slarf function rocsolver_slarf_(handle,side,m,n,x,incx,alpha,A,lda) bind(c, name="rocsolver_slarf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarf_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slarf_full_rank,& rocsolver_slarf_rank_0,& rocsolver_slarf_rank_1 #endif end interface interface rocsolver_dlarf function rocsolver_dlarf_(handle,side,m,n,x,incx,alpha,A,lda) bind(c, name="rocsolver_dlarf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarf_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlarf_full_rank,& rocsolver_dlarf_rank_0,& rocsolver_dlarf_rank_1 #endif end interface interface rocsolver_clarf function rocsolver_clarf_(handle,side,m,n,x,incx,alpha,A,lda) bind(c, name="rocsolver_clarf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarf_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clarf_full_rank,& rocsolver_clarf_rank_0,& rocsolver_clarf_rank_1 #endif end interface interface rocsolver_zlarf function rocsolver_zlarf_(handle,side,m,n,x,incx,alpha,A,lda) bind(c, name="rocsolver_zlarf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarf_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: x integer(c_int),value :: incx complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlarf_full_rank,& rocsolver_zlarf_rank_0,& rocsolver_zlarf_rank_1 #endif end interface !> \brief LARFB applies a block reflector H to a general m-by-n matrix A. !> !> \details !> The block reflector H is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> HA & \: \text{(No transpose from the left),}\newline !> !> H'A & \: \text{(Transpose or conjugate transpose from the left),}\newline !> !> AH & \: \text{(No transpose from the right), or}\newline !> !> AH' & \: \text{(Transpose or conjugate transpose from the right).} !> \end{array} !> \f] !> !> The block reflector H is defined as the product of k Householder matrices as !> !> \f[ !> \begin{array}{cl} !> H = H_1H_2\cdots H_k & \: \text{if direct indicates forward direction, or} \newline !> !> H = H_k\cdots H_2H_1 & \: \text{if direct indicates backward direction} !> \end{array} !> \f] !> !> H is never stored. It is calculated as !> !> \f[ !> H = I - VTV' !> \f] !> !> where the i-th column of matrix V contains the Householder vector associated with \f$H_i\f$, if storev is column-wise; or !> !> \f[ !> H = I - V'TV !> \f] !> !> where the i-th row of matrix V contains the Householder vector associated with \f$H_i\f$, if storev is row-wise. !> T is the associated triangular factor as computed by \ref rocsolver_slarft "LARFT". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply H. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the block reflector or its transpose/conjugate transpose is to be applied. !> @param[in] !> direct rocblas_direct.\n !> Specifies the direction in which the Householder matrices are to be applied to generate H. !> @param[in] !> storev rocblas_storev.\n !> Specifies how the Householder vectors are stored in matrix V. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix A. !> @param[in] !> k rocblas_int. k >= 1.\n !> The number of Householder matrices. !> @param[in] !> V pointer to type. Array on the GPU of size ldv*k if column-wise, ldv*n if row-wise and applying from the right, !> or ldv*m if row-wise and applying from the left.\n !> The matrix of Householder vectors. !> @param[in] !> ldv rocblas_int. ldv >= k if row-wise, ldv >= m if column-wise and applying from the left, or ldv >= n if !> column-wise and applying from the right.\n !> Leading dimension of V. !> @param[in] !> T pointer to type. Array on the GPU of dimension ldt*k.\n !> The triangular factor of the block reflector. !> @param[in] !> ldt rocblas_int. ldt >= k.\n !> The leading dimension of T. !> @param[inout] !> A pointer to type. Array on the GPU of size lda*n.\n !> On entry, the matrix A. On exit, it is overwritten with !> H*A, A*H, H'*A, or A*H'. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Leading dimension of A. !> interface rocsolver_slarfb function rocsolver_slarfb_(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) bind(c, name="rocsolver_slarfb") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfb_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: T integer(c_int),value :: ldt type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slarfb_full_rank,& rocsolver_slarfb_rank_0,& rocsolver_slarfb_rank_1 #endif end interface interface rocsolver_dlarfb function rocsolver_dlarfb_(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) bind(c, name="rocsolver_dlarfb") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfb_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: T integer(c_int),value :: ldt type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlarfb_full_rank,& rocsolver_dlarfb_rank_0,& rocsolver_dlarfb_rank_1 #endif end interface interface rocsolver_clarfb function rocsolver_clarfb_(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) bind(c, name="rocsolver_clarfb") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfb_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: T integer(c_int),value :: ldt type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clarfb_full_rank,& rocsolver_clarfb_rank_0,& rocsolver_clarfb_rank_1 #endif end interface interface rocsolver_zlarfb function rocsolver_zlarfb_(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) bind(c, name="rocsolver_zlarfb") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfb_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(kind(rocblas_forward_direction)),value :: myDirect integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: T integer(c_int),value :: ldt type(c_ptr),value :: A integer(c_int),value :: lda end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlarfb_full_rank,& rocsolver_zlarfb_rank_0,& rocsolver_zlarfb_rank_1 #endif end interface !> \brief LABRD computes the bidiagonal form of the first k rows and columns of !> a general m-by-n matrix A, as well as the matrices X and Y needed to reduce !> the remaining part of A. !> !> \details !> The reduced form is given by: !> !> \f[ !> B = Q'AP !> \f] !> !> where the leading k-by-k block of B is upper bidiagonal if m >= n, or lower bidiagonal if m < n. Q and !> P are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_k, & \text{and} \newline !> !> P = G_1G_2\cdots G_k. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ and \f$G_i\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_i = I - \text{tauq}[i]\cdot v_iv_i', & \text{and} \newline !> !> G_i = I - \text{taup}[i]\cdot u_iu_i'. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i]=1\f$; !> while the first i elements of the Householder vector \f$u_i\f$ are zero, and \f$u_i[i+1]=1\f$. !> If m < n, the first i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1]=1\f$; !> while the first i-1 elements of the Householder vector \f$u_i\f$ are zero, and \f$u_i[i]=1\f$. !> !> The unreduced part of the matrix A can be updated using the block update !> !> \f[ !> A = A - VY' - XU' !> \f] !> !> where V and U are the m-by-k and n-by-k matrices formed with the vectors \f$v_i\f$ and \f$u_i\f$, respectively. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[in] !> k rocblas_int. min(m,n) >= k >= 0.\n !> The number of leading rows and columns of matrix A that will be reduced. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be reduced. !> On exit, the first k elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n), contain the bidiagonal form B. !> If m >= n, the elements below the diagonal of the first k columns are the possibly non-zero elements !> of the Householder vectors associated with Q, while the elements above the !> superdiagonal of the first k rows are the n - i - 1 possibly non-zero elements of the Householder vectors related to P. !> If m < n, the elements below the subdiagonal of the first k columns are the m - i - 1 possibly non-zero !> elements of the Householder vectors related to Q, while the elements above the !> diagonal of the first k rows are the n - i possibly non-zero elements of the vectors associated with P. !> @param[in] !> lda rocblas_int. lda >= m.\n !> specifies the leading dimension of A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension k.\n !> The diagonal elements of B. !> @param[out] !> E pointer to real type. Array on the GPU of dimension k.\n !> The off-diagonal elements of B. !> @param[out] !> tauq pointer to type. Array on the GPU of dimension k.\n !> The Householder scalars associated with matrix Q. !> @param[out] !> taup pointer to type. Array on the GPU of dimension k.\n !> The Householder scalars associated with matrix P. !> @param[out] !> X pointer to type. Array on the GPU of dimension ldx*k.\n !> The m-by-k matrix needed to update the unreduced part of A. !> @param[in] !> ldx rocblas_int. ldx >= m.\n !> The leading dimension of X. !> @param[out] !> Y pointer to type. Array on the GPU of dimension ldy*k.\n !> The n-by-k matrix needed to update the unreduced part of A. !> @param[in] !> ldy rocblas_int. ldy >= n.\n !> The leading dimension of Y. !> interface rocsolver_slabrd function rocsolver_slabrd_(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) bind(c, name="rocsolver_slabrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slabrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: Y integer(c_int),value :: ldy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slabrd_full_rank,& rocsolver_slabrd_rank_0,& rocsolver_slabrd_rank_1 #endif end interface interface rocsolver_dlabrd function rocsolver_dlabrd_(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) bind(c, name="rocsolver_dlabrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlabrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: Y integer(c_int),value :: ldy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlabrd_full_rank,& rocsolver_dlabrd_rank_0,& rocsolver_dlabrd_rank_1 #endif end interface interface rocsolver_clabrd function rocsolver_clabrd_(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) bind(c, name="rocsolver_clabrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clabrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: Y integer(c_int),value :: ldy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clabrd_full_rank,& rocsolver_clabrd_rank_0,& rocsolver_clabrd_rank_1 #endif end interface interface rocsolver_zlabrd function rocsolver_zlabrd_(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) bind(c, name="rocsolver_zlabrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlabrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: Y integer(c_int),value :: ldy end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlabrd_full_rank,& rocsolver_zlabrd_rank_0,& rocsolver_zlabrd_rank_1 #endif end interface !> \brief LATRD computes the tridiagonal form of k rows and columns of !> a symmetric/hermitian matrix A, as well as the matrix W needed to update !> the remaining part of A. !> !> \details !> The reduced form is given by: !> !> \f[ !> T = Q'AQ !> \f] !> !> If uplo is lower, the first k rows and columns of T form the tridiagonal block. If uplo is upper, then the last !> k rows and columns of T form the tridiagonal block. Q is an orthogonal/unitary matrix represented as the !> product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_k & \text{if uplo indicates lower, or}\newline !> !> Q = H_nH_{n-1}\cdots H_{n-k+1} & \text{if uplo is upper}. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{tau}[i]\cdot v_iv_i' !> \f] !> !> where tau[i] is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$. If uplo is upper, !> the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> The unreduced part of the matrix A can be updated using a rank update of the form: !> !> \f[ !> A = A - VW' - WV' !> \f] !> !> where V is the n-by-k matrix formed by the vectors \f$v_i\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of rows and columns of the matrix A to be reduced. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the n-by-n matrix to be reduced. !> On exit, if uplo is lower, the first k columns have been reduced to tridiagonal form !> (given in the diagonal elements of A and the array E), the elements below the diagonal !> contain the possibly non-zero entries of the Householder vectors associated with Q, stored as columns. !> If uplo is upper, the last k columns have been reduced to tridiagonal form !> (given in the diagonal elements of A and the array E), the elements above the diagonal !> contain the possibly non-zero entries of the Householder vectors associated with Q, stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> If upper (lower), the last (first) k elements of E are the off-diagonal elements of the !> computed tridiagonal block. !> @param[out] !> tau pointer to type. Array on the GPU of dimension n-1.\n !> If upper (lower), the last (first) k elements of tau are the Householder scalars related to Q. !> @param[out] !> W pointer to type. Array on the GPU of dimension ldw*k.\n !> The n-by-k matrix needed to update the unreduced part of A. !> @param[in] !> ldw rocblas_int. ldw >= n.\n !> The leading dimension of W. interface rocsolver_slatrd function rocsolver_slatrd_(handle,uplo,n,k,A,lda,E,tau,W,ldw) bind(c, name="rocsolver_slatrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slatrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: E real(c_float) :: tau type(c_ptr),value :: W integer(c_int),value :: ldw end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slatrd_full_rank,& rocsolver_slatrd_rank_0,& rocsolver_slatrd_rank_1 #endif end interface interface rocsolver_dlatrd function rocsolver_dlatrd_(handle,uplo,n,k,A,lda,E,tau,W,ldw) bind(c, name="rocsolver_dlatrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlatrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: E real(c_double) :: tau type(c_ptr),value :: W integer(c_int),value :: ldw end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlatrd_full_rank,& rocsolver_dlatrd_rank_0,& rocsolver_dlatrd_rank_1 #endif end interface interface rocsolver_clatrd function rocsolver_clatrd_(handle,uplo,n,k,A,lda,E,tau,W,ldw) bind(c, name="rocsolver_clatrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clatrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: E complex(c_float_complex) :: tau type(c_ptr),value :: W integer(c_int),value :: ldw end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clatrd_full_rank,& rocsolver_clatrd_rank_0,& rocsolver_clatrd_rank_1 #endif end interface interface rocsolver_zlatrd function rocsolver_zlatrd_(handle,uplo,n,k,A,lda,E,tau,W,ldw) bind(c, name="rocsolver_zlatrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlatrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: E complex(c_double_complex) :: tau type(c_ptr),value :: W integer(c_int),value :: ldw end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlatrd_full_rank,& rocsolver_zlatrd_rank_0,& rocsolver_zlatrd_rank_1 #endif end interface !> \brief LASYF computes a partial factorization of a symmetric matrix \f$A\f$ !> using Bunch-Kaufman diagonal pivoting. !> !> \details !> The partial factorization has the form !> !> \f[ !> A = \left[ \begin{array}{cc} !> I & U_{12} \newline !> !> 0 & U_{22} !> \end{array} \right] \left[ \begin{array}{cc} !> A_{11} & 0 \newline !> !> 0 & D !> \end{array} \right] \left[ \begin{array}{cc} !> I & 0 \newline !> !> U_{12}^T & U_{22}^T !> \end{array} \right] !> \f] !> !> or !> !> \f[ !> A = \left[ \begin{array}{cc} !> L_{11} & 0 \newline !> !> L_{21} & I !> \end{array} \right] \left[ \begin{array}{cc} !> D & 0 \newline !> !> 0 & A_{22} !> \end{array} \right] \left[ \begin{array}{cc} !> L_{11}^T & L_{21}^T \newline !> !> 0 & I !> \end{array} \right] !> \f] !> !> depending on the value of uplo. The order of the block diagonal matrix \f$D\f$ !> is either \f$nb\f$ or \f$nb-1\f$, and is returned in the argument \f$kb\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[in] !> nb rocblas_int. 2 <= nb <= n.\n !> The number of columns of A to be factored. !> @param[out] !> kb pointer to a rocblas_int on the GPU.\n !> The number of columns of A that were actually factored (either nb or !> nb-1). !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrix A to be factored. !> On exit, the partially factored matrix. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> If uplo is upper, then only the last kb elements of ipiv will be !> set. For n - kb < k <= n, if ipiv[k] > 0 then rows and columns k !> and ipiv[k] were interchanged and D[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv[k] = ipiv[k-1] < 0, then rows and columns k-1 !> and -ipiv[k] were interchanged and D[k-1,k-1] to D[k,k] is a 2-by-2 !> diagonal block. !> If uplo is lower, then only the first kb elements of ipiv will be !> set. For 1 <= k <= kb, if ipiv[k] > 0 then rows and columns k !> and ipiv[k] were interchanged and D[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv[k] = ipiv[k+1] < 0, then rows and columns k+1 !> and -ipiv[k] were interchanged and D[k,k] to D[k+1,k+1] is a 2-by-2 !> diagonal block. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info[i] = j > 0, D is singular. D[j,j] is the first diagonal zero. interface rocsolver_slasyf function rocsolver_slasyf_(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) bind(c, name="rocsolver_slasyf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slasyf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nb type(c_ptr),value :: kb type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_slasyf_full_rank,& rocsolver_slasyf_rank_0,& rocsolver_slasyf_rank_1 #endif end interface interface rocsolver_dlasyf function rocsolver_dlasyf_(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) bind(c, name="rocsolver_dlasyf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlasyf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nb type(c_ptr),value :: kb type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dlasyf_full_rank,& rocsolver_dlasyf_rank_0,& rocsolver_dlasyf_rank_1 #endif end interface interface rocsolver_clasyf function rocsolver_clasyf_(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) bind(c, name="rocsolver_clasyf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clasyf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nb type(c_ptr),value :: kb type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_clasyf_full_rank,& rocsolver_clasyf_rank_0,& rocsolver_clasyf_rank_1 #endif end interface interface rocsolver_zlasyf function rocsolver_zlasyf_(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) bind(c, name="rocsolver_zlasyf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlasyf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nb type(c_ptr),value :: kb type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zlasyf_full_rank,& rocsolver_zlasyf_rank_0,& rocsolver_zlasyf_rank_1 #endif end interface !> \brief ORG2R generates an m-by-n Matrix Q with orthonormal columns. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is defined as the first n columns of the product of k Householder !> reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_k. !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQRF", with the Householder vectors in the first k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". interface rocsolver_sorg2r function rocsolver_sorg2r_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorg2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2r_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorg2r_full_rank,& rocsolver_sorg2r_rank_0,& rocsolver_sorg2r_rank_1 #endif end interface interface rocsolver_dorg2r function rocsolver_dorg2r_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorg2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2r_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorg2r_full_rank,& rocsolver_dorg2r_rank_0,& rocsolver_dorg2r_rank_1 #endif end interface !> \brief UNG2R generates an m-by-n complex Matrix Q with orthonormal columns. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is defined as the first n columns of the product of k Householder !> reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQRF", with the Householder vectors in the first k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". interface rocsolver_cung2r function rocsolver_cung2r_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cung2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2r_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cung2r_full_rank,& rocsolver_cung2r_rank_0,& rocsolver_cung2r_rank_1 #endif end interface interface rocsolver_zung2r function rocsolver_zung2r_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zung2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2r_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zung2r_full_rank,& rocsolver_zung2r_rank_0,& rocsolver_zung2r_rank_1 #endif end interface !> \brief ORGQR generates an m-by-n Matrix Q with orthonormal columns. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is defined as the first n columns of the product of k Householder !> reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQRF", with the Householder vectors in the first k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". interface rocsolver_sorgqr function rocsolver_sorgqr_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorgqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorgqr_full_rank,& rocsolver_sorgqr_rank_0,& rocsolver_sorgqr_rank_1 #endif end interface interface rocsolver_dorgqr function rocsolver_dorgqr_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorgqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorgqr_full_rank,& rocsolver_dorgqr_rank_0,& rocsolver_dorgqr_rank_1 #endif end interface !> \brief UNGQR generates an m-by-n complex Matrix Q with orthonormal columns. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is defined as the first n columns of the product of k Householder !> reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQRF", with the Householder vectors in the first k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". interface rocsolver_cungqr function rocsolver_cungqr_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cungqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cungqr_full_rank,& rocsolver_cungqr_rank_0,& rocsolver_cungqr_rank_1 #endif end interface interface rocsolver_zungqr function rocsolver_zungqr_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zungqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zungqr_full_rank,& rocsolver_zungqr_rank_0,& rocsolver_zungqr_rank_1 #endif end interface !> \brief ORGL2 generates an m-by-n Matrix Q with orthonormal rows. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is defined as the first m rows of the product of k Householder !> reflectors of order n !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. 0 <= m <= n.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= m.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GELQF", with the Householder vectors in the first k rows. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". interface rocsolver_sorgl2 function rocsolver_sorgl2_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorgl2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgl2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorgl2_full_rank,& rocsolver_sorgl2_rank_0,& rocsolver_sorgl2_rank_1 #endif end interface interface rocsolver_dorgl2 function rocsolver_dorgl2_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorgl2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgl2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorgl2_full_rank,& rocsolver_dorgl2_rank_0,& rocsolver_dorgl2_rank_1 #endif end interface !> \brief UNGL2 generates an m-by-n complex Matrix Q with orthonormal rows. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is defined as the first m rows of the product of k Householder !> reflectors of order n !> !> \f[ !> Q = H_k^HH_{k-1}^H\cdots H_1^H !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. 0 <= m <= n.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= m.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GELQF", with the Householder vectors in the first k rows. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". interface rocsolver_cungl2 function rocsolver_cungl2_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cungl2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungl2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cungl2_full_rank,& rocsolver_cungl2_rank_0,& rocsolver_cungl2_rank_1 #endif end interface interface rocsolver_zungl2 function rocsolver_zungl2_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zungl2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungl2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zungl2_full_rank,& rocsolver_zungl2_rank_0,& rocsolver_zungl2_rank_1 #endif end interface !> \brief ORGLQ generates an m-by-n Matrix Q with orthonormal rows. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is defined as the first m rows of the product of k Householder !> reflectors of order n !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. 0 <= m <= n.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= m.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GELQF", with the Householder vectors in the first k rows. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". interface rocsolver_sorglq function rocsolver_sorglq_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorglq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorglq_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorglq_full_rank,& rocsolver_sorglq_rank_0,& rocsolver_sorglq_rank_1 #endif end interface interface rocsolver_dorglq function rocsolver_dorglq_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorglq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorglq_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorglq_full_rank,& rocsolver_dorglq_rank_0,& rocsolver_dorglq_rank_1 #endif end interface !> \brief UNGLQ generates an m-by-n complex Matrix Q with orthonormal rows. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is defined as the first m rows of the product of k Householder !> reflectors of order n !> !> \f[ !> Q = H_k^HH_{k-1}^H\cdots H_1^H !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. 0 <= m <= n.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= m.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GELQF", with the Householder vectors in the first k rows. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". interface rocsolver_cunglq function rocsolver_cunglq_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cunglq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunglq_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunglq_full_rank,& rocsolver_cunglq_rank_0,& rocsolver_cunglq_rank_1 #endif end interface interface rocsolver_zunglq function rocsolver_zunglq_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zunglq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunglq_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunglq_full_rank,& rocsolver_zunglq_rank_0,& rocsolver_zunglq_rank_1 #endif end interface !> \brief ORG2L generates an m-by-n Matrix Q with orthonormal columns. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is defined as the last n columns of the product of k !> Householder reflectors of order m !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQLF", with the Householder vectors in the last k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqlf "GEQLF". interface rocsolver_sorg2l function rocsolver_sorg2l_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorg2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2l_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorg2l_full_rank,& rocsolver_sorg2l_rank_0,& rocsolver_sorg2l_rank_1 #endif end interface interface rocsolver_dorg2l function rocsolver_dorg2l_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorg2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2l_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorg2l_full_rank,& rocsolver_dorg2l_rank_0,& rocsolver_dorg2l_rank_1 #endif end interface !> \brief UNG2L generates an m-by-n complex Matrix Q with orthonormal columns. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is defined as the last n columns of the product of k !> Householder reflectors of order m !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQLF", with the Householder vectors in the last k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqlf "GEQLF". interface rocsolver_cung2l function rocsolver_cung2l_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cung2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2l_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cung2l_full_rank,& rocsolver_cung2l_rank_0,& rocsolver_cung2l_rank_1 #endif end interface interface rocsolver_zung2l function rocsolver_zung2l_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zung2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2l_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zung2l_full_rank,& rocsolver_zung2l_rank_0,& rocsolver_zung2l_rank_1 #endif end interface !> \brief ORGQL generates an m-by-n Matrix Q with orthonormal columns. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is defined as the last n column of the product of k Householder !> reflectors of order m !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQLF", with the Householder vectors in the last k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqlf "GEQLF". interface rocsolver_sorgql function rocsolver_sorgql_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorgql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgql_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorgql_full_rank,& rocsolver_sorgql_rank_0,& rocsolver_sorgql_rank_1 #endif end interface interface rocsolver_dorgql function rocsolver_dorgql_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorgql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgql_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorgql_full_rank,& rocsolver_dorgql_rank_0,& rocsolver_dorgql_rank_1 #endif end interface !> \brief UNGQL generates an m-by-n complex Matrix Q with orthonormal columns. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is defined as the last n columns of the product of k !> Householder reflectors of order m !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> @param[in] !> n rocblas_int. 0 <= n <= m.\n !> The number of columns of the matrix Q. !> @param[in] !> k rocblas_int. 0 <= k <= n.\n !> The number of Householder reflectors. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A as returned by \ref rocsolver_sgeqrf "GEQLF", with the Householder vectors in the last k columns. !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqlf "GEQLF". interface rocsolver_cungql function rocsolver_cungql_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cungql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungql_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cungql_full_rank,& rocsolver_cungql_rank_0,& rocsolver_cungql_rank_1 #endif end interface interface rocsolver_zungql function rocsolver_zungql_(handle,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zungql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungql_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zungql_full_rank,& rocsolver_zungql_rank_0,& rocsolver_zungql_rank_1 #endif end interface !> \brief ORGBR generates an m-by-n Matrix Q with orthonormal rows or columns. !> !> \details !> If storev is column-wise, then the matrix Q has orthonormal columns. If m >= k, Q is defined as the first !> n columns of the product of k Householder reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> If m < k, Q is defined as the product of Householder reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_{m-1} !> \f] !> !> On the other hand, if storev is row-wise, then the matrix Q has orthonormal rows. If n > k, Q is defined as the !> first m rows of the product of k Householder reflectors of order n !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> If n <= k, Q is defined as the product of Householder reflectors of order n !> !> \f[ !> Q = H_{n-1}H_{n-2}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgebrd "GEBRD" in its arguments A and tauq or taup. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> storev rocblas_storev.\n !> Specifies whether to work column-wise or row-wise. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> If row-wise, then min(n,k) <= m <= n. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix Q. !> If column-wise, then min(m,k) <= n <= m. !> @param[in] !> k rocblas_int. k >= 0.\n !> The number of columns (if storev is column-wise) or rows (if row-wise) of the !> original matrix reduced by \ref rocsolver_sgebrd "GEBRD". !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the Householder vectors as returned by \ref rocsolver_sgebrd "GEBRD". !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension min(m,k) if column-wise, or min(n,k) if row-wise.\n !> The Householder scalars as returned by \ref rocsolver_sgebrd "GEBRD". interface rocsolver_sorgbr function rocsolver_sorgbr_(handle,storev,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_sorgbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorgbr_full_rank,& rocsolver_sorgbr_rank_0,& rocsolver_sorgbr_rank_1 #endif end interface interface rocsolver_dorgbr function rocsolver_dorgbr_(handle,storev,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_dorgbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorgbr_full_rank,& rocsolver_dorgbr_rank_0,& rocsolver_dorgbr_rank_1 #endif end interface !> \brief UNGBR generates an m-by-n complex Matrix Q with orthonormal rows or !> columns. !> !> \details !> If storev is column-wise, then the matrix Q has orthonormal columns. If m >= k, Q is defined as the first !> n columns of the product of k Householder reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> If m < k, Q is defined as the product of Householder reflectors of order m !> !> \f[ !> Q = H_1H_2\cdots H_{m-1} !> \f] !> !> On the other hand, if storev is row-wise, then the matrix Q has orthonormal rows. If n > k, Q is defined as the !> first m rows of the product of k Householder reflectors of order n !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> If n <= k, Q is defined as the product of Householder reflectors of order n !> !> \f[ !> Q = H_{n-1}H_{n-2}\cdots H_1 !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by \ref rocsolver_sgebrd "GEBRD" in its arguments A and tauq or taup. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> storev rocblas_storev.\n !> Specifies whether to work column-wise or row-wise. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix Q. !> If row-wise, then min(n,k) <= m <= n. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix Q. !> If column-wise, then min(m,k) <= n <= m. !> @param[in] !> k rocblas_int. k >= 0.\n !> The number of columns (if storev is column-wise) or rows (if row-wise) of the !> original matrix reduced by \ref rocsolver_sgebrd "GEBRD". !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the Householder vectors as returned by \ref rocsolver_sgebrd "GEBRD". !> On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension min(m,k) if column-wise, or min(n,k) if row-wise.\n !> The Householder scalars as returned by \ref rocsolver_sgebrd "GEBRD". interface rocsolver_cungbr function rocsolver_cungbr_(handle,storev,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_cungbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cungbr_full_rank,& rocsolver_cungbr_rank_0,& rocsolver_cungbr_rank_1 #endif end interface interface rocsolver_zungbr function rocsolver_zungbr_(handle,storev,m,n,k,A,lda,ipiv) bind(c, name="rocsolver_zungbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zungbr_full_rank,& rocsolver_zungbr_rank_0,& rocsolver_zungbr_rank_1 #endif end interface !> \brief ORGTR generates an n-by-n orthogonal Matrix Q. !> !> \details !> Q is defined as the product of n-1 Householder reflectors of order n. If !> uplo indicates upper, then Q has the form !> !> \f[ !> Q = H_{n-1}H_{n-2}\cdots H_1 !> \f] !> !> On the other hand, if uplo indicates lower, then Q has the form !> !> \f[ !> Q = H_1H_2\cdots H_{n-1} !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by !> \ref rocsolver_ssytrd "SYTRD" in its arguments A and tau. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the \ref rocsolver_ssytrd "SYTRD" factorization was upper or lower !> triangular. If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix Q. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the Householder vectors as returned !> by \ref rocsolver_ssytrd "SYTRD". On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension n-1.\n !> The Householder scalars as returned by \ref rocsolver_ssytrd "SYTRD". interface rocsolver_sorgtr function rocsolver_sorgtr_(handle,uplo,n,A,lda,ipiv) bind(c, name="rocsolver_sorgtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgtr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorgtr_full_rank,& rocsolver_sorgtr_rank_0,& rocsolver_sorgtr_rank_1 #endif end interface interface rocsolver_dorgtr function rocsolver_dorgtr_(handle,uplo,n,A,lda,ipiv) bind(c, name="rocsolver_dorgtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgtr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorgtr_full_rank,& rocsolver_dorgtr_rank_0,& rocsolver_dorgtr_rank_1 #endif end interface !> \brief UNGTR generates an n-by-n unitary Matrix Q. !> !> \details !> Q is defined as the product of n-1 Householder reflectors of order n. If !> uplo indicates upper, then Q has the form !> !> \f[ !> Q = H_{n-1}H_{n-2}\cdots H_1 !> \f] !> !> On the other hand, if uplo indicates lower, then Q has the form !> !> \f[ !> Q = H_1H_2\cdots H_{n-1} !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors \f$v_i\f$ and scalars \f$\text{ipiv}[i]\f$, as returned by !> \ref rocsolver_chetrd "HETRD" in its arguments A and tau. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the \ref rocsolver_chetrd "HETRD" factorization was upper or lower !> triangular. If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix Q. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the Householder vectors as returned !> by \ref rocsolver_chetrd "HETRD". On exit, the computed matrix Q. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension n-1.\n !> The Householder scalars as returned by \ref rocsolver_chetrd "HETRD". interface rocsolver_cungtr function rocsolver_cungtr_(handle,uplo,n,A,lda,ipiv) bind(c, name="rocsolver_cungtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungtr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cungtr_full_rank,& rocsolver_cungtr_rank_0,& rocsolver_cungtr_rank_1 #endif end interface interface rocsolver_zungtr function rocsolver_zungtr_(handle,uplo,n,A,lda,ipiv) bind(c, name="rocsolver_zungtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungtr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zungtr_full_rank,& rocsolver_zungtr_rank_0,& rocsolver_zungtr_rank_1 #endif end interface !> \brief ORM2R multiplies a matrix Q with orthonormal columns by a general m-by-n !> matrix C. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2 \cdots H_k !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the QR factorization \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqrf "GEQRF" !> in the first k columns of its argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, or lda >= n if side is right. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sorm2r function rocsolver_sorm2r_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sorm2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2r_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorm2r_full_rank,& rocsolver_sorm2r_rank_0,& rocsolver_sorm2r_rank_1 #endif end interface interface rocsolver_dorm2r function rocsolver_dorm2r_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dorm2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2r_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorm2r_full_rank,& rocsolver_dorm2r_rank_0,& rocsolver_dorm2r_rank_1 #endif end interface !> \brief UNM2R multiplies a complex matrix Q with orthonormal columns by a !> general m-by-n matrix C. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the QR factorization \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqrf "GEQRF" !> in the first k columns of its argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, or lda >= n if side is right. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. !> interface rocsolver_cunm2r function rocsolver_cunm2r_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunm2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2r_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunm2r_full_rank,& rocsolver_cunm2r_rank_0,& rocsolver_cunm2r_rank_1 #endif end interface interface rocsolver_zunm2r function rocsolver_zunm2r_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunm2r") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2r_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunm2r_full_rank,& rocsolver_zunm2r_rank_0,& rocsolver_zunm2r_rank_1 #endif end interface !> \brief ORMQR multiplies a matrix Q with orthonormal columns by a general m-by-n !> matrix C. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the QR factorization \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqrf "GEQRF" !> in the first k columns of its argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, or lda >= n if side is right. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sormqr function rocsolver_sormqr_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sormqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormqr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sormqr_full_rank,& rocsolver_sormqr_rank_0,& rocsolver_sormqr_rank_1 #endif end interface interface rocsolver_dormqr function rocsolver_dormqr_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dormqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormqr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dormqr_full_rank,& rocsolver_dormqr_rank_0,& rocsolver_dormqr_rank_1 #endif end interface !> \brief UNMQR multiplies a complex matrix Q with orthonormal columns by a !> general m-by-n matrix C. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the QR factorization \ref rocsolver_sgeqrf "GEQRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqrf "GEQRF" !> in the first k columns of its argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, or lda >= n if side is right. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgeqrf "GEQRF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunmqr function rocsolver_cunmqr_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunmqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmqr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunmqr_full_rank,& rocsolver_cunmqr_rank_0,& rocsolver_cunmqr_rank_1 #endif end interface interface rocsolver_zunmqr function rocsolver_zunmqr_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunmqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmqr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunmqr_full_rank,& rocsolver_zunmqr_rank_0,& rocsolver_zunmqr_rank_1 #endif end interface !> \brief ORML2 multiplies a matrix Q with orthonormal rows by a general m-by-n !> matrix C. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the LQ factorization \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*m if side is left, or lda*n if side is right.\n !> The Householder vectors as returned by \ref rocsolver_sgelqf "GELQF" !> in the first k rows of its argument A. !> @param[in] !> lda rocblas_int. lda >= k. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. !> interface rocsolver_sorml2 function rocsolver_sorml2_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sorml2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorml2_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorml2_full_rank,& rocsolver_sorml2_rank_0,& rocsolver_sorml2_rank_1 #endif end interface interface rocsolver_dorml2 function rocsolver_dorml2_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dorml2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorml2_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorml2_full_rank,& rocsolver_dorml2_rank_0,& rocsolver_dorml2_rank_1 #endif end interface !> \brief UNML2 multiplies a complex matrix Q with orthonormal rows by a general !> m-by-n matrix C. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_k^HH_{k-1}^H\cdots H_1^H !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the LQ factorization \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*m if side is left, or lda*n if side is right.\n !> The Householder vectors as returned by \ref rocsolver_sgelqf "GELQF" !> in the first k rows of its argument A. !> @param[in] !> lda rocblas_int. lda >= k. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunml2 function rocsolver_cunml2_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunml2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunml2_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunml2_full_rank,& rocsolver_cunml2_rank_0,& rocsolver_cunml2_rank_1 #endif end interface interface rocsolver_zunml2 function rocsolver_zunml2_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunml2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunml2_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunml2_full_rank,& rocsolver_zunml2_rank_0,& rocsolver_zunml2_rank_1 #endif end interface !> \brief ORMLQ multiplies a matrix Q with orthonormal rows by a general m-by-n !> matrix C. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the LQ factorization \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*m if side is left, or lda*n if side is right.\n !> The Householder vectors as returned by \ref rocsolver_sgelqf "GELQF" !> in the first k rows of its argument A. !> @param[in] !> lda rocblas_int. lda >= k. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sormlq function rocsolver_sormlq_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sormlq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormlq_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sormlq_full_rank,& rocsolver_sormlq_rank_0,& rocsolver_sormlq_rank_1 #endif end interface interface rocsolver_dormlq function rocsolver_dormlq_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dormlq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormlq_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dormlq_full_rank,& rocsolver_dormlq_rank_0,& rocsolver_dormlq_rank_1 #endif end interface !> \brief UNMLQ multiplies a complex matrix Q with orthonormal rows by a general !> m-by-n matrix C. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_k^HH_{k-1}^H\cdots H_1^H !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is never stored, it is !> calculated from the Householder vectors and scalars returned by the LQ factorization \ref rocsolver_sgelqf "GELQF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*m if side is left, or lda*n if side is right.\n !> The Householder vectors as returned by \ref rocsolver_sgelqf "GELQF" !> in the first k rows of its argument A. !> @param[in] !> lda rocblas_int. lda >= k. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by \ref rocsolver_sgelqf "GELQF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunmlq function rocsolver_cunmlq_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunmlq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmlq_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunmlq_full_rank,& rocsolver_cunmlq_rank_0,& rocsolver_cunmlq_rank_1 #endif end interface interface rocsolver_zunmlq function rocsolver_zunmlq_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunmlq") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmlq_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunmlq_full_rank,& rocsolver_zunmlq_rank_0,& rocsolver_zunmlq_rank_1 #endif end interface !> \brief ORM2L multiplies a matrix Q with orthonormal columns by a general m-by-n !> matrix C. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is !> never stored, it is calculated from the Householder vectors and scalars !> returned by the QL factorization \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be !> applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqlf "GEQLF" in the last k columns of its !> argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, lda >= n if side is right.\n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by !> \ref rocsolver_sgeqlf "GEQLF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sorm2l function rocsolver_sorm2l_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sorm2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2l_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sorm2l_full_rank,& rocsolver_sorm2l_rank_0,& rocsolver_sorm2l_rank_1 #endif end interface interface rocsolver_dorm2l function rocsolver_dorm2l_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dorm2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2l_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dorm2l_full_rank,& rocsolver_dorm2l_rank_0,& rocsolver_dorm2l_rank_1 #endif end interface !> \brief UNM2L multiplies a complex matrix Q with orthonormal columns by a !> general m-by-n matrix C. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is !> never stored, it is calculated from the Householder vectors and scalars !> returned by the QL factorization \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate !> transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqlf "GEQLF" in the last k columns of its !> argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, lda >= n if side is right.\n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by !> \ref rocsolver_sgeqlf "GEQLF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunm2l function rocsolver_cunm2l_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunm2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2l_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunm2l_full_rank,& rocsolver_cunm2l_rank_0,& rocsolver_cunm2l_rank_1 #endif end interface interface rocsolver_zunm2l function rocsolver_zunm2l_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunm2l") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2l_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunm2l_full_rank,& rocsolver_zunm2l_rank_0,& rocsolver_zunm2l_rank_1 #endif end interface !> \brief ORMQL multiplies a matrix Q with orthonormal columns by a general m-by-n !> matrix C. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is !> never stored, it is calculated from the Householder vectors and scalars !> returned by the QL factorization \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be !> applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqlf "GEQLF" in the last k columns of its !> argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, lda >= n if side is right.\n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by !> \ref rocsolver_sgeqlf "GEQLF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sormql function rocsolver_sormql_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sormql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormql_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sormql_full_rank,& rocsolver_sormql_rank_0,& rocsolver_sormql_rank_1 #endif end interface interface rocsolver_dormql function rocsolver_dormql_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dormql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormql_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dormql_full_rank,& rocsolver_dormql_rank_0,& rocsolver_dormql_rank_1 #endif end interface !> \brief UNMQL multiplies a complex matrix Q with orthonormal columns by a !> general m-by-n matrix C. !> !> \details !> (This is the blocked version of the algorithm). !> !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1 !> \f] !> !> of order m if applying from the left, or n if applying from the right. Q is !> never stored, it is calculated from the Householder vectors and scalars !> returned by the QL factorization \ref rocsolver_sgeqlf "GEQLF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate !> transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0; k <= m if side is left, k <= n if side is right.\n !> The number of Householder reflectors that form Q. !> @param[in] !> A pointer to type. Array on the GPU of size lda*k.\n !> The Householder vectors as returned by \ref rocsolver_sgeqlf "GEQLF" in the last k columns of its !> argument A. !> @param[in] !> lda rocblas_int. lda >= m if side is left, lda >= n if side is right.\n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least k.\n !> The Householder scalars as returned by !> \ref rocsolver_sgeqlf "GEQLF". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunmql function rocsolver_cunmql_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunmql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmql_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunmql_full_rank,& rocsolver_cunmql_rank_0,& rocsolver_cunmql_rank_1 #endif end interface interface rocsolver_zunmql function rocsolver_zunmql_(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunmql") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmql_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunmql_full_rank,& rocsolver_zunmql_rank_0,& rocsolver_zunmql_rank_1 #endif end interface !> \brief ORMBR multiplies a matrix Q with orthonormal rows or columns by a !> general m-by-n matrix C. !> !> \details !> If storev is column-wise, then the matrix Q has orthonormal columns. !> If storev is row-wise, then the matrix Q has orthonormal rows. !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> The order q of the orthogonal matrix Q is q = m if applying from the left, or q = n if applying from the right. !> !> When storev is column-wise, if q >= k, then Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k, !> \f] !> !> and if q < k, then Q is defined as the product !> !> \f[ !> Q = H_1H_2\cdots H_{q-1}. !> \f] !> !> When storev is row-wise, if q > k, then Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k, !> \f] !> !> and if q <= k, Q is defined as the product !> !> \f[ !> Q = H_1H_2\cdots H_{q-1}. !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors and scalars as returned by \ref rocsolver_sgebrd "GEBRD" in its arguments A and tauq or taup. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> storev rocblas_storev.\n !> Specifies whether to work column-wise or row-wise. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0.\n !> The number of columns (if storev is column-wise) or rows (if row-wise) of the !> original matrix reduced by \ref rocsolver_sgebrd "GEBRD". !> @param[in] !> A pointer to type. Array on the GPU of size lda*min(q,k) if column-wise, or lda*q if row-wise.\n !> The Householder vectors as returned by \ref rocsolver_sgebrd "GEBRD". !> @param[in] !> lda rocblas_int. lda >= q if column-wise, or lda >= min(q,k) if row-wise. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least min(q,k).\n !> The Householder scalars as returned by \ref rocsolver_sgebrd "GEBRD". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sormbr function rocsolver_sormbr_(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sormbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sormbr_full_rank,& rocsolver_sormbr_rank_0,& rocsolver_sormbr_rank_1 #endif end interface interface rocsolver_dormbr function rocsolver_dormbr_(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dormbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dormbr_full_rank,& rocsolver_dormbr_rank_0,& rocsolver_dormbr_rank_1 #endif end interface !> \brief UNMBR multiplies a complex matrix Q with orthonormal rows or columns by !> a general m-by-n matrix C. !> !> \details !> If storev is column-wise, then the matrix Q has orthonormal columns. !> If storev is row-wise, then the matrix Q has orthonormal rows. !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> The order q of the unitary matrix Q is q = m if applying from the left, or q = n if applying from the right. !> !> When storev is column-wise, if q >= k, then Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k, !> \f] !> !> and if q < k, then Q is defined as the product !> !> \f[ !> Q = H_1H_2\cdots H_{q-1}. !> \f] !> !> When storev is row-wise, if q > k, then Q is defined as the product of k Householder reflectors !> !> \f[ !> Q = H_1H_2\cdots H_k, !> \f] !> !> and if q <= k, Q is defined as the product !> !> \f[ !> Q = H_1H_2\cdots H_{q-1}. !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its corresponding !> Householder vectors and scalars as returned by \ref rocsolver_sgebrd "GEBRD" in its arguments A and tauq or taup. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> storev rocblas_storev.\n !> Specifies whether to work column-wise or row-wise. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> k rocblas_int. k >= 0.\n !> The number of columns (if storev is column-wise) or rows (if row-wise) of the !> original matrix reduced by \ref rocsolver_sgebrd "GEBRD". !> @param[in] !> A pointer to type. Array on the GPU of size lda*min(q,k) if column-wise, or lda*q if row-wise.\n !> The Householder vectors as returned by \ref rocsolver_sgebrd "GEBRD". !> @param[in] !> lda rocblas_int. lda >= q if column-wise, or lda >= min(q,k) if row-wise. \n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least min(q,k).\n !> The Householder scalars as returned by \ref rocsolver_sgebrd "GEBRD". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunmbr function rocsolver_cunmbr_(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunmbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunmbr_full_rank,& rocsolver_cunmbr_rank_0,& rocsolver_cunmbr_rank_1 #endif end interface interface rocsolver_zunmbr function rocsolver_zunmbr_(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunmbr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmbr_ type(c_ptr),value :: handle integer(kind(rocblas_column_wise)),value :: storev integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunmbr_full_rank,& rocsolver_zunmbr_rank_0,& rocsolver_zunmbr_rank_1 #endif end interface !> \brief ORMTR multiplies an orthogonal matrix Q by a general m-by-n matrix C. !> !> \details !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^TC & \: \text{Transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^T & \: \text{Transpose from the right.} !> \end{array} !> \f] !> !> The order q of the orthogonal matrix Q is q = m if applying from the left, or !> q = n if applying from the right. !> !> Q is defined as a product of q-1 Householder reflectors. If !> uplo indicates upper, then Q has the form !> !> \f[ !> Q = H_{q-1}H_{q-2}\cdots H_1. !> \f] !> !> On the other hand, if uplo indicates lower, then Q has the form !> !> \f[ !> Q = H_1H_2\cdots H_{q-1} !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors and scalars as returned by !> \ref rocsolver_ssytrd "SYTRD" in its arguments A and tau. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the \ref rocsolver_ssytrd "SYTRD" factorization was upper or !> lower triangular. If uplo indicates lower (or upper), then the upper (or !> lower) part of A is not used. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its transpose is to be !> applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> A pointer to type. Array on the GPU of size lda*q.\n !> On entry, the Householder vectors as !> returned by \ref rocsolver_ssytrd "SYTRD". !> @param[in] !> lda rocblas_int. lda >= q.\n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least q-1.\n !> The Householder scalars as returned by !> \ref rocsolver_ssytrd "SYTRD". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_sormtr function rocsolver_sormtr_(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_sormtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormtr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sormtr_full_rank,& rocsolver_sormtr_rank_0,& rocsolver_sormtr_rank_1 #endif end interface interface rocsolver_dormtr function rocsolver_dormtr_(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_dormtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormtr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dormtr_full_rank,& rocsolver_dormtr_rank_0,& rocsolver_dormtr_rank_1 #endif end interface !> \brief UNMTR multiplies a unitary matrix Q by a general m-by-n matrix C. !> !> \details !> The matrix Q is applied in one of the following forms, depending on !> the values of side and trans: !> !> \f[ !> \begin{array}{cl} !> QC & \: \text{No transpose from the left,}\newline !> !> Q^HC & \: \text{Conjugate transpose from the left,}\newline !> !> CQ & \: \text{No transpose from the right, and}\newline !> !> CQ^H & \: \text{Conjugate transpose from the right.} !> \end{array} !> \f] !> !> The order q of the unitary matrix Q is q = m if applying from the left, or !> q = n if applying from the right. !> !> Q is defined as a product of q-1 Householder reflectors. If !> uplo indicates upper, then Q has the form !> !> \f[ !> Q = H_{q-1}H_{q-2}\cdots H_1. !> \f] !> !> On the other hand, if uplo indicates lower, then Q has the form !> !> \f[ !> Q = H_1H_2\cdots H_{q-1} !> \f] !> !> The Householder matrices \f$H_i\f$ are never stored, they are computed from its !> corresponding Householder vectors and scalars as returned by !> \ref rocsolver_chetrd "HETRD" in its arguments A and tau. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> side rocblas_side.\n !> Specifies from which side to apply Q. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the \ref rocsolver_chetrd "HETRD" factorization was upper or !> lower triangular. If uplo indicates lower (or upper), then the upper (or !> lower) part of A is not used. !> @param[in] !> trans rocblas_operation.\n !> Specifies whether the matrix Q or its conjugate !> transpose is to be applied. !> @param[in] !> m rocblas_int. m >= 0.\n !> Number of rows of matrix C. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of columns of matrix C. !> @param[in] !> A pointer to type. Array on the GPU of size lda*q.\n !> On entry, the Householder vectors as !> returned by \ref rocsolver_chetrd "HETRD". !> @param[in] !> lda rocblas_int. lda >= q.\n !> Leading dimension of A. !> @param[in] !> ipiv pointer to type. Array on the GPU of dimension at least q-1.\n !> The Householder scalars as returned by !> \ref rocsolver_chetrd "HETRD". !> @param[inout] !> C pointer to type. Array on the GPU of size ldc*n.\n !> On entry, the matrix C. On exit, it is overwritten with !> Q*C, C*Q, Q'*C, or C*Q'. !> @param[in] !> ldc rocblas_int. ldc >= m.\n !> Leading dimension of C. interface rocsolver_cunmtr function rocsolver_cunmtr_(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_cunmtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmtr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cunmtr_full_rank,& rocsolver_cunmtr_rank_0,& rocsolver_cunmtr_rank_1 #endif end interface interface rocsolver_zunmtr function rocsolver_zunmtr_(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) bind(c, name="rocsolver_zunmtr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmtr_ type(c_ptr),value :: handle integer(kind(rocblas_side_left)),value :: side integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zunmtr_full_rank,& rocsolver_zunmtr_rank_0,& rocsolver_zunmtr_rank_1 #endif end interface !> \brief BDSQR computes the singular value decomposition (SVD) of an !> n-by-n bidiagonal matrix B, using the implicit QR algorithm. !> !> \details !> The SVD of B has the form: !> !> \f[ !> B = QSP' !> \f] !> !> where S is the n-by-n diagonal matrix of singular values of B, the columns of Q are the left !> singular vectors of B, and the columns of P are its right singular vectors. !> !> The computation of the singular vectors is optional; this function accepts input matrices !> U (of size nu-by-n) and V (of size n-by-nv) that are overwritten with \f$UQ\f$ and \f$P'V\f$. If nu = 0 !> no left vectors are computed; if nv = 0 no right vectors are computed. !> !> Optionally, this function can also compute \f$Q'C\f$ for a given n-by-nc input matrix C. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether B is upper or lower bidiagonal. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix B. !> @param[in] !> nv rocblas_int. nv >= 0.\n !> The number of columns of matrix V. !> @param[in] !> nu rocblas_int. nu >= 0.\n !> The number of rows of matrix U. !> @param[in] !> nc rocblas_int. nu >= 0.\n !> The number of columns of matrix C. !> @param[inout] !> D pointer to real type. Array on the GPU of dimension n.\n !> On entry, the diagonal elements of B. On exit, if info = 0, !> the singular values of B in decreasing order; if info > 0, !> the diagonal elements of a bidiagonal matrix !> orthogonally equivalent to B. !> @param[inout] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> On entry, the off-diagonal elements of B. On exit, if info > 0, !> the off-diagonal elements of a bidiagonal matrix !> orthogonally equivalent to B (if info = 0 this matrix converges to zero). !> @param[inout] !> V pointer to type. Array on the GPU of dimension ldv*nv.\n !> On entry, the matrix V. On exit, it is overwritten with P'*V. !> (Not referenced if nv = 0). !> @param[in] !> ldv rocblas_int. ldv >= n if nv > 0, or ldv >=1 if nv = 0.\n !> The leading dimension of V. !> @param[inout] !> U pointer to type. Array on the GPU of dimension ldu*n.\n !> On entry, the matrix U. On exit, it is overwritten with U*Q. !> (Not referenced if nu = 0). !> @param[in] !> ldu rocblas_int. ldu >= nu.\n !> The leading dimension of U. !> @param[inout] !> C pointer to type. Array on the GPU of dimension ldc*nc.\n !> On entry, the matrix C. On exit, it is overwritten with Q'*C. !> (Not referenced if nc = 0). !> @param[in] !> ldc rocblas_int. ldc >= n if nc > 0, or ldc >=1 if nc = 0.\n !> The leading dimension of C. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, i elements of E have not converged to zero. interface rocsolver_sbdsqr function rocsolver_sbdsqr_(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) bind(c, name="rocsolver_sbdsqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sbdsqr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nv integer(c_int),value :: nu integer(c_int),value :: nc type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sbdsqr_full_rank,& rocsolver_sbdsqr_rank_0,& rocsolver_sbdsqr_rank_1 #endif end interface interface rocsolver_dbdsqr function rocsolver_dbdsqr_(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) bind(c, name="rocsolver_dbdsqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dbdsqr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nv integer(c_int),value :: nu integer(c_int),value :: nc type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dbdsqr_full_rank,& rocsolver_dbdsqr_rank_0,& rocsolver_dbdsqr_rank_1 #endif end interface interface rocsolver_cbdsqr function rocsolver_cbdsqr_(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) bind(c, name="rocsolver_cbdsqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cbdsqr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nv integer(c_int),value :: nu integer(c_int),value :: nc type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cbdsqr_full_rank,& rocsolver_cbdsqr_rank_0,& rocsolver_cbdsqr_rank_1 #endif end interface interface rocsolver_zbdsqr function rocsolver_zbdsqr_(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) bind(c, name="rocsolver_zbdsqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zbdsqr_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nv integer(c_int),value :: nu integer(c_int),value :: nc type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zbdsqr_full_rank,& rocsolver_zbdsqr_rank_0,& rocsolver_zbdsqr_rank_1 #endif end interface !> \brief STERF computes the eigenvalues of a symmetric tridiagonal matrix. !> !> \details !> The eigenvalues of the symmetric tridiagonal matrix are computed by the !> Pal-Walker-Kahan variant of the QL/QR algorithm, and returned in !> increasing order. !> !> The matrix is not represented explicitly, but rather as the array of !> diagonal elements D and the array of symmetric off-diagonal elements E. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the tridiagonal matrix. !> @param[inout] !> D pointer to real type. Array on the GPU of dimension n.\n !> On entry, the diagonal elements of the tridiagonal matrix. !> On exit, if info = 0, the eigenvalues in increasing order. !> If info > 0, the diagonal elements of a tridiagonal matrix !> that is similar to the original matrix (i.e. has the same !> eigenvalues). !> @param[inout] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> On entry, the off-diagonal elements of the tridiagonal matrix. !> On exit, if info = 0, this array converges to zero. !> If info > 0, the off-diagonal elements of a tridiagonal matrix !> that is similar to the original matrix (i.e. has the same !> eigenvalues). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, STERF did not converge. i elements of E did not !> converge to zero. !> interface rocsolver_ssterf function rocsolver_ssterf_(handle,n,D,E,myInfo) bind(c, name="rocsolver_ssterf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssterf_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssterf_rank_0,& rocsolver_ssterf_rank_1 #endif end interface interface rocsolver_dsterf function rocsolver_dsterf_(handle,n,D,E,myInfo) bind(c, name="rocsolver_dsterf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsterf_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsterf_rank_0,& rocsolver_dsterf_rank_1 #endif end interface !> \brief STEQR computes the eigenvalues and (optionally) eigenvectors of !> a symmetric tridiagonal matrix. !> !> \details !> The eigenvalues of the symmetric tridiagonal matrix are computed by the !> implicit QL/QR algorithm, and returned in increasing order. !> !> The matrix is not represented explicitly, but rather as the array of !> diagonal elements D and the array of symmetric off-diagonal elements E. !> When D and E correspond to the tridiagonal form of a full symmetric/Hermitian matrix, as returned by, e.g., !> \ref rocsolver_ssytrd "SYTRD" or \ref rocsolver_chetrd "HETRD", the eigenvectors of the original matrix can also !> be computed, depending on the value of evect. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies how the eigenvectors are computed. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the tridiagonal matrix. !> @param[inout] !> D pointer to real type. Array on the GPU of dimension n.\n !> On entry, the diagonal elements of the tridiagonal matrix. !> On exit, if info = 0, the eigenvalues in increasing order. !> If info > 0, the diagonal elements of a tridiagonal matrix !> that is similar to the original matrix (i.e. has the same !> eigenvalues). !> @param[inout] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> On entry, the off-diagonal elements of the tridiagonal matrix. !> On exit, if info = 0, this array converges to zero. !> If info > 0, the off-diagonal elements of a tridiagonal matrix !> that is similar to the original matrix (i.e. has the same !> eigenvalues). !> @param[inout] !> C pointer to type. Array on the GPU of dimension ldc*n.\n !> On entry, if evect is original, the orthogonal/unitary matrix !> used for the reduction to tridiagonal form as returned by, e.g., !> \ref rocsolver_sorgtr "ORGTR" or \ref rocsolver_cungtr "UNGTR". !> On exit, it is overwritten with the eigenvectors of the original !> symmetric/Hermitian matrix (if evect is original), or the !> eigenvectors of the tridiagonal matrix (if evect is tridiagonal). !> (Not referenced if evect is none). !> @param[in] !> ldc rocblas_int. ldc >= n if evect is original or tridiagonal.\n !> Specifies the leading dimension of C. !> (Not referenced if evect is none). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, STEQR did not converge. i elements of E did not !> converge to zero. !> interface rocsolver_ssteqr function rocsolver_ssteqr_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_ssteqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssteqr_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssteqr_full_rank,& rocsolver_ssteqr_rank_0,& rocsolver_ssteqr_rank_1 #endif end interface interface rocsolver_dsteqr function rocsolver_dsteqr_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_dsteqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsteqr_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsteqr_full_rank,& rocsolver_dsteqr_rank_0,& rocsolver_dsteqr_rank_1 #endif end interface interface rocsolver_csteqr function rocsolver_csteqr_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_csteqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csteqr_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csteqr_full_rank,& rocsolver_csteqr_rank_0,& rocsolver_csteqr_rank_1 #endif end interface interface rocsolver_zsteqr function rocsolver_zsteqr_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_zsteqr") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsteqr_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsteqr_full_rank,& rocsolver_zsteqr_rank_0,& rocsolver_zsteqr_rank_1 #endif end interface !> \brief STEDC computes the eigenvalues and (optionally) eigenvectors of !> a symmetric tridiagonal matrix. !> !> \details !> This function uses the divide and conquer method to compute the eigenvectors. !> The eigenvalues are returned in increasing order. !> !> The matrix is not represented explicitly, but rather as the array of !> diagonal elements D and the array of symmetric off-diagonal elements E. !> When D and E correspond to the tridiagonal form of a full symmetric/Hermitian matrix, as returned by, e.g., !> \ref rocsolver_ssytrd "SYTRD" or \ref rocsolver_chetrd "HETRD", the eigenvectors of the original matrix can also !> be computed, depending on the value of evect. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies how the eigenvectors are computed. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the tridiagonal matrix. !> @param[inout] !> D pointer to real type. Array on the GPU of dimension n.\n !> On entry, the diagonal elements of the tridiagonal matrix. !> On exit, if info = 0, the eigenvalues in increasing order. !> @param[inout] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> On entry, the off-diagonal elements of the tridiagonal matrix. !> On exit, if info = 0, the values of this array are destroyed. !> @param[inout] !> C pointer to type. Array on the GPU of dimension ldc*n.\n !> On entry, if evect is original, the orthogonal/unitary matrix !> used for the reduction to tridiagonal form as returned by, e.g., !> \ref rocsolver_sorgtr "ORGTR" or \ref rocsolver_cungtr "UNGTR". !> On exit, if info = 0, it is overwritten with the eigenvectors of the original !> symmetric/Hermitian matrix (if evect is original), or the !> eigenvectors of the tridiagonal matrix (if evect is tridiagonal). !> (Not referenced if evect is none). !> @param[in] !> ldc rocblas_int. ldc >= n if evect is original or tridiagonal.\n !> Specifies the leading dimension of C. (Not referenced if evect is none). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, STEDC failed to compute an eigenvalue on the sub-matrix formed by !> the rows and columns info/(n+1) through mod(info,n+1). interface rocsolver_sstedc function rocsolver_sstedc_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_sstedc") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sstedc_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sstedc_full_rank,& rocsolver_sstedc_rank_0,& rocsolver_sstedc_rank_1 #endif end interface interface rocsolver_dstedc function rocsolver_dstedc_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_dstedc") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dstedc_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dstedc_full_rank,& rocsolver_dstedc_rank_0,& rocsolver_dstedc_rank_1 #endif end interface interface rocsolver_cstedc function rocsolver_cstedc_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_cstedc") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cstedc_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cstedc_full_rank,& rocsolver_cstedc_rank_0,& rocsolver_cstedc_rank_1 #endif end interface interface rocsolver_zstedc function rocsolver_zstedc_(handle,evect,n,D,E,C,ldc,myInfo) bind(c, name="rocsolver_zstedc") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zstedc_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(c_int),value :: n type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zstedc_full_rank,& rocsolver_zstedc_rank_0,& rocsolver_zstedc_rank_1 #endif end interface !> \brief GETF2_NPVT computes the LU factorization of a general m-by-n matrix A !> without partial pivoting. !> !> \details !> (This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization has the form !> !> \f[ !> A = LU !> \f] !> !> where L is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and U is upper !> triangular (upper trapezoidal if m < n). !> !> Note: Although this routine can offer better performance, Gaussian elimination without pivoting is not backward stable. !> If numerical accuracy is compromised, use the legacy-LAPACK-like API \ref rocsolver_sgetf2 "GETF2" routines instead. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix A to be factored. !> On exit, the factors L and U from the factorization. !> The unit diagonal elements of L are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, U is singular. U[j,j] is the first zero element in the diagonal. The factorization from !> this point might be incomplete. interface rocsolver_sgetf2_npvt function rocsolver_sgetf2_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_sgetf2_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetf2_npvt_full_rank,& rocsolver_sgetf2_npvt_rank_0,& rocsolver_sgetf2_npvt_rank_1 #endif end interface interface rocsolver_dgetf2_npvt function rocsolver_dgetf2_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_dgetf2_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetf2_npvt_full_rank,& rocsolver_dgetf2_npvt_rank_0,& rocsolver_dgetf2_npvt_rank_1 #endif end interface interface rocsolver_cgetf2_npvt function rocsolver_cgetf2_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_cgetf2_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetf2_npvt_full_rank,& rocsolver_cgetf2_npvt_rank_0,& rocsolver_cgetf2_npvt_rank_1 #endif end interface interface rocsolver_zgetf2_npvt function rocsolver_zgetf2_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_zgetf2_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetf2_npvt_full_rank,& rocsolver_zgetf2_npvt_rank_0,& rocsolver_zgetf2_npvt_rank_1 #endif end interface !> \brief GETF2_NPVT_BATCHED computes the LU factorization of a batch of !> general m-by-n matrices without partial pivoting. !> !> \details !> (This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = L_iU_i !> \f] !> !> where \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> Note: Although this routine can offer better performance, Gaussian elimination without pivoting is not backward stable. !> If numerical accuracy is compromised, use the legacy-LAPACK-like API \ref rocsolver_sgetf2_batched "GETF2_BATCHED" routines instead. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorizations. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero element in the diagonal. The factorization from !> this point might be incomplete. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgetf2_npvt_batched function rocsolver_sgetf2_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_sgetf2_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetf2_npvt_batched_full_rank,& rocsolver_sgetf2_npvt_batched_rank_0,& rocsolver_sgetf2_npvt_batched_rank_1 #endif end interface interface rocsolver_dgetf2_npvt_batched function rocsolver_dgetf2_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dgetf2_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetf2_npvt_batched_full_rank,& rocsolver_dgetf2_npvt_batched_rank_0,& rocsolver_dgetf2_npvt_batched_rank_1 #endif end interface interface rocsolver_cgetf2_npvt_batched function rocsolver_cgetf2_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_cgetf2_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetf2_npvt_batched_full_rank,& rocsolver_cgetf2_npvt_batched_rank_0,& rocsolver_cgetf2_npvt_batched_rank_1 #endif end interface interface rocsolver_zgetf2_npvt_batched function rocsolver_zgetf2_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_zgetf2_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetf2_npvt_batched_full_rank,& rocsolver_zgetf2_npvt_batched_rank_0,& rocsolver_zgetf2_npvt_batched_rank_1 #endif end interface !> \brief GETF2_NPVT_STRIDED_BATCHED computes the LU factorization of a batch !> of general m-by-n matrices without partial pivoting. !> !> \details !> (This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = L_iU_i !> \f] !> !> where \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> Note: Although this routine can offer better performance, Gaussian elimination without pivoting is not backward stable. !> If numerical accuracy is compromised, use the legacy-LAPACK-like API \ref rocsolver_sgetf2_strided_batched "GETF2_STRIDED_BATCHED" routines instead. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorization. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero element in the diagonal. The factorization from !> this point might be incomplete. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgetf2_npvt_strided_batched function rocsolver_sgetf2_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_sgetf2_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetf2_npvt_strided_batched_full_rank,& rocsolver_sgetf2_npvt_strided_batched_rank_0,& rocsolver_sgetf2_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_dgetf2_npvt_strided_batched function rocsolver_dgetf2_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dgetf2_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetf2_npvt_strided_batched_full_rank,& rocsolver_dgetf2_npvt_strided_batched_rank_0,& rocsolver_dgetf2_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_cgetf2_npvt_strided_batched function rocsolver_cgetf2_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_cgetf2_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetf2_npvt_strided_batched_full_rank,& rocsolver_cgetf2_npvt_strided_batched_rank_0,& rocsolver_cgetf2_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_zgetf2_npvt_strided_batched function rocsolver_zgetf2_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_zgetf2_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetf2_npvt_strided_batched_full_rank,& rocsolver_zgetf2_npvt_strided_batched_rank_0,& rocsolver_zgetf2_npvt_strided_batched_rank_1 #endif end interface !> \brief GETRF_NPVT computes the LU factorization of a general m-by-n matrix A !> without partial pivoting. !> !> \details !> (This is the blocked Level-3-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization has the form !> !> \f[ !> A = LU !> \f] !> !> where L is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and U is upper !> triangular (upper trapezoidal if m < n). !> !> Note: Although this routine can offer better performance, Gaussian elimination without pivoting is not backward stable. !> If numerical accuracy is compromised, use the legacy-LAPACK-like API \ref rocsolver_sgetrf "GETRF" routines instead. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix A to be factored. !> On exit, the factors L and U from the factorization. !> The unit diagonal elements of L are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, U is singular. U[j,j] is the first zero element in the diagonal. The factorization from !> this point might be incomplete. interface rocsolver_sgetrf_npvt function rocsolver_sgetrf_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_sgetrf_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrf_npvt_full_rank,& rocsolver_sgetrf_npvt_rank_0,& rocsolver_sgetrf_npvt_rank_1 #endif end interface interface rocsolver_dgetrf_npvt function rocsolver_dgetrf_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_dgetrf_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrf_npvt_full_rank,& rocsolver_dgetrf_npvt_rank_0,& rocsolver_dgetrf_npvt_rank_1 #endif end interface interface rocsolver_cgetrf_npvt function rocsolver_cgetrf_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_cgetrf_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrf_npvt_full_rank,& rocsolver_cgetrf_npvt_rank_0,& rocsolver_cgetrf_npvt_rank_1 #endif end interface interface rocsolver_zgetrf_npvt function rocsolver_zgetrf_npvt_(handle,m,n,A,lda,myInfo) bind(c, name="rocsolver_zgetrf_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrf_npvt_full_rank,& rocsolver_zgetrf_npvt_rank_0,& rocsolver_zgetrf_npvt_rank_1 #endif end interface !> \brief GETRF_NPVT_BATCHED computes the LU factorization of a batch of !> general m-by-n matrices without partial pivoting. !> !> \details !> (This is the blocked Level-3-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = L_iU_i !> \f] !> !> where \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> Note: Although this routine can offer better performance, Gaussian elimination without pivoting is not backward stable. !> If numerical accuracy is compromised, use the legacy-LAPACK-like API \ref rocsolver_sgetrf_batched "GETRF_BATCHED" routines instead. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorizations. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero element in the diagonal. The factorization from !> this point might be incomplete. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetrf_npvt_batched function rocsolver_sgetrf_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_sgetrf_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrf_npvt_batched_full_rank,& rocsolver_sgetrf_npvt_batched_rank_0,& rocsolver_sgetrf_npvt_batched_rank_1 #endif end interface interface rocsolver_dgetrf_npvt_batched function rocsolver_dgetrf_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dgetrf_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrf_npvt_batched_full_rank,& rocsolver_dgetrf_npvt_batched_rank_0,& rocsolver_dgetrf_npvt_batched_rank_1 #endif end interface interface rocsolver_cgetrf_npvt_batched function rocsolver_cgetrf_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_cgetrf_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrf_npvt_batched_full_rank,& rocsolver_cgetrf_npvt_batched_rank_0,& rocsolver_cgetrf_npvt_batched_rank_1 #endif end interface interface rocsolver_zgetrf_npvt_batched function rocsolver_zgetrf_npvt_batched_(handle,m,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_zgetrf_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrf_npvt_batched_full_rank,& rocsolver_zgetrf_npvt_batched_rank_0,& rocsolver_zgetrf_npvt_batched_rank_1 #endif end interface !> \brief GETRF_NPVT_STRIDED_BATCHED computes the LU factorization of a batch !> of general m-by-n matrices without partial pivoting. !> !> \details !> (This is the blocked Level-3-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = L_iU_i !> \f] !> !> where \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> Note: Although this routine can offer better performance, Gaussian elimination without pivoting is not backward stable. !> If numerical accuracy is compromised, use the legacy-LAPACK-like API \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED" routines instead. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorization. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero element in the diagonal. The factorization from !> this point might be incomplete. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetrf_npvt_strided_batched function rocsolver_sgetrf_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_sgetrf_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrf_npvt_strided_batched_full_rank,& rocsolver_sgetrf_npvt_strided_batched_rank_0,& rocsolver_sgetrf_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_dgetrf_npvt_strided_batched function rocsolver_dgetrf_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dgetrf_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrf_npvt_strided_batched_full_rank,& rocsolver_dgetrf_npvt_strided_batched_rank_0,& rocsolver_dgetrf_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_cgetrf_npvt_strided_batched function rocsolver_cgetrf_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_cgetrf_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrf_npvt_strided_batched_full_rank,& rocsolver_cgetrf_npvt_strided_batched_rank_0,& rocsolver_cgetrf_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_zgetrf_npvt_strided_batched function rocsolver_zgetrf_npvt_strided_batched_(handle,m,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_zgetrf_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrf_npvt_strided_batched_full_rank,& rocsolver_zgetrf_npvt_strided_batched_rank_0,& rocsolver_zgetrf_npvt_strided_batched_rank_1 #endif end interface !> \brief GETF2 computes the LU factorization of a general m-by-n matrix A !> using partial pivoting with row interchanges. !> !> \details !> (This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization has the form !> !> \f[ !> A = PLU !> \f] !> !> where P is a permutation matrix, L is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and U is upper !> triangular (upper trapezoidal if m < n). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix A to be factored. !> On exit, the factors L and U from the factorization. !> The unit diagonal elements of L are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension min(m,n).\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= i <= min(m,n), the row i of the !> matrix was interchanged with row ipiv[i]. !> Matrix P of the factorization can be derived from ipiv. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, U is singular. U[j,j] is the first zero pivot. interface rocsolver_sgetf2 function rocsolver_sgetf2_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_sgetf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetf2_full_rank,& rocsolver_sgetf2_rank_0,& rocsolver_sgetf2_rank_1 #endif end interface interface rocsolver_dgetf2 function rocsolver_dgetf2_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_dgetf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetf2_full_rank,& rocsolver_dgetf2_rank_0,& rocsolver_dgetf2_rank_1 #endif end interface interface rocsolver_cgetf2 function rocsolver_cgetf2_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_cgetf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetf2_full_rank,& rocsolver_cgetf2_rank_0,& rocsolver_cgetf2_rank_1 #endif end interface interface rocsolver_zgetf2 function rocsolver_zgetf2_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_zgetf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetf2_full_rank,& rocsolver_zgetf2_rank_0,& rocsolver_zgetf2_rank_1 #endif end interface !> \brief GETF2_BATCHED computes the LU factorization of a batch of general !> m-by-n matrices using partial pivoting with row interchanges. !> !> \details !> (This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = P_iL_iU_i !> \f] !> !> where \f$P_i\f$ is a permutation matrix, \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorizations. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors of pivot indices ipiv_i (corresponding to A_i). !> Dimension of ipiv_i is min(m,n). !> Elements of ipiv_i are 1-based indices. !> For each instance A_i in the batch and for 1 <= j <= min(m,n), the row j of the !> matrix A_i was interchanged with row ipiv_i[j]. !> Matrix P_i of the factorization can be derived from ipiv_i. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= min(m,n). !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgetf2_batched function rocsolver_sgetf2_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_sgetf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetf2_batched_full_rank,& rocsolver_sgetf2_batched_rank_0,& rocsolver_sgetf2_batched_rank_1 #endif end interface interface rocsolver_dgetf2_batched function rocsolver_dgetf2_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dgetf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetf2_batched_full_rank,& rocsolver_dgetf2_batched_rank_0,& rocsolver_dgetf2_batched_rank_1 #endif end interface interface rocsolver_cgetf2_batched function rocsolver_cgetf2_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_cgetf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetf2_batched_full_rank,& rocsolver_cgetf2_batched_rank_0,& rocsolver_cgetf2_batched_rank_1 #endif end interface interface rocsolver_zgetf2_batched function rocsolver_zgetf2_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zgetf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetf2_batched_full_rank,& rocsolver_zgetf2_batched_rank_0,& rocsolver_zgetf2_batched_rank_1 #endif end interface !> \brief GETF2_STRIDED_BATCHED computes the LU factorization of a batch of !> general m-by-n matrices using partial pivoting with row interchanges. !> !> \details !> (This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = P_iL_iU_i !> \f] !> !> where \f$P_i\f$ is a permutation matrix, \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorization. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors of pivots indices ipiv_i (corresponding to A_i). !> Dimension of ipiv_i is min(m,n). !> Elements of ipiv_i are 1-based indices. !> For each instance A_i in the batch and for 1 <= j <= min(m,n), the row j of the !> matrix A_i was interchanged with row ipiv_i[j]. !> Matrix P_i of the factorization can be derived from ipiv_i. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= min(m,n). !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgetf2_strided_batched function rocsolver_sgetf2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_sgetf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetf2_strided_batched_full_rank,& rocsolver_sgetf2_strided_batched_rank_0,& rocsolver_sgetf2_strided_batched_rank_1 #endif end interface interface rocsolver_dgetf2_strided_batched function rocsolver_dgetf2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dgetf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetf2_strided_batched_full_rank,& rocsolver_dgetf2_strided_batched_rank_0,& rocsolver_dgetf2_strided_batched_rank_1 #endif end interface interface rocsolver_cgetf2_strided_batched function rocsolver_cgetf2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_cgetf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetf2_strided_batched_full_rank,& rocsolver_cgetf2_strided_batched_rank_0,& rocsolver_cgetf2_strided_batched_rank_1 #endif end interface interface rocsolver_zgetf2_strided_batched function rocsolver_zgetf2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zgetf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetf2_strided_batched_full_rank,& rocsolver_zgetf2_strided_batched_rank_0,& rocsolver_zgetf2_strided_batched_rank_1 #endif end interface !> \brief GETRF computes the LU factorization of a general m-by-n matrix A !> using partial pivoting with row interchanges. !> !> \details !> (This is the blocked Level-3-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization has the form !> !> \f[ !> A = PLU !> \f] !> !> where P is a permutation matrix, L is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and U is upper !> triangular (upper trapezoidal if m < n). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix A to be factored. !> On exit, the factors L and U from the factorization. !> The unit diagonal elements of L are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension min(m,n).\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= i <= min(m,n), the row i of the !> matrix was interchanged with row ipiv[i]. !> Matrix P of the factorization can be derived from ipiv. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, U is singular. U[j,j] is the first zero pivot. interface rocsolver_sgetrf function rocsolver_sgetrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_sgetrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrf_full_rank,& rocsolver_sgetrf_rank_0,& rocsolver_sgetrf_rank_1 #endif end interface interface rocsolver_dgetrf function rocsolver_dgetrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_dgetrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrf_full_rank,& rocsolver_dgetrf_rank_0,& rocsolver_dgetrf_rank_1 #endif end interface interface rocsolver_cgetrf function rocsolver_cgetrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_cgetrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrf_full_rank,& rocsolver_cgetrf_rank_0,& rocsolver_cgetrf_rank_1 #endif end interface interface rocsolver_zgetrf function rocsolver_zgetrf_(handle,m,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_zgetrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrf_full_rank,& rocsolver_zgetrf_rank_0,& rocsolver_zgetrf_rank_1 #endif end interface !> \brief GETRF_BATCHED computes the LU factorization of a batch of general !> m-by-n matrices using partial pivoting with row interchanges. !> !> \details !> (This is the blocked Level-3-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = P_iL_iU_i !> \f] !> !> where \f$P_i\f$ is a permutation matrix, \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorizations. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors of pivot indices ipiv_i (corresponding to A_i). !> Dimension of ipiv_i is min(m,n). !> Elements of ipiv_i are 1-based indices. !> For each instance A_i in the batch and for 1 <= j <= min(m,n), the row j of the !> matrix A_i was interchanged with row ipiv_i[j]. !> Matrix P_i of the factorization can be derived from ipiv_i. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= min(m,n). !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgetrf_batched function rocsolver_sgetrf_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_sgetrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrf_batched_full_rank,& rocsolver_sgetrf_batched_rank_0,& rocsolver_sgetrf_batched_rank_1 #endif end interface interface rocsolver_dgetrf_batched function rocsolver_dgetrf_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dgetrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrf_batched_full_rank,& rocsolver_dgetrf_batched_rank_0,& rocsolver_dgetrf_batched_rank_1 #endif end interface interface rocsolver_cgetrf_batched function rocsolver_cgetrf_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_cgetrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrf_batched_full_rank,& rocsolver_cgetrf_batched_rank_0,& rocsolver_cgetrf_batched_rank_1 #endif end interface interface rocsolver_zgetrf_batched function rocsolver_zgetrf_batched_(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zgetrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrf_batched_full_rank,& rocsolver_zgetrf_batched_rank_0,& rocsolver_zgetrf_batched_rank_1 #endif end interface !> \brief GETRF_STRIDED_BATCHED computes the LU factorization of a batch of !> general m-by-n matrices using partial pivoting with row interchanges. !> !> \details !> (This is the blocked Level-3-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls !> could be executed with mid-size matrices if optimizations are enabled (default option). For more details, see the !> "Tuning rocSOLVER performance" section of the Library Design Guide). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form !> !> \f[ !> A_i = P_iL_iU_i !> \f] !> !> where \f$P_i\f$ is a permutation matrix, \f$L_i\f$ is lower triangular with unit !> diagonal elements (lower trapezoidal if m > n), and \f$U_i\f$ is upper !> triangular (upper trapezoidal if m < n). !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_i to be factored. !> On exit, the factors L_i and U_i from the factorization. !> The unit diagonal elements of L_i are not stored. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors of pivots indices ipiv_i (corresponding to A_i). !> Dimension of ipiv_i is min(m,n). !> Elements of ipiv_i are 1-based indices. !> For each instance A_i in the batch and for 1 <= j <= min(m,n), the row j of the !> matrix A_i was interchanged with row ipiv_i[j]. !> Matrix P_i of the factorization can be derived from ipiv_i. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= min(m,n). !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, U_i is singular. U_i[j,j] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgetrf_strided_batched function rocsolver_sgetrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_sgetrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrf_strided_batched_full_rank,& rocsolver_sgetrf_strided_batched_rank_0,& rocsolver_sgetrf_strided_batched_rank_1 #endif end interface interface rocsolver_dgetrf_strided_batched function rocsolver_dgetrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dgetrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrf_strided_batched_full_rank,& rocsolver_dgetrf_strided_batched_rank_0,& rocsolver_dgetrf_strided_batched_rank_1 #endif end interface interface rocsolver_cgetrf_strided_batched function rocsolver_cgetrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_cgetrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrf_strided_batched_full_rank,& rocsolver_cgetrf_strided_batched_rank_0,& rocsolver_cgetrf_strided_batched_rank_1 #endif end interface interface rocsolver_zgetrf_strided_batched function rocsolver_zgetrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zgetrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrf_strided_batched_full_rank,& rocsolver_zgetrf_strided_batched_rank_0,& rocsolver_zgetrf_strided_batched_rank_1 #endif end interface !> \brief GEQR2 computes a QR factorization of a general m-by-n matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = Q\left[\begin{array}{c} !> R\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where R is upper triangular (upper trapezoidal if m < n), and Q is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_1H_2\cdots H_k, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R; the elements below the diagonal are the last m - i elements !> of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgeqr2 function rocsolver_sgeqr2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgeqr2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqr2_full_rank,& rocsolver_sgeqr2_rank_0,& rocsolver_sgeqr2_rank_1 #endif end interface interface rocsolver_dgeqr2 function rocsolver_dgeqr2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgeqr2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqr2_full_rank,& rocsolver_dgeqr2_rank_0,& rocsolver_dgeqr2_rank_1 #endif end interface interface rocsolver_cgeqr2 function rocsolver_cgeqr2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgeqr2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqr2_full_rank,& rocsolver_cgeqr2_rank_0,& rocsolver_cgeqr2_rank_1 #endif end interface interface rocsolver_zgeqr2 function rocsolver_zgeqr2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgeqr2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqr2_full_rank,& rocsolver_zgeqr2_rank_0,& rocsolver_zgeqr2_rank_1 #endif end interface !> \brief GEQR2_BATCHED computes the QR factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> R_j\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_k}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R_j. The elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgeqr2_batched function rocsolver_sgeqr2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeqr2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqr2_batched_full_rank,& rocsolver_sgeqr2_batched_rank_0,& rocsolver_sgeqr2_batched_rank_1 #endif end interface interface rocsolver_dgeqr2_batched function rocsolver_dgeqr2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeqr2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqr2_batched_full_rank,& rocsolver_dgeqr2_batched_rank_0,& rocsolver_dgeqr2_batched_rank_1 #endif end interface interface rocsolver_cgeqr2_batched function rocsolver_cgeqr2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeqr2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqr2_batched_full_rank,& rocsolver_cgeqr2_batched_rank_0,& rocsolver_cgeqr2_batched_rank_1 #endif end interface interface rocsolver_zgeqr2_batched function rocsolver_zgeqr2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeqr2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqr2_batched_full_rank,& rocsolver_zgeqr2_batched_rank_0,& rocsolver_zgeqr2_batched_rank_1 #endif end interface !> \brief GEQR2_STRIDED_BATCHED computes the QR factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> R_j\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_k}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R_j. The elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgeqr2_strided_batched function rocsolver_sgeqr2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeqr2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqr2_strided_batched_full_rank,& rocsolver_sgeqr2_strided_batched_rank_0,& rocsolver_sgeqr2_strided_batched_rank_1 #endif end interface interface rocsolver_dgeqr2_strided_batched function rocsolver_dgeqr2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeqr2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqr2_strided_batched_full_rank,& rocsolver_dgeqr2_strided_batched_rank_0,& rocsolver_dgeqr2_strided_batched_rank_1 #endif end interface interface rocsolver_cgeqr2_strided_batched function rocsolver_cgeqr2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeqr2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqr2_strided_batched_full_rank,& rocsolver_cgeqr2_strided_batched_rank_0,& rocsolver_cgeqr2_strided_batched_rank_1 #endif end interface interface rocsolver_zgeqr2_strided_batched function rocsolver_zgeqr2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeqr2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqr2_strided_batched_full_rank,& rocsolver_zgeqr2_strided_batched_rank_0,& rocsolver_zgeqr2_strided_batched_rank_1 #endif end interface !> \brief GERQ2 computes a RQ factorization of a general m-by-n matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = \left[\begin{array}{cc} !> 0 & R !> \end{array}\right] Q !> \f] !> !> where R is upper triangular (upper trapezoidal if m > n), and Q is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_1'H_2' \cdots H_k', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and above the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor R; the elements below the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgerq2 function rocsolver_sgerq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgerq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgerq2_full_rank,& rocsolver_sgerq2_rank_0,& rocsolver_sgerq2_rank_1 #endif end interface interface rocsolver_dgerq2 function rocsolver_dgerq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgerq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgerq2_full_rank,& rocsolver_dgerq2_rank_0,& rocsolver_dgerq2_rank_1 #endif end interface interface rocsolver_cgerq2 function rocsolver_cgerq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgerq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgerq2_full_rank,& rocsolver_cgerq2_rank_0,& rocsolver_cgerq2_rank_1 #endif end interface interface rocsolver_zgerq2 function rocsolver_zgerq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgerq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgerq2_full_rank,& rocsolver_zgerq2_rank_0,& rocsolver_zgerq2_rank_1 #endif end interface !> \brief GERQ2_BATCHED computes the RQ factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> 0 & R_j !> \end{array}\right] Q_j !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}'H_{j_2}' \cdots H_{j_k}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last n-i elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor R_j; the elements below the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgerq2_batched function rocsolver_sgerq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgerq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgerq2_batched_full_rank,& rocsolver_sgerq2_batched_rank_0,& rocsolver_sgerq2_batched_rank_1 #endif end interface interface rocsolver_dgerq2_batched function rocsolver_dgerq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgerq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgerq2_batched_full_rank,& rocsolver_dgerq2_batched_rank_0,& rocsolver_dgerq2_batched_rank_1 #endif end interface interface rocsolver_cgerq2_batched function rocsolver_cgerq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgerq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgerq2_batched_full_rank,& rocsolver_cgerq2_batched_rank_0,& rocsolver_cgerq2_batched_rank_1 #endif end interface interface rocsolver_zgerq2_batched function rocsolver_zgerq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgerq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgerq2_batched_full_rank,& rocsolver_zgerq2_batched_rank_0,& rocsolver_zgerq2_batched_rank_1 #endif end interface !> \brief GERQ2_STRIDED_BATCHED computes the RQ factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> 0 & R_j !> \end{array}\right] Q_j !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}'H_{j_2}' \cdots H_{j_k}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last n-i elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor R_j; the elements below the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgerq2_strided_batched function rocsolver_sgerq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgerq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgerq2_strided_batched_full_rank,& rocsolver_sgerq2_strided_batched_rank_0,& rocsolver_sgerq2_strided_batched_rank_1 #endif end interface interface rocsolver_dgerq2_strided_batched function rocsolver_dgerq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgerq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgerq2_strided_batched_full_rank,& rocsolver_dgerq2_strided_batched_rank_0,& rocsolver_dgerq2_strided_batched_rank_1 #endif end interface interface rocsolver_cgerq2_strided_batched function rocsolver_cgerq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgerq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgerq2_strided_batched_full_rank,& rocsolver_cgerq2_strided_batched_rank_0,& rocsolver_cgerq2_strided_batched_rank_1 #endif end interface interface rocsolver_zgerq2_strided_batched function rocsolver_zgerq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgerq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgerq2_strided_batched_full_rank,& rocsolver_zgerq2_strided_batched_rank_0,& rocsolver_zgerq2_strided_batched_rank_1 #endif end interface !> \brief GEQL2 computes a QL factorization of a general m-by-n matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = Q\left[\begin{array}{c} !> 0\newline !> !> L !> \end{array}\right] !> \f] !> !> where L is lower triangular (lower trapezoidal if m < n), and Q is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the last m-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and below the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor L; the elements above the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgeql2 function rocsolver_sgeql2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgeql2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeql2_full_rank,& rocsolver_sgeql2_rank_0,& rocsolver_sgeql2_rank_1 #endif end interface interface rocsolver_dgeql2 function rocsolver_dgeql2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgeql2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeql2_full_rank,& rocsolver_dgeql2_rank_0,& rocsolver_dgeql2_rank_1 #endif end interface interface rocsolver_cgeql2 function rocsolver_cgeql2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgeql2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeql2_full_rank,& rocsolver_cgeql2_rank_0,& rocsolver_cgeql2_rank_1 #endif end interface interface rocsolver_zgeql2 function rocsolver_zgeql2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgeql2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeql2_full_rank,& rocsolver_zgeql2_rank_0,& rocsolver_zgeql2_rank_1 #endif end interface !> \brief GEQL2_BATCHED computes the QL factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> 0\newline !> !> L_j !> \end{array}\right] !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_{j_k}H_{j_{k-1}}\cdots H_{j_1}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last m-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor L_j; the elements above the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgeql2_batched function rocsolver_sgeql2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeql2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeql2_batched_full_rank,& rocsolver_sgeql2_batched_rank_0,& rocsolver_sgeql2_batched_rank_1 #endif end interface interface rocsolver_dgeql2_batched function rocsolver_dgeql2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeql2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeql2_batched_full_rank,& rocsolver_dgeql2_batched_rank_0,& rocsolver_dgeql2_batched_rank_1 #endif end interface interface rocsolver_cgeql2_batched function rocsolver_cgeql2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeql2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeql2_batched_full_rank,& rocsolver_cgeql2_batched_rank_0,& rocsolver_cgeql2_batched_rank_1 #endif end interface interface rocsolver_zgeql2_batched function rocsolver_zgeql2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeql2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeql2_batched_full_rank,& rocsolver_zgeql2_batched_rank_0,& rocsolver_zgeql2_batched_rank_1 #endif end interface !> \brief GEQL2_STRIDED_BATCHED computes the QL factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> 0\newline !> !> L_j !> \end{array}\right] !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_{j_k}H_{j_{k-1}}\cdots H_{j_1}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last m-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor L_j; the elements above the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgeql2_strided_batched function rocsolver_sgeql2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeql2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeql2_strided_batched_full_rank,& rocsolver_sgeql2_strided_batched_rank_0,& rocsolver_sgeql2_strided_batched_rank_1 #endif end interface interface rocsolver_dgeql2_strided_batched function rocsolver_dgeql2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeql2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeql2_strided_batched_full_rank,& rocsolver_dgeql2_strided_batched_rank_0,& rocsolver_dgeql2_strided_batched_rank_1 #endif end interface interface rocsolver_cgeql2_strided_batched function rocsolver_cgeql2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeql2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeql2_strided_batched_full_rank,& rocsolver_cgeql2_strided_batched_rank_0,& rocsolver_cgeql2_strided_batched_rank_1 #endif end interface interface rocsolver_zgeql2_strided_batched function rocsolver_zgeql2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeql2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeql2_strided_batched_full_rank,& rocsolver_zgeql2_strided_batched_rank_0,& rocsolver_zgeql2_strided_batched_rank_1 #endif end interface !> \brief GELQ2 computes a LQ factorization of a general m-by-n matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = \left[\begin{array}{cc} !> L & 0 !> \end{array}\right] Q !> \f] !> !> where L is lower triangular (lower trapezoidal if m > n), and Q is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_k'H_{k-1}' \cdots H_1', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i' v_i !> \f] !> !> where the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and below the diagonal contain the !> factor L; the elements above the diagonal are the last n - i elements !> of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgelq2 function rocsolver_sgelq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgelq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgelq2_full_rank,& rocsolver_sgelq2_rank_0,& rocsolver_sgelq2_rank_1 #endif end interface interface rocsolver_dgelq2 function rocsolver_dgelq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgelq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgelq2_full_rank,& rocsolver_dgelq2_rank_0,& rocsolver_dgelq2_rank_1 #endif end interface interface rocsolver_cgelq2 function rocsolver_cgelq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgelq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgelq2_full_rank,& rocsolver_cgelq2_rank_0,& rocsolver_cgelq2_rank_1 #endif end interface interface rocsolver_zgelq2 function rocsolver_zgelq2_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgelq2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgelq2_full_rank,& rocsolver_zgelq2_rank_0,& rocsolver_zgelq2_rank_1 #endif end interface !> \brief GELQ2_BATCHED computes the LQ factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> L_j & 0 !> \end{array}\right] Q_j !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_k}'H_{j_{k-1}}' \cdots H_{j_1}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i}' v_{j_i} !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the diagonal contain the !> factor L_j. The elements above the diagonal are the last n - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgelq2_batched function rocsolver_sgelq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgelq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgelq2_batched_full_rank,& rocsolver_sgelq2_batched_rank_0,& rocsolver_sgelq2_batched_rank_1 #endif end interface interface rocsolver_dgelq2_batched function rocsolver_dgelq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgelq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgelq2_batched_full_rank,& rocsolver_dgelq2_batched_rank_0,& rocsolver_dgelq2_batched_rank_1 #endif end interface interface rocsolver_cgelq2_batched function rocsolver_cgelq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgelq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgelq2_batched_full_rank,& rocsolver_cgelq2_batched_rank_0,& rocsolver_cgelq2_batched_rank_1 #endif end interface interface rocsolver_zgelq2_batched function rocsolver_zgelq2_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgelq2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgelq2_batched_full_rank,& rocsolver_zgelq2_batched_rank_0,& rocsolver_zgelq2_batched_rank_1 #endif end interface !> \brief GELQ2_STRIDED_BATCHED computes the LQ factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> L_j & 0 !> \end{array}\right] Q_j !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_k}'H_{j_{k-1}}' \cdots H_{j_1}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i}' v_{j_i} !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the diagonal contain the !> factor L_j. The elements above the diagonal are the last n - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgelq2_strided_batched function rocsolver_sgelq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgelq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgelq2_strided_batched_full_rank,& rocsolver_sgelq2_strided_batched_rank_0,& rocsolver_sgelq2_strided_batched_rank_1 #endif end interface interface rocsolver_dgelq2_strided_batched function rocsolver_dgelq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgelq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgelq2_strided_batched_full_rank,& rocsolver_dgelq2_strided_batched_rank_0,& rocsolver_dgelq2_strided_batched_rank_1 #endif end interface interface rocsolver_cgelq2_strided_batched function rocsolver_cgelq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgelq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgelq2_strided_batched_full_rank,& rocsolver_cgelq2_strided_batched_rank_0,& rocsolver_cgelq2_strided_batched_rank_1 #endif end interface interface rocsolver_zgelq2_strided_batched function rocsolver_zgelq2_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgelq2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgelq2_strided_batched_full_rank,& rocsolver_zgelq2_strided_batched_rank_0,& rocsolver_zgelq2_strided_batched_rank_1 #endif end interface !> \brief GEQRF computes a QR factorization of a general m-by-n matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = Q\left[\begin{array}{c} !> R\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where R is upper triangular (upper trapezoidal if m < n), and Q is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_1H_2\cdots H_k, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R; the elements below the diagonal are the last m - i elements !> of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgeqrf function rocsolver_sgeqrf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgeqrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqrf_full_rank,& rocsolver_sgeqrf_rank_0,& rocsolver_sgeqrf_rank_1 #endif end interface interface rocsolver_dgeqrf function rocsolver_dgeqrf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgeqrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqrf_full_rank,& rocsolver_dgeqrf_rank_0,& rocsolver_dgeqrf_rank_1 #endif end interface interface rocsolver_cgeqrf function rocsolver_cgeqrf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgeqrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqrf_full_rank,& rocsolver_cgeqrf_rank_0,& rocsolver_cgeqrf_rank_1 #endif end interface interface rocsolver_zgeqrf function rocsolver_zgeqrf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgeqrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqrf_full_rank,& rocsolver_zgeqrf_rank_0,& rocsolver_zgeqrf_rank_1 #endif end interface !> \brief GEQRF_BATCHED computes the QR factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> R_j\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_k}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R_j. The elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgeqrf_batched function rocsolver_sgeqrf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeqrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqrf_batched_full_rank,& rocsolver_sgeqrf_batched_rank_0,& rocsolver_sgeqrf_batched_rank_1 #endif end interface interface rocsolver_dgeqrf_batched function rocsolver_dgeqrf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeqrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqrf_batched_full_rank,& rocsolver_dgeqrf_batched_rank_0,& rocsolver_dgeqrf_batched_rank_1 #endif end interface interface rocsolver_cgeqrf_batched function rocsolver_cgeqrf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeqrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqrf_batched_full_rank,& rocsolver_cgeqrf_batched_rank_0,& rocsolver_cgeqrf_batched_rank_1 #endif end interface interface rocsolver_zgeqrf_batched function rocsolver_zgeqrf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeqrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqrf_batched_full_rank,& rocsolver_zgeqrf_batched_rank_0,& rocsolver_zgeqrf_batched_rank_1 #endif end interface !> \brief GEQRF_STRIDED_BATCHED computes the QR factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> R_j\newline !> !> 0 !> \end{array}\right] !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_k}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the diagonal contain the !> factor R_j. The elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgeqrf_strided_batched function rocsolver_sgeqrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeqrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqrf_strided_batched_full_rank,& rocsolver_sgeqrf_strided_batched_rank_0,& rocsolver_sgeqrf_strided_batched_rank_1 #endif end interface interface rocsolver_dgeqrf_strided_batched function rocsolver_dgeqrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeqrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqrf_strided_batched_full_rank,& rocsolver_dgeqrf_strided_batched_rank_0,& rocsolver_dgeqrf_strided_batched_rank_1 #endif end interface interface rocsolver_cgeqrf_strided_batched function rocsolver_cgeqrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeqrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqrf_strided_batched_full_rank,& rocsolver_cgeqrf_strided_batched_rank_0,& rocsolver_cgeqrf_strided_batched_rank_1 #endif end interface interface rocsolver_zgeqrf_strided_batched function rocsolver_zgeqrf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeqrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqrf_strided_batched_full_rank,& rocsolver_zgeqrf_strided_batched_rank_0,& rocsolver_zgeqrf_strided_batched_rank_1 #endif end interface !> \brief GERQF computes a RQ factorization of a general m-by-n matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = \left[\begin{array}{cc} !> 0 & R !> \end{array}\right] Q !> \f] !> !> where R is upper triangular (upper trapezoidal if m > n), and Q is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_1'H_2' \cdots H_k', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and above the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor R; the elements below the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgerqf function rocsolver_sgerqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgerqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgerqf_full_rank,& rocsolver_sgerqf_rank_0,& rocsolver_sgerqf_rank_1 #endif end interface interface rocsolver_dgerqf function rocsolver_dgerqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgerqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgerqf_full_rank,& rocsolver_dgerqf_rank_0,& rocsolver_dgerqf_rank_1 #endif end interface interface rocsolver_cgerqf function rocsolver_cgerqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgerqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgerqf_full_rank,& rocsolver_cgerqf_rank_0,& rocsolver_cgerqf_rank_1 #endif end interface interface rocsolver_zgerqf function rocsolver_zgerqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgerqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgerqf_full_rank,& rocsolver_zgerqf_rank_0,& rocsolver_zgerqf_rank_1 #endif end interface !> \brief GERQF_BATCHED computes the RQ factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> 0 & R_j !> \end{array}\right] Q_j !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}'H_{j_2}' \cdots H_{j_k}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last n-i elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor R_j; the elements below the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgerqf_batched function rocsolver_sgerqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgerqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgerqf_batched_full_rank,& rocsolver_sgerqf_batched_rank_0,& rocsolver_sgerqf_batched_rank_1 #endif end interface interface rocsolver_dgerqf_batched function rocsolver_dgerqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgerqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgerqf_batched_full_rank,& rocsolver_dgerqf_batched_rank_0,& rocsolver_dgerqf_batched_rank_1 #endif end interface interface rocsolver_cgerqf_batched function rocsolver_cgerqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgerqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgerqf_batched_full_rank,& rocsolver_cgerqf_batched_rank_0,& rocsolver_cgerqf_batched_rank_1 #endif end interface interface rocsolver_zgerqf_batched function rocsolver_zgerqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgerqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgerqf_batched_full_rank,& rocsolver_zgerqf_batched_rank_0,& rocsolver_zgerqf_batched_rank_1 #endif end interface !> \brief GERQF_STRIDED_BATCHED computes the RQ factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> 0 & R_j !> \end{array}\right] Q_j !> \f] !> !> where \f$R_j\f$ is upper triangular (upper trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_1}'H_{j_2}' \cdots H_{j_k}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last n-i elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and above the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor R_j; the elements below the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgerqf_strided_batched function rocsolver_sgerqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgerqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgerqf_strided_batched_full_rank,& rocsolver_sgerqf_strided_batched_rank_0,& rocsolver_sgerqf_strided_batched_rank_1 #endif end interface interface rocsolver_dgerqf_strided_batched function rocsolver_dgerqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgerqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgerqf_strided_batched_full_rank,& rocsolver_dgerqf_strided_batched_rank_0,& rocsolver_dgerqf_strided_batched_rank_1 #endif end interface interface rocsolver_cgerqf_strided_batched function rocsolver_cgerqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgerqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgerqf_strided_batched_full_rank,& rocsolver_cgerqf_strided_batched_rank_0,& rocsolver_cgerqf_strided_batched_rank_1 #endif end interface interface rocsolver_zgerqf_strided_batched function rocsolver_zgerqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgerqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgerqf_strided_batched_full_rank,& rocsolver_zgerqf_strided_batched_rank_0,& rocsolver_zgerqf_strided_batched_rank_1 #endif end interface !> \brief GEQLF computes a QL factorization of a general m-by-n matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = Q\left[\begin{array}{c} !> 0\newline !> !> L !> \end{array}\right] !> \f] !> !> where L is lower triangular (lower trapezoidal if m < n), and Q is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_kH_{k-1}\cdots H_1, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i v_i' !> \f] !> !> where the last m-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and below the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor L; the elements above the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. interface rocsolver_sgeqlf function rocsolver_sgeqlf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgeqlf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqlf_full_rank,& rocsolver_sgeqlf_rank_0,& rocsolver_sgeqlf_rank_1 #endif end interface interface rocsolver_dgeqlf function rocsolver_dgeqlf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgeqlf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqlf_full_rank,& rocsolver_dgeqlf_rank_0,& rocsolver_dgeqlf_rank_1 #endif end interface interface rocsolver_cgeqlf function rocsolver_cgeqlf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgeqlf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqlf_full_rank,& rocsolver_cgeqlf_rank_0,& rocsolver_cgeqlf_rank_1 #endif end interface interface rocsolver_zgeqlf function rocsolver_zgeqlf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgeqlf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqlf_full_rank,& rocsolver_zgeqlf_rank_0,& rocsolver_zgeqlf_rank_1 #endif end interface !> \brief GEQLF_BATCHED computes the QL factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> 0\newline !> !> L_j !> \end{array}\right] !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_{j_k}H_{j_{k-1}}\cdots H_{j_1}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last m-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor L_j; the elements above the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgeqlf_batched function rocsolver_sgeqlf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeqlf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqlf_batched_full_rank,& rocsolver_sgeqlf_batched_rank_0,& rocsolver_sgeqlf_batched_rank_1 #endif end interface interface rocsolver_dgeqlf_batched function rocsolver_dgeqlf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeqlf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqlf_batched_full_rank,& rocsolver_dgeqlf_batched_rank_0,& rocsolver_dgeqlf_batched_rank_1 #endif end interface interface rocsolver_cgeqlf_batched function rocsolver_cgeqlf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeqlf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqlf_batched_full_rank,& rocsolver_cgeqlf_batched_rank_0,& rocsolver_cgeqlf_batched_rank_1 #endif end interface interface rocsolver_zgeqlf_batched function rocsolver_zgeqlf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeqlf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqlf_batched_full_rank,& rocsolver_zgeqlf_batched_rank_0,& rocsolver_zgeqlf_batched_rank_1 #endif end interface !> \brief GEQLF_STRIDED_BATCHED computes the QL factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = Q_j\left[\begin{array}{c} !> 0\newline !> !> L_j !> \end{array}\right] !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m < n), and \f$Q_j\f$ is !> a m-by-m orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_{j_k}H_{j_{k-1}}\cdots H_{j_1}, \quad \text{with} \: k = \text{min}(m,n) !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where the last m-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the (m-n)-th subdiagonal (when !> m >= n) or the (n-m)-th superdiagonal (when n > m) contain the !> factor L_j; the elements above the sub/superdiagonal are the first i - 1 !> elements of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgeqlf_strided_batched function rocsolver_sgeqlf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgeqlf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgeqlf_strided_batched_full_rank,& rocsolver_sgeqlf_strided_batched_rank_0,& rocsolver_sgeqlf_strided_batched_rank_1 #endif end interface interface rocsolver_dgeqlf_strided_batched function rocsolver_dgeqlf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgeqlf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgeqlf_strided_batched_full_rank,& rocsolver_dgeqlf_strided_batched_rank_0,& rocsolver_dgeqlf_strided_batched_rank_1 #endif end interface interface rocsolver_cgeqlf_strided_batched function rocsolver_cgeqlf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgeqlf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgeqlf_strided_batched_full_rank,& rocsolver_cgeqlf_strided_batched_rank_0,& rocsolver_cgeqlf_strided_batched_rank_1 #endif end interface interface rocsolver_zgeqlf_strided_batched function rocsolver_zgeqlf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgeqlf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgeqlf_strided_batched_full_rank,& rocsolver_zgeqlf_strided_batched_rank_0,& rocsolver_zgeqlf_strided_batched_rank_1 #endif end interface !> \brief GELQF computes a LQ factorization of a general m-by-n matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> A = \left[\begin{array}{cc} !> L & 0 !> \end{array}\right] Q !> \f] !> !> where L is lower triangular (lower trapezoidal if m > n), and Q is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q = H_k'H_{k-1}' \cdots H_1', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{ipiv}[i] \cdot v_i' v_i !> \f] !> !> where the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on and below the diagonal contain the !> factor L; the elements above the diagonal are the last n - i elements !> of Householder vector v_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars. !> interface rocsolver_sgelqf function rocsolver_sgelqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_sgelqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgelqf_full_rank,& rocsolver_sgelqf_rank_0,& rocsolver_sgelqf_rank_1 #endif end interface interface rocsolver_dgelqf function rocsolver_dgelqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_dgelqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgelqf_full_rank,& rocsolver_dgelqf_rank_0,& rocsolver_dgelqf_rank_1 #endif end interface interface rocsolver_cgelqf function rocsolver_cgelqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_cgelqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgelqf_full_rank,& rocsolver_cgelqf_rank_0,& rocsolver_cgelqf_rank_1 #endif end interface interface rocsolver_zgelqf function rocsolver_zgelqf_(handle,m,n,A,lda,ipiv) bind(c, name="rocsolver_zgelqf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgelqf_full_rank,& rocsolver_zgelqf_rank_0,& rocsolver_zgelqf_rank_1 #endif end interface !> \brief GELQF_BATCHED computes the LQ factorization of a batch of general !> m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> L_j & 0 !> \end{array}\right] Q_j !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_k}'H_{j_{k-1}}' \cdots H_{j_1}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i}' v_{j_i} !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the diagonal contain the !> factor L_j. The elements above the diagonal are the last n - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgelqf_batched function rocsolver_sgelqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgelqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgelqf_batched_full_rank,& rocsolver_sgelqf_batched_rank_0,& rocsolver_sgelqf_batched_rank_1 #endif end interface interface rocsolver_dgelqf_batched function rocsolver_dgelqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgelqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgelqf_batched_full_rank,& rocsolver_dgelqf_batched_rank_0,& rocsolver_dgelqf_batched_rank_1 #endif end interface interface rocsolver_cgelqf_batched function rocsolver_cgelqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgelqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgelqf_batched_full_rank,& rocsolver_cgelqf_batched_rank_0,& rocsolver_cgelqf_batched_rank_1 #endif end interface interface rocsolver_zgelqf_batched function rocsolver_zgelqf_batched_(handle,m,n,A,lda,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgelqf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgelqf_batched_full_rank,& rocsolver_zgelqf_batched_rank_0,& rocsolver_zgelqf_batched_rank_1 #endif end interface !> \brief GELQF_STRIDED_BATCHED computes the LQ factorization of a batch of !> general m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_j\f$ in the batch has the form !> !> \f[ !> A_j = \left[\begin{array}{cc} !> L_j & 0 !> \end{array}\right] Q_j !> \f] !> !> where \f$L_j\f$ is lower triangular (lower trapezoidal if m > n), and \f$Q_j\f$ is !> a n-by-n orthogonal/unitary matrix represented as the product of Householder matrices !> !> \f[ !> Q_j = H_{j_k}'H_{j_{k-1}}' \cdots H_{j_1}', \quad \text{with} \: k = \text{min}(m,n). !> \f] !> !> Each Householder matrices \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{ipiv}_j[i] \cdot v_{j_i}' v_{j_i} !> \f] !> !> where the first i-1 elements of Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on and below the diagonal contain the !> factor L_j. The elements above the diagonal are the last n - i elements !> of Householder vector v_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_sgelqf_strided_batched function rocsolver_sgelqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_sgelqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgelqf_strided_batched_full_rank,& rocsolver_sgelqf_strided_batched_rank_0,& rocsolver_sgelqf_strided_batched_rank_1 #endif end interface interface rocsolver_dgelqf_strided_batched function rocsolver_dgelqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_dgelqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgelqf_strided_batched_full_rank,& rocsolver_dgelqf_strided_batched_rank_0,& rocsolver_dgelqf_strided_batched_rank_1 #endif end interface interface rocsolver_cgelqf_strided_batched function rocsolver_cgelqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_cgelqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgelqf_strided_batched_full_rank,& rocsolver_cgelqf_strided_batched_rank_0,& rocsolver_cgelqf_strided_batched_rank_1 #endif end interface interface rocsolver_zgelqf_strided_batched function rocsolver_zgelqf_strided_batched_(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) bind(c, name="rocsolver_zgelqf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgelqf_strided_batched_full_rank,& rocsolver_zgelqf_strided_batched_rank_0,& rocsolver_zgelqf_strided_batched_rank_1 #endif end interface !> \brief GEBD2 computes the bidiagonal form of a general m-by-n matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The bidiagonal form is given by: !> !> \f[ !> B = Q' A P !> \f] !> !> where B is upper bidiagonal if m >= n and lower bidiagonal if m < n, and Q and !> P are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_n\: \text{and} \: P = G_1G_2\cdots G_{n-1}, & \: \text{if}\: m >= n, \:\text{or}\newline !> !> Q = H_1H_2\cdots H_{m-1}\: \text{and} \: P = G_1G_2\cdots G_{m}, & \: \text{if}\: m < n. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ and \f$G_i\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_i = I - \text{tauq}[i] \cdot v_i v_i', & \: \text{and}\newline !> !> G_i = I - \text{taup}[i] \cdot u_i' u_i. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$; !> while the first i elements of the Householder vector \f$u_i\f$ are zero, and \f$u_i[i+1] = 1\f$. !> If m < n, the first i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$; !> while the first i-1 elements of the Householder vector \f$u_i\f$ are zero, and \f$u_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n) contain the bidiagonal form B. !> If m >= n, the elements below the diagonal are the last m - i elements !> of Householder vector v_i, and the elements above the !> superdiagonal are the last n - i - 1 elements of Householder vector u_i. !> If m < n, the elements below the subdiagonal are the last m - i - 1 !> elements of Householder vector v_i, and the elements above the !> diagonal are the last n - i elements of Householder vector u_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> specifies the leading dimension of A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension min(m,n).\n !> The diagonal elements of B. !> @param[out] !> E pointer to real type. Array on the GPU of dimension min(m,n)-1.\n !> The off-diagonal elements of B. !> @param[out] !> tauq pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars associated with matrix Q. !> @param[out] !> taup pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars associated with matrix P. !> interface rocsolver_sgebd2 function rocsolver_sgebd2_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_sgebd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgebd2_full_rank,& rocsolver_sgebd2_rank_0,& rocsolver_sgebd2_rank_1 #endif end interface interface rocsolver_dgebd2 function rocsolver_dgebd2_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_dgebd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgebd2_full_rank,& rocsolver_dgebd2_rank_0,& rocsolver_dgebd2_rank_1 #endif end interface interface rocsolver_cgebd2 function rocsolver_cgebd2_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_cgebd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgebd2_full_rank,& rocsolver_cgebd2_rank_0,& rocsolver_cgebd2_rank_1 #endif end interface interface rocsolver_zgebd2 function rocsolver_zgebd2_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_zgebd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgebd2_full_rank,& rocsolver_zgebd2_rank_0,& rocsolver_zgebd2_rank_1 #endif end interface !> \brief GEBD2_BATCHED computes the bidiagonal form of a batch of general !> m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> For each instance in the batch, the bidiagonal form is given by: !> !> \f[ !> B_j = Q_j' A_j P_j !> \f] !> !> where \f$B_j\f$ is upper bidiagonal if m >= n and lower bidiagonal if m < n, and \f$Q_j\f$ and !> \f$P_j\f$ are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_n}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_{n-1}}, & \: \text{if}\: m >= n, \:\text{or}\newline !> !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{m-1}}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_m}, & \: \text{if}\: m < n. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ and \f$G_{j_i}\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_{j_i} = I - \text{tauq}_j[i] \cdot v_{j_i} v_{j_i}', & \: \text{and}\newline !> !> G_{j_i} = I - \text{taup}_j[i] \cdot u_{j_i}' u_{j_i}. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$; !> while the first i elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i+1] = 1\f$. !> If m < n, the first i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$; !> while the first i-1 elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n) contain the bidiagonal form B_j. !> If m >= n, the elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i), and the elements above the !> superdiagonal are the last n - i - 1 elements of Householder vector u_(j_i). !> If m < n, the elements below the subdiagonal are the last m - i - 1 !> elements of Householder vector v_(j_i), and the elements above the !> diagonal are the last n - i elements of Householder vector u_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of B_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= min(m,n). !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of B_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= min(m,n)-1. !> @param[out] !> tauq pointer to type. Array on the GPU (the size depends on the value of strideQ).\n !> Contains the vectors tauq_j of Householder scalars associated with matrices Q_j. !> @param[in] !> strideQ rocblas_stride.\n !> Stride from the start of one vector tauq_j to the next one tauq_(j+1). !> There is no restriction for the value !> of strideQ. Normal use is strideQ >= min(m,n). !> @param[out] !> taup pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors taup_j of Householder scalars associated with matrices P_j. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector taup_j to the next one taup_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgebd2_batched function rocsolver_sgebd2_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_sgebd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgebd2_batched_full_rank,& rocsolver_sgebd2_batched_rank_0,& rocsolver_sgebd2_batched_rank_1 #endif end interface interface rocsolver_dgebd2_batched function rocsolver_dgebd2_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_dgebd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgebd2_batched_full_rank,& rocsolver_dgebd2_batched_rank_0,& rocsolver_dgebd2_batched_rank_1 #endif end interface interface rocsolver_cgebd2_batched function rocsolver_cgebd2_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_cgebd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgebd2_batched_full_rank,& rocsolver_cgebd2_batched_rank_0,& rocsolver_cgebd2_batched_rank_1 #endif end interface interface rocsolver_zgebd2_batched function rocsolver_zgebd2_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_zgebd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgebd2_batched_full_rank,& rocsolver_zgebd2_batched_rank_0,& rocsolver_zgebd2_batched_rank_1 #endif end interface !> \brief GEBD2_STRIDED_BATCHED computes the bidiagonal form of a batch of !> general m-by-n matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> For each instance in the batch, the bidiagonal form is given by: !> !> \f[ !> B_j = Q_j' A_j P_j !> \f] !> !> where \f$B_j\f$ is upper bidiagonal if m >= n and lower bidiagonal if m < n, and \f$Q_j\f$ and !> \f$P_j\f$ are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_n}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_{n-1}}, & \: \text{if}\: m >= n, \:\text{or}\newline !> !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{m-1}}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_m}, & \: \text{if}\: m < n. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ and \f$G_{j_i}\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_{j_i} = I - \text{tauq}_j[i] \cdot v_{j_i} v_{j_i}', & \: \text{and}\newline !> !> G_{j_i} = I - \text{taup}_j[i] \cdot u_{j_i}' u_{j_i}. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$; !> while the first i elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i+1] = 1\f$. !> If m < n, the first i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$; !> while the first i-1 elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n) contain the bidiagonal form B_j. !> If m >= n, the elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i), and the elements above the !> superdiagonal are the last n - i - 1 elements of Householder vector u_(j_i). !> If m < n, the elements below the subdiagonal are the last m - i - 1 !> elements of Householder vector v_(j_i), and the elements above the !> diagonal are the last n - i elements of Householder vector u_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of B_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= min(m,n). !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of B_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= min(m,n)-1. !> @param[out] !> tauq pointer to type. Array on the GPU (the size depends on the value of strideQ).\n !> Contains the vectors tauq_j of Householder scalars associated with matrices Q_j. !> @param[in] !> strideQ rocblas_stride.\n !> Stride from the start of one vector tauq_j to the next one tauq_(j+1). !> There is no restriction for the value !> of strideQ. Normal use is strideQ >= min(m,n). !> @param[out] !> taup pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors taup_j of Householder scalars associated with matrices P_j. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector taup_j to the next one taup_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgebd2_strided_batched function rocsolver_sgebd2_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_sgebd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgebd2_strided_batched_full_rank,& rocsolver_sgebd2_strided_batched_rank_0,& rocsolver_sgebd2_strided_batched_rank_1 #endif end interface interface rocsolver_dgebd2_strided_batched function rocsolver_dgebd2_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_dgebd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgebd2_strided_batched_full_rank,& rocsolver_dgebd2_strided_batched_rank_0,& rocsolver_dgebd2_strided_batched_rank_1 #endif end interface interface rocsolver_cgebd2_strided_batched function rocsolver_cgebd2_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_cgebd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgebd2_strided_batched_full_rank,& rocsolver_cgebd2_strided_batched_rank_0,& rocsolver_cgebd2_strided_batched_rank_1 #endif end interface interface rocsolver_zgebd2_strided_batched function rocsolver_zgebd2_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_zgebd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgebd2_strided_batched_full_rank,& rocsolver_zgebd2_strided_batched_rank_0,& rocsolver_zgebd2_strided_batched_rank_1 #endif end interface !> \brief GEBRD computes the bidiagonal form of a general m-by-n matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The bidiagonal form is given by: !> !> \f[ !> B = Q' A P !> \f] !> !> where B is upper bidiagonal if m >= n and lower bidiagonal if m < n, and Q and !> P are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_n\: \text{and} \: P = G_1G_2\cdots G_{n-1}, & \: \text{if}\: m >= n, \:\text{or}\newline !> !> Q = H_1H_2\cdots H_{m-1}\: \text{and} \: P = G_1G_2\cdots G_{m}, & \: \text{if}\: m < n. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ and \f$G_i\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_i = I - \text{tauq}[i] \cdot v_i v_i', & \: \text{and}\newline !> !> G_i = I - \text{taup}[i] \cdot u_i' u_i. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$; !> while the first i elements of the Householder vector \f$u_i\f$ are zero, and \f$u_i[i+1] = 1\f$. !> If m < n, the first i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$; !> while the first i-1 elements of the Householder vector \f$u_i\f$ are zero, and \f$u_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of the matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrix to be factored. !> On exit, the elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n) contain the bidiagonal form B. !> If m >= n, the elements below the diagonal are the last m - i elements !> of Householder vector v_i, and the elements above the !> superdiagonal are the last n - i - 1 elements of Householder vector u_i. !> If m < n, the elements below the subdiagonal are the last m - i - 1 !> elements of Householder vector v_i, and the elements above the !> diagonal are the last n - i elements of Householder vector u_i. !> @param[in] !> lda rocblas_int. lda >= m.\n !> specifies the leading dimension of A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension min(m,n).\n !> The diagonal elements of B. !> @param[out] !> E pointer to real type. Array on the GPU of dimension min(m,n)-1.\n !> The off-diagonal elements of B. !> @param[out] !> tauq pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars associated with matrix Q. !> @param[out] !> taup pointer to type. Array on the GPU of dimension min(m,n).\n !> The Householder scalars associated with matrix P. !> interface rocsolver_sgebrd function rocsolver_sgebrd_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_sgebrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgebrd_full_rank,& rocsolver_sgebrd_rank_0,& rocsolver_sgebrd_rank_1 #endif end interface interface rocsolver_dgebrd function rocsolver_dgebrd_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_dgebrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgebrd_full_rank,& rocsolver_dgebrd_rank_0,& rocsolver_dgebrd_rank_1 #endif end interface interface rocsolver_cgebrd function rocsolver_cgebrd_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_cgebrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgebrd_full_rank,& rocsolver_cgebrd_rank_0,& rocsolver_cgebrd_rank_1 #endif end interface interface rocsolver_zgebrd function rocsolver_zgebrd_(handle,m,n,A,lda,D,E,tauq,taup) bind(c, name="rocsolver_zgebrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgebrd_full_rank,& rocsolver_zgebrd_rank_0,& rocsolver_zgebrd_rank_1 #endif end interface !> \brief GEBRD_BATCHED computes the bidiagonal form of a batch of general !> m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> For each instance in the batch, the bidiagonal form is given by: !> !> \f[ !> B_j = Q_j' A_j P_j !> \f] !> !> where \f$B_j\f$ is upper bidiagonal if m >= n and lower bidiagonal if m < n, and \f$Q_j\f$ and !> \f$P_j\f$ are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_n}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_{n-1}}, & \: \text{if}\: m >= n, \:\text{or}\newline !> !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{m-1}}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_m}, & \: \text{if}\: m < n. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ and \f$G_{j_i}\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_{j_i} = I - \text{tauq}_j[i] \cdot v_{j_i} v_{j_i}', & \: \text{and}\newline !> !> G_{j_i} = I - \text{taup}_j[i] \cdot u_{j_i}' u_{j_i}. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$; !> while the first i elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i+1] = 1\f$. !> If m < n, the first i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$; !> while the first i-1 elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n) contain the bidiagonal form B_j. !> If m >= n, the elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i), and the elements above the !> superdiagonal are the last n - i - 1 elements of Householder vector u_(j_i). !> If m < n, the elements below the subdiagonal are the last m - i - 1 !> elements of Householder vector v_(j_i), and the elements above the !> diagonal are the last n - i elements of Householder vector u_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of B_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= min(m,n). !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of B_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= min(m,n)-1. !> @param[out] !> tauq pointer to type. Array on the GPU (the size depends on the value of strideQ).\n !> Contains the vectors tauq_j of Householder scalars associated with matrices Q_j. !> @param[in] !> strideQ rocblas_stride.\n !> Stride from the start of one vector tauq_j to the next one tauq_(j+1). !> There is no restriction for the value !> of strideQ. Normal use is strideQ >= min(m,n). !> @param[out] !> taup pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors taup_j of Householder scalars associated with matrices P_j. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector taup_j to the next one taup_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgebrd_batched function rocsolver_sgebrd_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_sgebrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgebrd_batched_full_rank,& rocsolver_sgebrd_batched_rank_0,& rocsolver_sgebrd_batched_rank_1 #endif end interface interface rocsolver_dgebrd_batched function rocsolver_dgebrd_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_dgebrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgebrd_batched_full_rank,& rocsolver_dgebrd_batched_rank_0,& rocsolver_dgebrd_batched_rank_1 #endif end interface interface rocsolver_cgebrd_batched function rocsolver_cgebrd_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_cgebrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgebrd_batched_full_rank,& rocsolver_cgebrd_batched_rank_0,& rocsolver_cgebrd_batched_rank_1 #endif end interface interface rocsolver_zgebrd_batched function rocsolver_zgebrd_batched_(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_zgebrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgebrd_batched_full_rank,& rocsolver_zgebrd_batched_rank_0,& rocsolver_zgebrd_batched_rank_1 #endif end interface !> \brief GEBRD_STRIDED_BATCHED computes the bidiagonal form of a batch of !> general m-by-n matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> For each instance in the batch, the bidiagonal form is given by: !> !> \f[ !> B_j = Q_j' A_j P_j !> \f] !> !> where \f$B_j\f$ is upper bidiagonal if m >= n and lower bidiagonal if m < n, and \f$Q_j\f$ and !> \f$P_j\f$ are orthogonal/unitary matrices represented as the product of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_n}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_{n-1}}, & \: \text{if}\: m >= n, \:\text{or}\newline !> !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{m-1}}\: \text{and} \: P_j = G_{j_1}G_{j_2}\cdots G_{j_m}, & \: \text{if}\: m < n. !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ and \f$G_{j_i}\f$ is given by !> !> \f[ !> \begin{array}{cl} !> H_{j_i} = I - \text{tauq}_j[i] \cdot v_{j_i} v_{j_i}', & \: \text{and}\newline !> !> G_{j_i} = I - \text{taup}_j[i] \cdot u_{j_i}' u_{j_i}. !> \end{array} !> \f] !> !> If m >= n, the first i-1 elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$; !> while the first i elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i+1] = 1\f$. !> If m < n, the first i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$; !> while the first i-1 elements of the Householder vector \f$u_{j_i}\f$ are zero, and \f$u_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all the matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all the matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the m-by-n matrices A_j to be factored. !> On exit, the elements on the diagonal and superdiagonal (if m >= n), or !> subdiagonal (if m < n) contain the bidiagonal form B_j. !> If m >= n, the elements below the diagonal are the last m - i elements !> of Householder vector v_(j_i), and the elements above the !> superdiagonal are the last n - i - 1 elements of Householder vector u_(j_i). !> If m < n, the elements below the subdiagonal are the last m - i - 1 !> elements of Householder vector v_(j_i), and the elements above the !> diagonal are the last n - i elements of Householder vector u_(j_i). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of B_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= min(m,n). !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of B_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= min(m,n)-1. !> @param[out] !> tauq pointer to type. Array on the GPU (the size depends on the value of strideQ).\n !> Contains the vectors tauq_j of Householder scalars associated with matrices Q_j. !> @param[in] !> strideQ rocblas_stride.\n !> Stride from the start of one vector tauq_j to the next one tauq_(j+1). !> There is no restriction for the value !> of strideQ. Normal use is strideQ >= min(m,n). !> @param[out] !> taup pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors taup_j of Householder scalars associated with matrices P_j. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector taup_j to the next one taup_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= min(m,n). !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgebrd_strided_batched function rocsolver_sgebrd_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_sgebrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgebrd_strided_batched_full_rank,& rocsolver_sgebrd_strided_batched_rank_0,& rocsolver_sgebrd_strided_batched_rank_1 #endif end interface interface rocsolver_dgebrd_strided_batched function rocsolver_dgebrd_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_dgebrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgebrd_strided_batched_full_rank,& rocsolver_dgebrd_strided_batched_rank_0,& rocsolver_dgebrd_strided_batched_rank_1 #endif end interface interface rocsolver_cgebrd_strided_batched function rocsolver_cgebrd_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_cgebrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgebrd_strided_batched_full_rank,& rocsolver_cgebrd_strided_batched_rank_0,& rocsolver_cgebrd_strided_batched_rank_1 #endif end interface interface rocsolver_zgebrd_strided_batched function rocsolver_zgebrd_strided_batched_(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) bind(c, name="rocsolver_zgebrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE type(c_ptr),value :: tauq integer(c_int64_t),value :: strideQ type(c_ptr),value :: taup integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgebrd_strided_batched_full_rank,& rocsolver_zgebrd_strided_batched_rank_0,& rocsolver_zgebrd_strided_batched_rank_1 #endif end interface !> \brief GETRS solves a system of n linear equations on n variables in its factorized form. !> !> \details !> It solves one of the following systems, depending on the value of trans: !> !> \f[ !> \begin{array}{cl} !> A X = B & \: \text{not transposed,}\newline !> !> A^T X = B & \: \text{transposed, or}\newline !> !> A^H X = B & \: \text{conjugate transposed.} !> \end{array} !> \f] !> !> Matrix A is defined by its triangular factors as returned by \ref rocsolver_sgetrf "GETRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> trans rocblas_operation.\n !> Specifies the form of the system of equations. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of A. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of the matrix B. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> The factors L and U of the factorization A = P*L*U returned by \ref rocsolver_sgetrf "GETRF". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The pivot indices returned by \ref rocsolver_sgetrf "GETRF". !> @param[in,out] !> B pointer to type. Array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of B. !> interface rocsolver_sgetrs function rocsolver_sgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) bind(c, name="rocsolver_sgetrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrs_full_rank,& rocsolver_sgetrs_rank_0,& rocsolver_sgetrs_rank_1 #endif end interface interface rocsolver_dgetrs function rocsolver_dgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) bind(c, name="rocsolver_dgetrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrs_full_rank,& rocsolver_dgetrs_rank_0,& rocsolver_dgetrs_rank_1 #endif end interface interface rocsolver_cgetrs function rocsolver_cgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) bind(c, name="rocsolver_cgetrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrs_full_rank,& rocsolver_cgetrs_rank_0,& rocsolver_cgetrs_rank_1 #endif end interface interface rocsolver_zgetrs function rocsolver_zgetrs_(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) bind(c, name="rocsolver_zgetrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrs_full_rank,& rocsolver_zgetrs_rank_0,& rocsolver_zgetrs_rank_1 #endif end interface !> \brief GETRS_BATCHED solves a batch of systems of n linear equations on n !> variables in its factorized forms. !> !> \details !> For each instance j in the batch, it solves one of the following systems, depending on the value of trans: !> !> \f[ !> \begin{array}{cl} !> A_j X_j = B_j & \: \text{not transposed,}\newline !> !> A_j^T X_j = B_j & \: \text{transposed, or}\newline !> !> A_j^H X_j = B_j & \: \text{conjugate transposed.} !> \end{array} !> \f] !> !> Matrix \f$A_j\f$ is defined by its triangular factors as returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> trans rocblas_operation.\n !> Specifies the form of the system of equations of each instance in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> The factors L_j and U_j of the factorization A_j = P_j*L_j*U_j returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of pivot indices returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[in,out] !> B Array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_sgetrs_batched function rocsolver_sgetrs_batched_(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) bind(c, name="rocsolver_sgetrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrs_batched_full_rank,& rocsolver_sgetrs_batched_rank_0,& rocsolver_sgetrs_batched_rank_1 #endif end interface interface rocsolver_dgetrs_batched function rocsolver_dgetrs_batched_(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) bind(c, name="rocsolver_dgetrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrs_batched_full_rank,& rocsolver_dgetrs_batched_rank_0,& rocsolver_dgetrs_batched_rank_1 #endif end interface interface rocsolver_cgetrs_batched function rocsolver_cgetrs_batched_(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) bind(c, name="rocsolver_cgetrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrs_batched_full_rank,& rocsolver_cgetrs_batched_rank_0,& rocsolver_cgetrs_batched_rank_1 #endif end interface interface rocsolver_zgetrs_batched function rocsolver_zgetrs_batched_(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) bind(c, name="rocsolver_zgetrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrs_batched_full_rank,& rocsolver_zgetrs_batched_rank_0,& rocsolver_zgetrs_batched_rank_1 #endif end interface !> \brief GETRS_STRIDED_BATCHED solves a batch of systems of n linear equations !> on n variables in its factorized forms. !> !> \details !> For each instance j in the batch, it solves one of the following systems, depending on the value of trans: !> !> \f[ !> \begin{array}{cl} !> A_j X_j = B_j & \: \text{not transposed,}\newline !> !> A_j^T X_j = B_j & \: \text{transposed, or}\newline !> !> A_j^H X_j = B_j & \: \text{conjugate transposed.} !> \end{array} !> \f] !> !> Matrix \f$A_j\f$ is defined by its triangular factors as returned by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> trans rocblas_operation.\n !> Specifies the form of the system of equations of each instance in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> The factors L_j and U_j of the factorization A_j = P_j*L_j*U_j returned by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors ipiv_j of pivot indices returned by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[in,out] !> B pointer to type. Array on the GPU (size depends on the value of strideB).\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_j to the next one B_(j+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_sgetrs_strided_batched function rocsolver_sgetrs_strided_batched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) bind(c, name="rocsolver_sgetrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetrs_strided_batched_full_rank,& rocsolver_sgetrs_strided_batched_rank_0,& rocsolver_sgetrs_strided_batched_rank_1 #endif end interface interface rocsolver_dgetrs_strided_batched function rocsolver_dgetrs_strided_batched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) bind(c, name="rocsolver_dgetrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetrs_strided_batched_full_rank,& rocsolver_dgetrs_strided_batched_rank_0,& rocsolver_dgetrs_strided_batched_rank_1 #endif end interface interface rocsolver_cgetrs_strided_batched function rocsolver_cgetrs_strided_batched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) bind(c, name="rocsolver_cgetrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetrs_strided_batched_full_rank,& rocsolver_cgetrs_strided_batched_rank_0,& rocsolver_cgetrs_strided_batched_rank_1 #endif end interface interface rocsolver_zgetrs_strided_batched function rocsolver_zgetrs_strided_batched_(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) bind(c, name="rocsolver_zgetrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetrs_strided_batched_full_rank,& rocsolver_zgetrs_strided_batched_rank_0,& rocsolver_zgetrs_strided_batched_rank_1 #endif end interface !> \brief GESV solves a general system of n linear equations on n variables. !> !> \details !> The linear system is of the form !> !> \f[ !> A X = B !> \f] !> !> where A is a general n-by-n matrix. Matrix A is first factorized in triangular factors L and U !> using \ref rocsolver_sgetrf "GETRF"; then, the solution is computed with \ref rocsolver_sgetrs "GETRS". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of A. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of the matrix B. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. !> On exit, if info = 0, the factors L and U of the LU decomposition of A returned by !> \ref rocsolver_sgetrf "GETRF". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The pivot indices returned by \ref rocsolver_sgetrf "GETRF". !> @param[in,out] !> B pointer to type. Array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of B. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, U is singular, and the solution could not be computed. !> U[i,i] is the first zero element in the diagonal. !> interface rocsolver_sgesv function rocsolver_sgesv_(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="rocsolver_sgesv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgesv_full_rank,& rocsolver_sgesv_rank_0,& rocsolver_sgesv_rank_1 #endif end interface interface rocsolver_dgesv function rocsolver_dgesv_(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="rocsolver_dgesv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgesv_full_rank,& rocsolver_dgesv_rank_0,& rocsolver_dgesv_rank_1 #endif end interface interface rocsolver_cgesv function rocsolver_cgesv_(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="rocsolver_cgesv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgesv_full_rank,& rocsolver_cgesv_rank_0,& rocsolver_cgesv_rank_1 #endif end interface interface rocsolver_zgesv function rocsolver_zgesv_(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) bind(c, name="rocsolver_zgesv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgesv_full_rank,& rocsolver_zgesv_rank_0,& rocsolver_zgesv_rank_1 #endif end interface !> \brief GESV_BATCHED solves a batch of general systems of n linear equations on n !> variables. !> !> \details !> The linear systems are of the form !> !> \f[ !> A_j X_j = B_j !> \f] !> !> where \f$A_j\f$ is a general n-by-n matrix. Matrix \f$A_j\f$ is first factorized in triangular factors \f$L_j\f$ and \f$U_j\f$ !> using \ref rocsolver_sgetrf_batched "GETRF_BATCHED"; then, the solutions are computed with \ref rocsolver_sgetrs_batched "GETRS_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j. !> On exit, if info_j = 0, the factors L_j and U_j of the LU decomposition of A_j returned by !> \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> The vectors ipiv_j of pivot indices returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[in,out] !> B Array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for A_j. !> If info[i] = j > 0, U_i is singular, and the solution could not be computed. !> U_j[i,i] is the first zero element in the diagonal. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_sgesv_batched function rocsolver_sgesv_batched_(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_sgesv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgesv_batched_full_rank,& rocsolver_sgesv_batched_rank_0,& rocsolver_sgesv_batched_rank_1 #endif end interface interface rocsolver_dgesv_batched function rocsolver_dgesv_batched_(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_dgesv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgesv_batched_full_rank,& rocsolver_dgesv_batched_rank_0,& rocsolver_dgesv_batched_rank_1 #endif end interface interface rocsolver_cgesv_batched function rocsolver_cgesv_batched_(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_cgesv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgesv_batched_full_rank,& rocsolver_cgesv_batched_rank_0,& rocsolver_cgesv_batched_rank_1 #endif end interface interface rocsolver_zgesv_batched function rocsolver_zgesv_batched_(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_zgesv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgesv_batched_full_rank,& rocsolver_zgesv_batched_rank_0,& rocsolver_zgesv_batched_rank_1 #endif end interface !> \brief GESV_STRIDED_BATCHED solves a batch of general systems of n linear equations !> on n variables. !> !> \details !> The linear systems are of the form !> !> \f[ !> A_j X_j = B_j !> \f] !> !> where \f$A_j\f$ is a general n-by-n matrix. Matrix \f$A_j\f$ is first factorized in triangular factors \f$L_j\f$ and \f$U_j\f$ !> using \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED"; then, the solutions are computed with \ref rocsolver_sgetrs_strided_batched "GETRS_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j. !> On exit, if info_j = 0, the factors L_j and U_j of the LU decomposition of A_j returned by !> \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> The vectors ipiv_j of pivot indices returned by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[in,out] !> B pointer to type. Array on the GPU (size depends on the value of strideB).\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_j to the next one B_(j+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for A_j. !> If info[i] = j > 0, U_i is singular, and the solution could not be computed. !> U_j[i,i] is the first zero element in the diagonal. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_sgesv_strided_batched function rocsolver_sgesv_strided_batched_(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_sgesv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgesv_strided_batched_full_rank,& rocsolver_sgesv_strided_batched_rank_0,& rocsolver_sgesv_strided_batched_rank_1 #endif end interface interface rocsolver_dgesv_strided_batched function rocsolver_dgesv_strided_batched_(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_dgesv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgesv_strided_batched_full_rank,& rocsolver_dgesv_strided_batched_rank_0,& rocsolver_dgesv_strided_batched_rank_1 #endif end interface interface rocsolver_cgesv_strided_batched function rocsolver_cgesv_strided_batched_(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_cgesv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgesv_strided_batched_full_rank,& rocsolver_cgesv_strided_batched_rank_0,& rocsolver_cgesv_strided_batched_rank_1 #endif end interface interface rocsolver_zgesv_strided_batched function rocsolver_zgesv_strided_batched_(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_zgesv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgesv_strided_batched_full_rank,& rocsolver_zgesv_strided_batched_rank_0,& rocsolver_zgesv_strided_batched_rank_1 #endif end interface !> \brief GETRI inverts a general n-by-n matrix A using the LU factorization !> computed by \ref rocsolver_sgetrf "GETRF". !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> A^{-1}L = U^{-1} !> \f] !> !> where L is the lower triangular factor of A with unit diagonal elements, and U is the !> upper triangular factor. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the factors L and U of the factorization A = P*L*U returned by \ref rocsolver_sgetrf "GETRF". !> On exit, the inverse of A if info = 0; otherwise undefined. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The pivot indices returned by \ref rocsolver_sgetrf "GETRF". !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, U is singular. U[i,i] is the first zero pivot. !> interface rocsolver_sgetri function rocsolver_sgetri_(handle,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_sgetri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_full_rank,& rocsolver_sgetri_rank_0,& rocsolver_sgetri_rank_1 #endif end interface interface rocsolver_dgetri function rocsolver_dgetri_(handle,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_dgetri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_full_rank,& rocsolver_dgetri_rank_0,& rocsolver_dgetri_rank_1 #endif end interface interface rocsolver_cgetri function rocsolver_cgetri_(handle,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_cgetri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_full_rank,& rocsolver_cgetri_rank_0,& rocsolver_cgetri_rank_1 #endif end interface interface rocsolver_zgetri function rocsolver_zgetri_(handle,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_zgetri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_full_rank,& rocsolver_zgetri_rank_0,& rocsolver_zgetri_rank_1 #endif end interface !> \brief GETRI_BATCHED inverts a batch of general n-by-n matrices using !> the LU factorization computed by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> !> \details !> The inverse of matrix \f$A_j\f$ in the batch is computed by solving the linear system !> !> \f[ !> A_j^{-1} L_j = U_j^{-1} !> \f] !> !> where \f$L_j\f$ is the lower triangular factor of \f$A_j\f$ with unit diagonal elements, and \f$U_j\f$ is the !> upper triangular factor. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the factors L_j and U_j of the factorization A = P_j*L_j*U_j returned by !> \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> On exit, the inverses of A_j if info[j] = 0; otherwise undefined. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> The pivot indices returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(i+j). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_batched function rocsolver_sgetri_batched_(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_sgetri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_batched_full_rank,& rocsolver_sgetri_batched_rank_0,& rocsolver_sgetri_batched_rank_1 #endif end interface interface rocsolver_dgetri_batched function rocsolver_dgetri_batched_(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dgetri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_batched_full_rank,& rocsolver_dgetri_batched_rank_0,& rocsolver_dgetri_batched_rank_1 #endif end interface interface rocsolver_cgetri_batched function rocsolver_cgetri_batched_(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_cgetri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_batched_full_rank,& rocsolver_cgetri_batched_rank_0,& rocsolver_cgetri_batched_rank_1 #endif end interface interface rocsolver_zgetri_batched function rocsolver_zgetri_batched_(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zgetri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_batched_full_rank,& rocsolver_zgetri_batched_rank_0,& rocsolver_zgetri_batched_rank_1 #endif end interface !> \brief GETRI_STRIDED_BATCHED inverts a batch of general n-by-n matrices !> using the LU factorization computed by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> !> \details !> The inverse of matrix \f$A_j\f$ in the batch is computed by solving the linear system !> !> \f[ !> A_j^{-1} L_j = U_j^{-1} !> \f] !> !> where \f$L_j\f$ is the lower triangular factor of \f$A_j\f$ with unit diagonal elements, and \f$U_j\f$ is the !> upper triangular factor. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the factors L_j and U_j of the factorization A_j = P_j*L_j*U_j returned by !> \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> On exit, the inverses of A_j if info[j] = 0; otherwise undefined. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> The pivot indices returned by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_strided_batched function rocsolver_sgetri_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_sgetri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_strided_batched_full_rank,& rocsolver_sgetri_strided_batched_rank_0,& rocsolver_sgetri_strided_batched_rank_1 #endif end interface interface rocsolver_dgetri_strided_batched function rocsolver_dgetri_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dgetri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_strided_batched_full_rank,& rocsolver_dgetri_strided_batched_rank_0,& rocsolver_dgetri_strided_batched_rank_1 #endif end interface interface rocsolver_cgetri_strided_batched function rocsolver_cgetri_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_cgetri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_strided_batched_full_rank,& rocsolver_cgetri_strided_batched_rank_0,& rocsolver_cgetri_strided_batched_rank_1 #endif end interface interface rocsolver_zgetri_strided_batched function rocsolver_zgetri_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zgetri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_strided_batched_full_rank,& rocsolver_zgetri_strided_batched_rank_0,& rocsolver_zgetri_strided_batched_rank_1 #endif end interface !> \brief GETRI_NPVT inverts a general n-by-n matrix A using the LU factorization !> computed by \ref rocsolver_sgetrf_npvt "GETRF_NPVT". !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> A^{-1}L = U^{-1} !> \f] !> !> where L is the lower triangular factor of A with unit diagonal elements, and U is the !> upper triangular factor. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the factors L and U of the factorization A = L*U returned by \ref rocsolver_sgetrf_npvt "GETRF_NPVT". !> On exit, the inverse of A if info = 0; otherwise undefined. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, U is singular. U[i,i] is the first zero pivot. !> interface rocsolver_sgetri_npvt function rocsolver_sgetri_npvt_(handle,n,A,lda,myInfo) bind(c, name="rocsolver_sgetri_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_npvt_full_rank,& rocsolver_sgetri_npvt_rank_0,& rocsolver_sgetri_npvt_rank_1 #endif end interface interface rocsolver_dgetri_npvt function rocsolver_dgetri_npvt_(handle,n,A,lda,myInfo) bind(c, name="rocsolver_dgetri_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_npvt_full_rank,& rocsolver_dgetri_npvt_rank_0,& rocsolver_dgetri_npvt_rank_1 #endif end interface interface rocsolver_cgetri_npvt function rocsolver_cgetri_npvt_(handle,n,A,lda,myInfo) bind(c, name="rocsolver_cgetri_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_npvt_full_rank,& rocsolver_cgetri_npvt_rank_0,& rocsolver_cgetri_npvt_rank_1 #endif end interface interface rocsolver_zgetri_npvt function rocsolver_zgetri_npvt_(handle,n,A,lda,myInfo) bind(c, name="rocsolver_zgetri_npvt") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_npvt_full_rank,& rocsolver_zgetri_npvt_rank_0,& rocsolver_zgetri_npvt_rank_1 #endif end interface !> \brief GETRI_NPVT_BATCHED inverts a batch of general n-by-n matrices using !> the LU factorization computed by \ref rocsolver_sgetrf_npvt_batched "GETRF_NPVT_BATCHED". !> !> \details !> The inverse of matrix \f$A_j\f$ in the batch is computed by solving the linear system !> !> \f[ !> A_j^{-1} L_j = U_j^{-1} !> \f] !> !> where \f$L_j\f$ is the lower triangular factor of \f$A_j\f$ with unit diagonal elements, and \f$U_j\f$ is the !> upper triangular factor. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the factors L_j and U_j of the factorization A = L_j*U_j returned by !> \ref rocsolver_sgetrf_npvt_batched "GETRF_NPVT_BATCHED". !> On exit, the inverses of A_j if info[j] = 0; otherwise undefined. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_npvt_batched function rocsolver_sgetri_npvt_batched_(handle,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_sgetri_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_npvt_batched_full_rank,& rocsolver_sgetri_npvt_batched_rank_0,& rocsolver_sgetri_npvt_batched_rank_1 #endif end interface interface rocsolver_dgetri_npvt_batched function rocsolver_dgetri_npvt_batched_(handle,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dgetri_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_npvt_batched_full_rank,& rocsolver_dgetri_npvt_batched_rank_0,& rocsolver_dgetri_npvt_batched_rank_1 #endif end interface interface rocsolver_cgetri_npvt_batched function rocsolver_cgetri_npvt_batched_(handle,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_cgetri_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_npvt_batched_full_rank,& rocsolver_cgetri_npvt_batched_rank_0,& rocsolver_cgetri_npvt_batched_rank_1 #endif end interface interface rocsolver_zgetri_npvt_batched function rocsolver_zgetri_npvt_batched_(handle,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_zgetri_npvt_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_npvt_batched_full_rank,& rocsolver_zgetri_npvt_batched_rank_0,& rocsolver_zgetri_npvt_batched_rank_1 #endif end interface !> \brief GETRI_NPVT_STRIDED_BATCHED inverts a batch of general n-by-n matrices !> using the LU factorization computed by \ref rocsolver_sgetrf_npvt_strided_batched "GETRF_NPVT_STRIDED_BATCHED". !> !> \details !> The inverse of matrix \f$A_j\f$ in the batch is computed by solving the linear system !> !> \f[ !> A_j^{-1} L_j = U_j^{-1} !> \f] !> !> where \f$L_j\f$ is the lower triangular factor of \f$A_j\f$ with unit diagonal elements, and \f$U_j\f$ is the !> upper triangular factor. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the factors L_j and U_j of the factorization A_j = L_j*U_j returned by !> \ref rocsolver_sgetrf_npvt_strided_batched "GETRF_NPVT_STRIDED_BATCHED". !> On exit, the inverses of A_j if info[j] = 0; otherwise undefined. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_npvt_strided_batched function rocsolver_sgetri_npvt_strided_batched_(handle,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_sgetri_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_npvt_strided_batched_full_rank,& rocsolver_sgetri_npvt_strided_batched_rank_0,& rocsolver_sgetri_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_dgetri_npvt_strided_batched function rocsolver_dgetri_npvt_strided_batched_(handle,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dgetri_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_npvt_strided_batched_full_rank,& rocsolver_dgetri_npvt_strided_batched_rank_0,& rocsolver_dgetri_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_cgetri_npvt_strided_batched function rocsolver_cgetri_npvt_strided_batched_(handle,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_cgetri_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_npvt_strided_batched_full_rank,& rocsolver_cgetri_npvt_strided_batched_rank_0,& rocsolver_cgetri_npvt_strided_batched_rank_1 #endif end interface interface rocsolver_zgetri_npvt_strided_batched function rocsolver_zgetri_npvt_strided_batched_(handle,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_zgetri_npvt_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_npvt_strided_batched_full_rank,& rocsolver_zgetri_npvt_strided_batched_rank_0,& rocsolver_zgetri_npvt_strided_batched_rank_1 #endif end interface !> \brief GELS solves an overdetermined (or underdetermined) linear system defined by an m-by-n !> matrix A, and a corresponding matrix B, using the QR factorization computed by \ref rocsolver_sgeqrf "GEQRF" (or the LQ !> factorization computed by \ref rocsolver_sgelqf "GELQF"). !> !> \details !> Depending on the value of trans, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = B & \: \text{not transposed, or}\newline !> !> A' X = B & \: \text{transposed if real, or conjugate transposed if complex} !> \end{array} !> \f] !> !> If m >= n (or m < n in the case of transpose/conjugate transpose), the system is overdetermined !> and a least-squares solution approximating X is found by minimizing !> !> \f[ !> || B - A X || \quad \text{(or} \: || B - A' X ||\text{)} !> \f] !> !> If m < n (or m >= n in the case of transpose/conjugate transpose), the system is underdetermined !> and a unique solution for X is chosen such that \f$|| X ||\f$ is minimal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> trans rocblas_operation.\n !> Specifies the form of the system of equations. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of matrix A. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of columns of matrices B and X; !> i.e., the columns on the right hand side. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. !> On exit, the QR (or LQ) factorization of A as returned by \ref rocsolver_sgeqrf "GEQRF" (or \ref rocsolver_sgelqf "GELQF"). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrix A. !> @param[inout] !> B pointer to type. Array on the GPU of dimension ldb*nrhs.\n !> On entry, the matrix B. !> On exit, when info = 0, B is overwritten by the solution vectors (and the residuals in !> the overdetermined cases) stored as columns. !> @param[in] !> ldb rocblas_int. ldb >= max(m,n).\n !> Specifies the leading dimension of matrix B. !> @param[out] !> info pointer to rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, the solution could not be computed because input matrix A is !> rank deficient; the j-th diagonal element of its triangular factor is zero. !> interface rocsolver_sgels function rocsolver_sgels_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_sgels") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgels_full_rank,& rocsolver_sgels_rank_0,& rocsolver_sgels_rank_1 #endif end interface interface rocsolver_dgels function rocsolver_dgels_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_dgels") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgels_full_rank,& rocsolver_dgels_rank_0,& rocsolver_dgels_rank_1 #endif end interface interface rocsolver_cgels function rocsolver_cgels_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_cgels") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgels_full_rank,& rocsolver_cgels_rank_0,& rocsolver_cgels_rank_1 #endif end interface interface rocsolver_zgels function rocsolver_zgels_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_zgels") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgels_full_rank,& rocsolver_zgels_rank_0,& rocsolver_zgels_rank_1 #endif end interface !> \brief GELS_BATCHED solves a batch of overdetermined (or underdetermined) linear systems !> defined by a set of m-by-n matrices \f$A_i\f$, and corresponding matrices \f$B_i\f$, using the !> QR factorizations computed by \ref rocsolver_sgeqrf_batched "GEQRF_BATCHED" (or the LQ factorizations computed by \ref rocsolver_sgelqf_batched "GELQF_BATCHED"). !> !> \details !> For each instance in the batch, depending on the value of trans, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = B_i & \: \text{not transposed, or}\newline !> !> A_i' X_i = B_i & \: \text{transposed if real, or conjugate transposed if complex} !> \end{array} !> \f] !> !> If m >= n (or m < n in the case of transpose/conjugate transpose), the system is overdetermined !> and a least-squares solution approximating X_i is found by minimizing !> !> \f[ !> || B_i - A_i X_i || \quad \text{(or} \: || B_i - A_i' X_i ||\text{)} !> \f] !> !> If m < n (or m >= n in the case of transpose/conjugate transpose), the system is underdetermined !> and a unique solution for X_i is chosen such that \f$|| X_i ||\f$ is minimal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> trans rocblas_operation.\n !> Specifies the form of the system of equations. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of columns of all matrices B_i and X_i in the batch; !> i.e., the columns on the right hand side. !> @param[inout] !> A array of pointer to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i. !> On exit, the QR (or LQ) factorizations of A_i as returned by \ref rocsolver_sgeqrf_batched "GEQRF_BATCHED" (or \ref rocsolver_sgelqf_batched "GELQF_BATCHED"). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[inout] !> B array of pointer to type. Each pointer points to an array on the GPU of dimension ldb*nrhs.\n !> On entry, the matrices B_i. !> On exit, when info[i] = 0, B_i is overwritten by the solution vectors (and the residuals in !> the overdetermined cases) stored as columns. !> @param[in] !> ldb rocblas_int. ldb >= max(m,n).\n !> Specifies the leading dimension of matrices B_i. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for solution of A_i. !> If info[i] = j > 0, the solution of A_i could not be computed because input !> matrix A_i is rank deficient; the j-th diagonal element of its triangular factor is zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgels_batched function rocsolver_sgels_batched_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_sgels_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgels_batched_full_rank,& rocsolver_sgels_batched_rank_0,& rocsolver_sgels_batched_rank_1 #endif end interface interface rocsolver_dgels_batched function rocsolver_dgels_batched_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_dgels_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgels_batched_full_rank,& rocsolver_dgels_batched_rank_0,& rocsolver_dgels_batched_rank_1 #endif end interface interface rocsolver_cgels_batched function rocsolver_cgels_batched_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_cgels_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgels_batched_full_rank,& rocsolver_cgels_batched_rank_0,& rocsolver_cgels_batched_rank_1 #endif end interface interface rocsolver_zgels_batched function rocsolver_zgels_batched_(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_zgels_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgels_batched_full_rank,& rocsolver_zgels_batched_rank_0,& rocsolver_zgels_batched_rank_1 #endif end interface !> \brief GELS_STRIDED_BATCHED solves a batch of overdetermined (or underdetermined) linear !> systems defined by a set of m-by-n matrices \f$A_i\f$, and corresponding matrices \f$B_i\f$, !> using the QR factorizations computed by \ref rocsolver_sgeqrf_strided_batched "GEQRF_STRIDED_BATCHED" !> (or the LQ factorizations computed by \ref rocsolver_sgelqf_strided_batched "GELQF_STRIDED_BATCHED"). !> !> \details !> For each instance in the batch, depending on the value of trans, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = B_i & \: \text{not transposed, or}\newline !> !> A_i' X_i = B_i & \: \text{transposed if real, or conjugate transposed if complex} !> \end{array} !> \f] !> !> If m >= n (or m < n in the case of transpose/conjugate transpose), the system is overdetermined !> and a least-squares solution approximating X_i is found by minimizing !> !> \f[ !> || B_i - A_i X_i || \quad \text{(or} \: || B_i - A_i' X_i ||\text{)} !> \f] !> !> If m < n (or m >= n in the case of transpose/conjugate transpose), the system is underdetermined !> and a unique solution for X_i is chosen such that \f$|| X_i ||\f$ is minimal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> trans rocblas_operation.\n !> Specifies the form of the system of equations. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_i in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_i in the batch. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of columns of all matrices B_i and X_i in the batch; !> i.e., the columns on the right hand side. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i. !> On exit, the QR (or LQ) factorizations of A_i as returned by \ref rocsolver_sgeqrf_strided_batched "GEQRF_STRIDED_BATCHED" !> (or \ref rocsolver_sgelqf_strided_batched "GELQF_STRIDED_BATCHED"). !> @param[in] !> lda rocblas_int. lda >= m.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[inout] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> On entry, the matrices B_i. !> On exit, when info = 0, each B_i is overwritten by the solution vectors (and the residuals in !> the overdetermined cases) stored as columns. !> @param[in] !> ldb rocblas_int. ldb >= max(m,n).\n !> Specifies the leading dimension of matrices B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for solution of A_i. !> If info[i] = j > 0, the solution of A_i could not be computed because input !> matrix A_i is rank deficient; the j-th diagonal element of its triangular factor is zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgels_strided_batched function rocsolver_sgels_strided_batched_(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_sgels_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgels_strided_batched_full_rank,& rocsolver_sgels_strided_batched_rank_0,& rocsolver_sgels_strided_batched_rank_1 #endif end interface interface rocsolver_dgels_strided_batched function rocsolver_dgels_strided_batched_(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_dgels_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgels_strided_batched_full_rank,& rocsolver_dgels_strided_batched_rank_0,& rocsolver_dgels_strided_batched_rank_1 #endif end interface interface rocsolver_cgels_strided_batched function rocsolver_cgels_strided_batched_(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_cgels_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgels_strided_batched_full_rank,& rocsolver_cgels_strided_batched_rank_0,& rocsolver_cgels_strided_batched_rank_1 #endif end interface interface rocsolver_zgels_strided_batched function rocsolver_zgels_strided_batched_(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_zgels_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgels_strided_batched_full_rank,& rocsolver_zgels_strided_batched_rank_0,& rocsolver_zgels_strided_batched_rank_1 #endif end interface !> \brief POTF2 computes the Cholesky factorization of a real symmetric (complex !> Hermitian) positive definite matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form: !> !> \f[ !> \begin{array}{cl} !> A = U'U & \: \text{if uplo is upper, or}\newline !> !> A = LL' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> U is an upper triangular matrix and L is lower triangular. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A to be factored. On exit, the lower or upper triangular factor. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful factorization of matrix A. !> If info = j > 0, the leading minor of order j of A is not positive definite. !> The factorization stopped at this point. interface rocsolver_spotf2 function rocsolver_spotf2_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_spotf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotf2_full_rank,& rocsolver_spotf2_rank_0,& rocsolver_spotf2_rank_1 #endif end interface interface rocsolver_dpotf2 function rocsolver_dpotf2_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_dpotf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotf2_full_rank,& rocsolver_dpotf2_rank_0,& rocsolver_dpotf2_rank_1 #endif end interface interface rocsolver_cpotf2 function rocsolver_cpotf2_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_cpotf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotf2_full_rank,& rocsolver_cpotf2_rank_0,& rocsolver_cpotf2_rank_1 #endif end interface interface rocsolver_zpotf2 function rocsolver_zpotf2_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_zpotf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotf2_full_rank,& rocsolver_zpotf2_rank_0,& rocsolver_zpotf2_rank_1 #endif end interface !> \brief POTF2_BATCHED computes the Cholesky factorization of a !> batch of real symmetric (complex Hermitian) positive definite matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form: !> !> \f[ !> \begin{array}{cl} !> A_i = U_i'U_i & \: \text{if uplo is upper, or}\newline !> !> A_i = L_iL_i' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> \f$U_i\f$ is an upper triangular matrix and \f$L_i\f$ is lower triangular. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A_i. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i to be factored. On exit, the upper or lower triangular factors. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A_i. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful factorization of matrix A_i. !> If info[i] = j > 0, the leading minor of order j of A_i is not positive definite. !> The i-th factorization stopped at this point. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_spotf2_batched function rocsolver_spotf2_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_spotf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotf2_batched_full_rank,& rocsolver_spotf2_batched_rank_0,& rocsolver_spotf2_batched_rank_1 #endif end interface interface rocsolver_dpotf2_batched function rocsolver_dpotf2_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dpotf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotf2_batched_full_rank,& rocsolver_dpotf2_batched_rank_0,& rocsolver_dpotf2_batched_rank_1 #endif end interface interface rocsolver_cpotf2_batched function rocsolver_cpotf2_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_cpotf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotf2_batched_full_rank,& rocsolver_cpotf2_batched_rank_0,& rocsolver_cpotf2_batched_rank_1 #endif end interface interface rocsolver_zpotf2_batched function rocsolver_zpotf2_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_zpotf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotf2_batched_full_rank,& rocsolver_zpotf2_batched_rank_0,& rocsolver_zpotf2_batched_rank_1 #endif end interface !> \brief POTF2_STRIDED_BATCHED computes the Cholesky factorization of a !> batch of real symmetric (complex Hermitian) positive definite matrices. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form: !> !> \f[ !> \begin{array}{cl} !> A_i = U_i'U_i & \: \text{if uplo is upper, or}\newline !> !> A_i = L_iL_i' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> \f$U_i\f$ is an upper triangular matrix and \f$L_i\f$ is lower triangular. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A_i. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i to be factored. On exit, the upper or lower triangular factors. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful factorization of matrix A_i. !> If info[i] = j > 0, the leading minor of order j of A_i is not positive definite. !> The i-th factorization stopped at this point. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_spotf2_strided_batched function rocsolver_spotf2_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_spotf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotf2_strided_batched_full_rank,& rocsolver_spotf2_strided_batched_rank_0,& rocsolver_spotf2_strided_batched_rank_1 #endif end interface interface rocsolver_dpotf2_strided_batched function rocsolver_dpotf2_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dpotf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotf2_strided_batched_full_rank,& rocsolver_dpotf2_strided_batched_rank_0,& rocsolver_dpotf2_strided_batched_rank_1 #endif end interface interface rocsolver_cpotf2_strided_batched function rocsolver_cpotf2_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_cpotf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotf2_strided_batched_full_rank,& rocsolver_cpotf2_strided_batched_rank_0,& rocsolver_cpotf2_strided_batched_rank_1 #endif end interface interface rocsolver_zpotf2_strided_batched function rocsolver_zpotf2_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_zpotf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotf2_strided_batched_full_rank,& rocsolver_zpotf2_strided_batched_rank_0,& rocsolver_zpotf2_strided_batched_rank_1 #endif end interface !> \brief POTRF computes the Cholesky factorization of a real symmetric (complex !> Hermitian) positive definite matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form: !> !> \f[ !> \begin{array}{cl} !> A = U'U & \: \text{if uplo is upper, or}\newline !> !> A = LL' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> U is an upper triangular matrix and L is lower triangular. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A to be factored. On exit, the lower or upper triangular factor. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful factorization of matrix A. !> If info = j > 0, the leading minor of order j of A is not positive definite. !> The factorization stopped at this point. interface rocsolver_spotrf function rocsolver_spotrf_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_spotrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotrf_full_rank,& rocsolver_spotrf_rank_0,& rocsolver_spotrf_rank_1 #endif end interface interface rocsolver_dpotrf function rocsolver_dpotrf_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_dpotrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotrf_full_rank,& rocsolver_dpotrf_rank_0,& rocsolver_dpotrf_rank_1 #endif end interface interface rocsolver_cpotrf function rocsolver_cpotrf_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_cpotrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotrf_full_rank,& rocsolver_cpotrf_rank_0,& rocsolver_cpotrf_rank_1 #endif end interface interface rocsolver_zpotrf function rocsolver_zpotrf_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_zpotrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotrf_full_rank,& rocsolver_zpotrf_rank_0,& rocsolver_zpotrf_rank_1 #endif end interface !> \brief POTRF_BATCHED computes the Cholesky factorization of a !> batch of real symmetric (complex Hermitian) positive definite matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form: !> !> \f[ !> \begin{array}{cl} !> A_i = U_i'U_i & \: \text{if uplo is upper, or}\newline !> !> A_i = L_iL_i' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> \f$U_i\f$ is an upper triangular matrix and \f$L_i\f$ is lower triangular. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A_i. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i to be factored. On exit, the upper or lower triangular factors. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A_i. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful factorization of matrix A_i. !> If info[i] = j > 0, the leading minor of order j of A_i is not positive definite. !> The i-th factorization stopped at this point. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_spotrf_batched function rocsolver_spotrf_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_spotrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotrf_batched_full_rank,& rocsolver_spotrf_batched_rank_0,& rocsolver_spotrf_batched_rank_1 #endif end interface interface rocsolver_dpotrf_batched function rocsolver_dpotrf_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dpotrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotrf_batched_full_rank,& rocsolver_dpotrf_batched_rank_0,& rocsolver_dpotrf_batched_rank_1 #endif end interface interface rocsolver_cpotrf_batched function rocsolver_cpotrf_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_cpotrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotrf_batched_full_rank,& rocsolver_cpotrf_batched_rank_0,& rocsolver_cpotrf_batched_rank_1 #endif end interface interface rocsolver_zpotrf_batched function rocsolver_zpotrf_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_zpotrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotrf_batched_full_rank,& rocsolver_zpotrf_batched_rank_0,& rocsolver_zpotrf_batched_rank_1 #endif end interface !> \brief POTRF_STRIDED_BATCHED computes the Cholesky factorization of a !> batch of real symmetric (complex Hermitian) positive definite matrices. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization of matrix \f$A_i\f$ in the batch has the form: !> !> \f[ !> \begin{array}{cl} !> A_i = U_i'U_i & \: \text{if uplo is upper, or}\newline !> !> A_i = L_iL_i' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> \f$U_i\f$ is an upper triangular matrix and \f$L_i\f$ is lower triangular. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A_i. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i to be factored. On exit, the upper or lower triangular factors. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful factorization of matrix A_i. !> If info[i] = j > 0, the leading minor of order j of A_i is not positive definite. !> The i-th factorization stopped at this point. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_spotrf_strided_batched function rocsolver_spotrf_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_spotrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotrf_strided_batched_full_rank,& rocsolver_spotrf_strided_batched_rank_0,& rocsolver_spotrf_strided_batched_rank_1 #endif end interface interface rocsolver_dpotrf_strided_batched function rocsolver_dpotrf_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dpotrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotrf_strided_batched_full_rank,& rocsolver_dpotrf_strided_batched_rank_0,& rocsolver_dpotrf_strided_batched_rank_1 #endif end interface interface rocsolver_cpotrf_strided_batched function rocsolver_cpotrf_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_cpotrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotrf_strided_batched_full_rank,& rocsolver_cpotrf_strided_batched_rank_0,& rocsolver_cpotrf_strided_batched_rank_1 #endif end interface interface rocsolver_zpotrf_strided_batched function rocsolver_zpotrf_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_zpotrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotrf_strided_batched_full_rank,& rocsolver_zpotrf_strided_batched_rank_0,& rocsolver_zpotrf_strided_batched_rank_1 #endif end interface !> \brief POTRS solves a symmetric/hermitian system of n linear equations on n variables in its factorized form. !> !> \details !> It solves the system !> !> \f[ !> A X = B !> \f] !> !> where A is a real symmetric (complex hermitian) positive definite matrix defined by its triangular factor !> !> \f[ !> \begin{array}{cl} !> A = U'U & \: \text{if uplo is upper, or}\newline !> !> A = LL' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> as returned by \ref rocsolver_spotrf "POTRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of A. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of the matrix B. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> The factor L or U of the Cholesky factorization of A returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[in,out] !> B pointer to type. Array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of B. !> interface rocsolver_spotrs function rocsolver_spotrs_(handle,uplo,n,nrhs,A,lda,B,ldb) bind(c, name="rocsolver_spotrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotrs_full_rank,& rocsolver_spotrs_rank_0,& rocsolver_spotrs_rank_1 #endif end interface interface rocsolver_dpotrs function rocsolver_dpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb) bind(c, name="rocsolver_dpotrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotrs_full_rank,& rocsolver_dpotrs_rank_0,& rocsolver_dpotrs_rank_1 #endif end interface interface rocsolver_cpotrs function rocsolver_cpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb) bind(c, name="rocsolver_cpotrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotrs_full_rank,& rocsolver_cpotrs_rank_0,& rocsolver_cpotrs_rank_1 #endif end interface interface rocsolver_zpotrs function rocsolver_zpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb) bind(c, name="rocsolver_zpotrs") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotrs_full_rank,& rocsolver_zpotrs_rank_0,& rocsolver_zpotrs_rank_1 #endif end interface !> \brief POTRS_BATCHED solves a batch of symmetric/hermitian systems of n linear equations on n !> variables in its factorized forms. !> !> \details !> For each instance j in the batch, it solves the system !> !> \f[ !> A_j X_j = B_j !> \f] !> !> where \f$A_j\f$ is a real symmetric (complex hermitian) positive definite matrix defined by its !> triangular factor !> !> \f[ !> \begin{array}{cl} !> A_j = U_j'U_j & \: \text{if uplo is upper, or}\newline !> !> A_j = L_jL_j' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> as returned by \ref rocsolver_spotrf "POTRF_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> The factor L_j or U_j of the Cholesky factorization of A_j returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in,out] !> B Array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_spotrs_batched function rocsolver_spotrs_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_spotrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotrs_batched_full_rank,& rocsolver_spotrs_batched_rank_0,& rocsolver_spotrs_batched_rank_1 #endif end interface interface rocsolver_dpotrs_batched function rocsolver_dpotrs_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_dpotrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotrs_batched_full_rank,& rocsolver_dpotrs_batched_rank_0,& rocsolver_dpotrs_batched_rank_1 #endif end interface interface rocsolver_cpotrs_batched function rocsolver_cpotrs_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_cpotrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotrs_batched_full_rank,& rocsolver_cpotrs_batched_rank_0,& rocsolver_cpotrs_batched_rank_1 #endif end interface interface rocsolver_zpotrs_batched function rocsolver_zpotrs_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_zpotrs_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotrs_batched_full_rank,& rocsolver_zpotrs_batched_rank_0,& rocsolver_zpotrs_batched_rank_1 #endif end interface !> \brief POTRS_STRIDED_BATCHED solves a batch of symmetric/hermitian systems of n linear equations !> on n variables in its factorized forms. !> !> \details !> For each instance j in the batch, it solves the system !> !> \f[ !> A_j X_j = B_j !> \f] !> !> where \f$A_j\f$ is a real symmetric (complex hermitian) positive definite matrix defined by its !> triangular factor !> !> \f[ !> \begin{array}{cl} !> A_j = U_j'U_j & \: \text{if uplo is upper, or}\newline !> !> A_j = L_jL_j' & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> as returned by \ref rocsolver_spotrf "POTRF_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> The factor L_j or U_j of the Cholesky factorization of A_j returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[in,out] !> B pointer to type. Array on the GPU (size depends on the value of strideB).\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_j to the next one B_(j+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_spotrs_strided_batched function rocsolver_spotrs_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_spotrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotrs_strided_batched_full_rank,& rocsolver_spotrs_strided_batched_rank_0,& rocsolver_spotrs_strided_batched_rank_1 #endif end interface interface rocsolver_dpotrs_strided_batched function rocsolver_dpotrs_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_dpotrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotrs_strided_batched_full_rank,& rocsolver_dpotrs_strided_batched_rank_0,& rocsolver_dpotrs_strided_batched_rank_1 #endif end interface interface rocsolver_cpotrs_strided_batched function rocsolver_cpotrs_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_cpotrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotrs_strided_batched_full_rank,& rocsolver_cpotrs_strided_batched_rank_0,& rocsolver_cpotrs_strided_batched_rank_1 #endif end interface interface rocsolver_zpotrs_strided_batched function rocsolver_zpotrs_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_zpotrs_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotrs_strided_batched_full_rank,& rocsolver_zpotrs_strided_batched_rank_0,& rocsolver_zpotrs_strided_batched_rank_1 #endif end interface !> \brief POSV solves a symmetric/hermitian system of n linear equations on n variables. !> !> \details !> It solves the system !> !> \f[ !> A X = B !> \f] !> !> where A is a real symmetric (complex hermitian) positive definite matrix. Matrix A is first !> factorized as \f$A=LL'\f$ or \f$A=U'U\f$, depending on the value of uplo, using \ref rocsolver_spotrf "POTRF"; !> then, the solution is computed with \ref rocsolver_spotrs "POTRS". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of A. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of the matrix B. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the symmetric/hermitian matrix A. !> On exit, if info = 0, the factor L or U of the Cholesky factorization of A returned by !> \ref rocsolver_spotrf "POTRF". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[in,out] !> B pointer to type. Array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of B. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j > 0, the leading minor of order j of A is not positive definite. !> The solution could not be computed. !> interface rocsolver_sposv function rocsolver_sposv_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_sposv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sposv_full_rank,& rocsolver_sposv_rank_0,& rocsolver_sposv_rank_1 #endif end interface interface rocsolver_dposv function rocsolver_dposv_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_dposv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dposv_full_rank,& rocsolver_dposv_rank_0,& rocsolver_dposv_rank_1 #endif end interface interface rocsolver_cposv function rocsolver_cposv_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_cposv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cposv_full_rank,& rocsolver_cposv_rank_0,& rocsolver_cposv_rank_1 #endif end interface interface rocsolver_zposv function rocsolver_zposv_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) bind(c, name="rocsolver_zposv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zposv_full_rank,& rocsolver_zposv_rank_0,& rocsolver_zposv_rank_1 #endif end interface !> \brief POSV_BATCHED solves a batch of symmetric/hermitian systems of n linear equations on n !> variables. !> !> \details !> For each instance j in the batch, it solves the system !> !> \f[ !> A_j X_j = B_j !> \f] !> !> where \f$A_j\f$ is a real symmetric (complex hermitian) positive definite matrix. Matrix \f$A_j\f$ is first !> factorized as \f$A_j=L_jL_j'\f$ or \f$A_j=U_j'U_j\f$, depending on the value of uplo, using \ref rocsolver_spotrf_batched "POTRF_BATCHED"; !> then, the solution is computed with \ref rocsolver_spotrs_batched "POTRS_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the symmetric/hermitian matrices A_j. !> On exit, if info[j] = 0, the factor L_j or U_j of the Cholesky factorization of A_j returned by !> \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in,out] !> B Array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*nrhs.\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit. !> If info[j] = i > 0, the leading minor of order i of A_j is not positive definite. !> The j-th solution could not be computed. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_sposv_batched function rocsolver_sposv_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_sposv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sposv_batched_full_rank,& rocsolver_sposv_batched_rank_0,& rocsolver_sposv_batched_rank_1 #endif end interface interface rocsolver_dposv_batched function rocsolver_dposv_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_dposv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dposv_batched_full_rank,& rocsolver_dposv_batched_rank_0,& rocsolver_dposv_batched_rank_1 #endif end interface interface rocsolver_cposv_batched function rocsolver_cposv_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_cposv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cposv_batched_full_rank,& rocsolver_cposv_batched_rank_0,& rocsolver_cposv_batched_rank_1 #endif end interface interface rocsolver_zposv_batched function rocsolver_zposv_batched_(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) bind(c, name="rocsolver_zposv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zposv_batched_full_rank,& rocsolver_zposv_batched_rank_0,& rocsolver_zposv_batched_rank_1 #endif end interface !> \brief POSV_STRIDED_BATCHED solves a batch of symmetric/hermitian systems of n linear equations !> on n variables. !> !> \details !> For each instance j in the batch, it solves the system !> !> \f[ !> A_j X_j = B_j !> \f] !> !> where \f$A_j\f$ is a real symmetric (complex hermitian) positive definite matrix. Matrix \f$A_j\f$ is first !> factorized as \f$A_j=L_jL_j'\f$ or \f$A_j=U_j'U_j\f$, depending on the value of uplo, using \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED"; !> then, the solution is computed with \ref rocsolver_spotrs_strided_batched "POTRS_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The order of the system, i.e. the number of columns and rows of all A_j matrices. !> @param[in] !> nrhs rocblas_int. nrhs >= 0.\n !> The number of right hand sides, i.e., the number of columns !> of all the matrices B_j. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the symmetric/hermitian matrices A_j. !> On exit, if info[j] = 0, the factor L_j or U_j of the Cholesky factorization of A_j returned by !> \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[in,out] !> B pointer to type. Array on the GPU (size depends on the value of strideB).\n !> On entry, the right hand side matrices B_j. !> On exit, the solution matrix X_j of each system in the batch. !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> The leading dimension of matrices B_j. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_j to the next one B_(j+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit. !> If info[j] = i > 0, the leading minor of order i of A_j is not positive definite. !> The j-th solution could not be computed. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of instances (systems) in the batch. !> interface rocsolver_sposv_strided_batched function rocsolver_sposv_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_sposv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sposv_strided_batched_full_rank,& rocsolver_sposv_strided_batched_rank_0,& rocsolver_sposv_strided_batched_rank_1 #endif end interface interface rocsolver_dposv_strided_batched function rocsolver_dposv_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_dposv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dposv_strided_batched_full_rank,& rocsolver_dposv_strided_batched_rank_0,& rocsolver_dposv_strided_batched_rank_1 #endif end interface interface rocsolver_cposv_strided_batched function rocsolver_cposv_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_cposv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cposv_strided_batched_full_rank,& rocsolver_cposv_strided_batched_rank_0,& rocsolver_cposv_strided_batched_rank_1 #endif end interface interface rocsolver_zposv_strided_batched function rocsolver_zposv_strided_batched_(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) bind(c, name="rocsolver_zposv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zposv_strided_batched_full_rank,& rocsolver_zposv_strided_batched_rank_0,& rocsolver_zposv_strided_batched_rank_1 #endif end interface !> \brief POTRI inverts a symmetric/hermitian positive definite matrix A. !> !> \details !> The inverse of matrix \f$A\f$ is computed as !> !> \f[ !> \begin{array}{cl} !> A^{-1} = U^{-1} {U^{-1}}' & \: \text{if uplo is upper, or}\newline !> !> A^{-1} = {L^{-1}}' L^{-1} & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> where \f$U\f$ or \f$L\f$ is the triangular factor of the Cholesky factorization of \f$A\f$ returned by !> \ref rocsolver_spotrf "POTRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the factor L or U of the Cholesky factorization of A returned by !> \ref rocsolver_spotrf "POTRF". !> On exit, the inverses of A if info = 0. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit for inversion of A. !> If info = j > 0, A is singular. L[j,j] or U[j,j] is zero. interface rocsolver_spotri function rocsolver_spotri_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_spotri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotri_full_rank,& rocsolver_spotri_rank_0,& rocsolver_spotri_rank_1 #endif end interface interface rocsolver_dpotri function rocsolver_dpotri_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_dpotri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotri_full_rank,& rocsolver_dpotri_rank_0,& rocsolver_dpotri_rank_1 #endif end interface interface rocsolver_cpotri function rocsolver_cpotri_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_cpotri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotri_full_rank,& rocsolver_cpotri_rank_0,& rocsolver_cpotri_rank_1 #endif end interface interface rocsolver_zpotri function rocsolver_zpotri_(handle,uplo,n,A,lda,myInfo) bind(c, name="rocsolver_zpotri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotri_full_rank,& rocsolver_zpotri_rank_0,& rocsolver_zpotri_rank_1 #endif end interface !> \brief POTRI_BATCHED inverts a batch of symmetric/hermitian positive definite matrices \f$A_i\f$. !> !> \details !> The inverse of matrix \f$A_i\f$ in the batch is computed as !> !> \f[ !> \begin{array}{cl} !> A_i^{-1} = U_i^{-1} {U_i^{-1}}' & \: \text{if uplo is upper, or}\newline !> !> A_i^{-1} = {L_i^{-1}}' L_i^{-1} & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> where \f$U_i\f$ or \f$L_i\f$ is the triangular factor of the Cholesky factorization of \f$A_i\f$ returned by !> \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A_i. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the factor L_i or U_i of the Cholesky factorization of A_i returned by !> \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> On exit, the inverses of A_i if info[i] = 0. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A_i. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for inversion of A_i. !> If info[i] = j > 0, A_i is singular. L_i[j,j] or U_i[j,j] is zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_spotri_batched function rocsolver_spotri_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_spotri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotri_batched_full_rank,& rocsolver_spotri_batched_rank_0,& rocsolver_spotri_batched_rank_1 #endif end interface interface rocsolver_dpotri_batched function rocsolver_dpotri_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dpotri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotri_batched_full_rank,& rocsolver_dpotri_batched_rank_0,& rocsolver_dpotri_batched_rank_1 #endif end interface interface rocsolver_cpotri_batched function rocsolver_cpotri_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_cpotri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotri_batched_full_rank,& rocsolver_cpotri_batched_rank_0,& rocsolver_cpotri_batched_rank_1 #endif end interface interface rocsolver_zpotri_batched function rocsolver_zpotri_batched_(handle,uplo,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_zpotri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotri_batched_full_rank,& rocsolver_zpotri_batched_rank_0,& rocsolver_zpotri_batched_rank_1 #endif end interface !> \brief POTRI_STRIDED_BATCHED inverts a batch of symmetric/hermitian positive definite matrices \f$A_i\f$. !> !> \details !> The inverse of matrix \f$A_i\f$ in the batch is computed as !> !> \f[ !> \begin{array}{cl} !> A_i^{-1} = U_i^{-1} {U_i^{-1}}' & \: \text{if uplo is upper, or}\newline !> !> A_i^{-1} = {L_i^{-1}}' L_i^{-1} & \: \text{if uplo is lower.} !> \end{array} !> \f] !> !> where \f$U_i\f$ or \f$L_i\f$ is the triangular factor of the Cholesky factorization of \f$A_i\f$ returned by !> \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the factorization is upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of matrix A_i. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the factor L_i or U_i of the Cholesky factorization of A_i returned by !> \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> On exit, the inverses of A_i if info[i] = 0. !> @param[in] !> lda rocblas_int. lda >= n.\n !> specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for inversion of A_i. !> If info[i] = j > 0, A_i is singular. L_i[j,j] or U_i[j,j] is zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_spotri_strided_batched function rocsolver_spotri_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_spotri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_spotri_strided_batched_full_rank,& rocsolver_spotri_strided_batched_rank_0,& rocsolver_spotri_strided_batched_rank_1 #endif end interface interface rocsolver_dpotri_strided_batched function rocsolver_dpotri_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dpotri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dpotri_strided_batched_full_rank,& rocsolver_dpotri_strided_batched_rank_0,& rocsolver_dpotri_strided_batched_rank_1 #endif end interface interface rocsolver_cpotri_strided_batched function rocsolver_cpotri_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_cpotri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cpotri_strided_batched_full_rank,& rocsolver_cpotri_strided_batched_rank_0,& rocsolver_cpotri_strided_batched_rank_1 #endif end interface interface rocsolver_zpotri_strided_batched function rocsolver_zpotri_strided_batched_(handle,uplo,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_zpotri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zpotri_strided_batched_full_rank,& rocsolver_zpotri_strided_batched_rank_0,& rocsolver_zpotri_strided_batched_rank_1 #endif end interface !> \brief GESVD computes the singular values and optionally the singular !> vectors of a general m-by-n matrix A (Singular Value Decomposition). !> !> \details !> The SVD of matrix A is given by: !> !> \f[ !> A = U S V' !> \f] !> !> where the m-by-n matrix S is zero except, possibly, for its min(m,n) !> diagonal elements, which are the singular values of A. U and V are orthogonal !> (unitary) matrices. The first min(m,n) columns of U and V are the left and !> right singular vectors of A, respectively. !> !> The computation of the singular vectors is optional and it is controlled by !> the function arguments left_svect and right_svect as described below. When !> computed, this function returns the transpose (or transpose conjugate) of the !> right singular vectors, i.e. the rows of V'. !> !> left_svect and right_svect are rocblas_svect enums that can take the !> following values: !> !> - rocblas_svect_all: the entire matrix U (or V') is computed, !> - rocblas_svect_singular: only the singular vectors (first min(m,n) !> columns of U or rows of V') are computed, !> - rocblas_svect_overwrite: the first !> columns (or rows) of A are overwritten with the singular vectors, or !> - rocblas_svect_none: no columns (or rows) of U (or V') are computed, i.e. !> no singular vectors. !> !> left_svect and right_svect cannot both be set to overwrite. When neither is !> set to overwrite, the contents of A are destroyed by the time the function !> returns. !> !> \note !> When m >> n (or n >> m) the algorithm could be sped up by compressing !> the matrix A via a QR (or LQ) factorization, and working with the triangular !> factor afterwards (thin-SVD). If the singular vectors are also requested, its !> computation could be sped up as well via executing some intermediate !> operations out-of-place, and relying more on matrix multiplications (GEMMs); !> this will require, however, a larger memory workspace. The parameter fast_alg !> controls whether the fast algorithm is executed or not. For more details, see !> the "Tuning rocSOLVER performance" and "Memory model" sections of the documentation. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> left_svect rocblas_svect.\n !> Specifies how the left singular vectors are computed. !> @param[in] !> right_svect rocblas_svect.\n !> Specifies how the right singular vectors are computed. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of matrix A. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. !> On exit, if left_svect (or right_svect) is equal to overwrite, !> the first columns (or rows) contain the left (or right) singular vectors; !> otherwise, the contents of A are destroyed. !> @param[in] !> lda rocblas_int. lda >= m.\n !> The leading dimension of A. !> @param[out] !> S pointer to real type. Array on the GPU of dimension min(m,n). \n !> The singular values of A in decreasing order. !> @param[out] !> U pointer to type. Array on the GPU of dimension ldu*min(m,n) if !> left_svect is set to singular, or ldu*m when left_svect is equal to all.\n !> The matrix of left singular vectors stored as columns. Not !> referenced if left_svect is set to overwrite or none. !> @param[in] !> ldu rocblas_int. ldu >= m if left_svect is all or singular; ldu >= 1 otherwise.\n !> The leading dimension of U. !> @param[out] !> V pointer to type. Array on the GPU of dimension ldv*n. \n !> The matrix of right singular vectors stored as rows (transposed conjugate-transposed). !> Not referenced if right_svect is set to overwrite or none. !> @param[in] !> ldv rocblas_int. ldv >= n if right_svect is all; ldv >= min(m,n) if right_svect is !> set to singular; or ldv >= 1 otherwise.\n The leading dimension of V. !> @param[out] !> E pointer to real type. Array on the GPU of dimension min(m,n)-1.\n !> This array is used to work internally with the bidiagonal matrix !> B associated with A (using \ref rocsolver_sbdsqr "BDSQR"). On exit, if info > 0, it contains the !> unconverged off-diagonal elements of B (or properly speaking, a bidiagonal !> matrix orthogonally equivalent to B). The diagonal elements of this matrix !> are in S; those that converged correspond to a subset of the singular values !> of A (not necessarily ordered). !> @param[in] !> fast_alg rocblas_workmode. \n !> If set to rocblas_outofplace, the function will execute the !> fast thin-SVD version of the algorithm when possible. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, \ref rocsolver_sbdsqr "BDSQR" did not converge. i elements of E did not converge to zero. !> interface rocsolver_sgesvd function rocsolver_sgesvd_(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) bind(c, name="rocsolver_sgesvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: E integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgesvd_full_rank,& rocsolver_sgesvd_rank_0,& rocsolver_sgesvd_rank_1 #endif end interface interface rocsolver_dgesvd function rocsolver_dgesvd_(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) bind(c, name="rocsolver_dgesvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: E integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgesvd_full_rank,& rocsolver_dgesvd_rank_0,& rocsolver_dgesvd_rank_1 #endif end interface interface rocsolver_cgesvd function rocsolver_cgesvd_(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) bind(c, name="rocsolver_cgesvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: E integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgesvd_full_rank,& rocsolver_cgesvd_rank_0,& rocsolver_cgesvd_rank_1 #endif end interface interface rocsolver_zgesvd function rocsolver_zgesvd_(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) bind(c, name="rocsolver_zgesvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: E integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgesvd_full_rank,& rocsolver_zgesvd_rank_0,& rocsolver_zgesvd_rank_1 #endif end interface !> \brief GESVD_BATCHED computes the singular values and optionally the !> singular vectors of a batch of general m-by-n matrix A (Singular Value !> Decomposition). !> !> \details !> The SVD of matrix A_j in the batch is given by: !> !> \f[ !> A_j = U_j S_j V_j' !> \f] !> !> where the m-by-n matrix \f$S_j\f$ is zero except, possibly, for its min(m,n) !> diagonal elements, which are the singular values of \f$A_j\f$. \f$U_j\f$ and \f$V_j\f$ are !> orthogonal (unitary) matrices. The first min(m,n) columns of \f$U_j\f$ and \f$V_j\f$ are !> the left and right singular vectors of \f$A_j\f$, respectively. !> !> The computation of the singular vectors is optional and it is controlled by !> the function arguments left_svect and right_svect as described below. When !> computed, this function returns the transpose (or transpose conjugate) of the !> right singular vectors, i.e. the rows of \f$V_j'\f$. !> !> left_svect and right_svect are rocblas_svect enums that can take the !> following values: !> !> - rocblas_svect_all: the entire matrix \f$U_j\f$ (or \f$V_j'\f$) is computed, !> - rocblas_svect_singular: only the singular vectors (first min(m,n) !> columns of \f$U_j\f$ or rows of \f$V_j'\f$) are computed, !> - rocblas_svect_overwrite: the !> first columns (or rows) of \f$A_j\f$ are overwritten with the singular vectors, or !> - rocblas_svect_none: no columns (or rows) of \f$U_j\f$ (or \f$V_j'\f$) are computed, !> i.e. no singular vectors. !> !> left_svect and right_svect cannot both be set to overwrite. When neither is !> set to overwrite, the contents of \f$A_j\f$ are destroyed by the time the function !> returns. !> !> \note !> When m >> n (or n >> m) the algorithm could be sped up by compressing !> the matrix \f$A_j\f$ via a QR (or LQ) factorization, and working with the !> triangular factor afterwards (thin-SVD). If the singular vectors are also !> requested, its computation could be sped up as well via executing some !> intermediate operations out-of-place, and relying more on matrix !> multiplications (GEMMs); this will require, however, a larger memory !> workspace. The parameter fast_alg controls whether the fast algorithm is !> executed or not. For more details, see the "Tuning rocSOLVER performance" !> and "Memory model" sections of the documentation. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> left_svect rocblas_svect.\n !> Specifies how the left singular vectors are computed. !> @param[in] !> right_svect rocblas_svect.\n !> Specifies how the right singular vectors are computed. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_j in the batch. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on !> the GPU of dimension lda*n.\n !> On entry, the matrices A_j. !> On exit, if left_svect (or right_svect) is equal to overwrite, !> the first columns (or rows) of A_j contain the left (or right) !> corresponding singular vectors; otherwise, the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= m.\n !> The leading dimension of A_j. !> @param[out] !> S pointer to real type. Array on the GPU (the size depends on the value of strideS).\n !> The singular values of A_j in decreasing order. !> @param[in] !> strideS rocblas_stride.\n !> Stride from the start of one vector S_j to the next one S_(j+1). !> There is no restriction for the value of strideS. !> Normal use case is strideS >= min(m,n). !> @param[out] !> U pointer to type. Array on the GPU (the side depends on the value of strideU). \n !> The matrices U_j of left singular vectors stored as columns. !> Not referenced if left_svect is set to overwrite or none. !> @param[in] !> ldu rocblas_int. ldu >= m if left_svect is all or singular; ldu >= 1 otherwise.\n !> The leading dimension of U_j. !> @param[in] !> strideU rocblas_stride.\n !> Stride from the start of one matrix U_j to the next one U_(j+1). !> There is no restriction for the value of strideU. !> Normal use case is strideU >= ldu*min(m,n) if left_svect is set to singular, !> or strideU >= ldu*m when left_svect is equal to all. !> @param[out] !> V pointer to type. Array on the GPU (the size depends on the value of strideV). \n !> The matrices V_j of right singular vectors stored as rows (transposed conjugate-transposed). !> Not referenced if right_svect is set to overwrite or none. !> @param[in] !> ldv rocblas_int. ldv >= n if right_svect is all; ldv >= min(m,n) if !> right_svect is set to singular; or ldv >= 1 otherwise.\n !> The leading dimension of V. !> @param[in] !> strideV rocblas_stride.\n !> Stride from the start of one matrix V_j to the next one V_(j+1). !> There is no restriction for the value of strideV. !> Normal use case is strideV >= ldv*n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the bidiagonal matrix B_j associated with A_j (using \ref rocsolver_sbdsqr "BDSQR"). !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of B_j (or properly speaking, !> a bidiagonal matrix orthogonally equivalent to B_j). The diagonal elements of this matrix are in S_j; !> those that converged correspond to a subset of the singular values of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= min(m,n)-1. !> @param[in] !> fast_alg rocblas_workmode. \n !> If set to rocblas_outofplace, the function will execute the fast thin-SVD version !> of the algorithm when possible. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info[j] = 0, successful exit. !> If info[j] = i > 0, \ref rocsolver_sbdsqr "BDSQR" did not converge. i elements of E_j did not converge to zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgesvd_batched function rocsolver_sgesvd_batched_(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_sgesvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgesvd_batched_full_rank,& rocsolver_sgesvd_batched_rank_0,& rocsolver_sgesvd_batched_rank_1 #endif end interface interface rocsolver_dgesvd_batched function rocsolver_dgesvd_batched_(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_dgesvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgesvd_batched_full_rank,& rocsolver_dgesvd_batched_rank_0,& rocsolver_dgesvd_batched_rank_1 #endif end interface interface rocsolver_cgesvd_batched function rocsolver_cgesvd_batched_(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_cgesvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgesvd_batched_full_rank,& rocsolver_cgesvd_batched_rank_0,& rocsolver_cgesvd_batched_rank_1 #endif end interface interface rocsolver_zgesvd_batched function rocsolver_zgesvd_batched_(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_zgesvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgesvd_batched_full_rank,& rocsolver_zgesvd_batched_rank_0,& rocsolver_zgesvd_batched_rank_1 #endif end interface !> \brief GESVD_STRIDED_BATCHED computes the singular values and optionally the !> singular vectors of a batch of general m-by-n matrix A (Singular Value !> Decomposition). !> !> \details !> The SVD of matrix A_j in the batch is given by: !> !> \f[ !> A_j = U_j S_j V_j' !> \f] !> !> where the m-by-n matrix \f$S_j\f$ is zero except, possibly, for its min(m,n) !> diagonal elements, which are the singular values of \f$A_j\f$. \f$U_j\f$ and \f$V_j\f$ are !> orthogonal (unitary) matrices. The first min(m,n) columns of \f$U_j\f$ and \f$V_j\f$ are !> the left and right singular vectors of \f$A_j\f$, respectively. !> !> The computation of the singular vectors is optional and it is controlled by !> the function arguments left_svect and right_svect as described below. When !> computed, this function returns the transpose (or transpose conjugate) of the !> right singular vectors, i.e. the rows of \f$V_j'\f$. !> !> left_svect and right_svect are rocblas_svect enums that can take the !> following values: !> !> - rocblas_svect_all: the entire matrix \f$U_j\f$ (or \f$V_j'\f$) is computed, !> - rocblas_svect_singular: only the singular vectors (first min(m,n) !> columns of \f$U_j\f$ or rows of \f$V_j'\f$) are computed, !> - rocblas_svect_overwrite: the !> first columns (or rows) of \f$A_j\f$ are overwritten with the singular vectors, or !> - rocblas_svect_none: no columns (or rows) of \f$U_j\f$ (or \f$V_j'\f$) are computed, !> i.e. no singular vectors. !> !> left_svect and right_svect cannot both be set to overwrite. When neither is !> set to overwrite, the contents of \f$A_j\f$ are destroyed by the time the function !> returns. !> !> \note !> When m >> n (or n >> m) the algorithm could be sped up by compressing !> the matrix \f$A_j\f$ via a QR (or LQ) factorization, and working with the !> triangular factor afterwards (thin-SVD). If the singular vectors are also !> requested, its computation could be sped up as well via executing some !> intermediate operations out-of-place, and relying more on matrix !> multiplications (GEMMs); this will require, however, a larger memory !> workspace. The parameter fast_alg controls whether the fast algorithm is !> executed or not. For more details, see the "Tuning rocSOLVER performance" !> and "Memory model" sections of the documentation. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> left_svect rocblas_svect.\n !> Specifies how the left singular vectors are computed. !> @param[in] !> right_svect rocblas_svect.\n !> Specifies how the right singular vectors are computed. !> @param[in] !> m rocblas_int. m >= 0.\n !> The number of rows of all matrices A_j in the batch. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of columns of all matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j. On exit, if left_svect (or right_svect) is equal to !> overwrite, the first columns (or rows) of A_j contain the left (or right) !> corresponding singular vectors; otherwise, the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= m.\n !> The leading dimension of A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. !> Normal use case is strideA >= lda*n. !> @param[out] !> S pointer to real type. Array on the GPU (the size depends on the value of strideS).\n !> The singular values of A_j in decreasing order. !> @param[in] !> strideS rocblas_stride.\n !> Stride from the start of one vector S_j to the next one S_(j+1). !> There is no restriction for the value of strideS. !> Normal use case is strideS >= min(m,n). !> @param[out] !> U pointer to type. Array on the GPU (the side depends on the value of strideU). \n !> The matrices U_j of left singular vectors stored as columns. !> Not referenced if left_svect is set to overwrite or none. !> @param[in] !> ldu rocblas_int. ldu >= m if left_svect is all or singular; ldu >= 1 otherwise.\n !> The leading dimension of U_j. !> @param[in] !> strideU rocblas_stride.\n !> Stride from the start of one matrix U_j to the next one U_(j+1). !> There is no restriction for the value of strideU. !> Normal use case is strideU >= ldu*min(m,n) if left_svect is set to singular, !> or strideU >= ldu*m when left_svect is equal to all. !> @param[out] !> V pointer to type. Array on the GPU (the size depends on the value of strideV). \n !> The matrices V_j of right singular vectors stored as rows (transposed conjugate-transposed). !> Not referenced if right_svect is set to overwrite or none. !> @param[in] !> ldv rocblas_int. ldv >= n if right_svect is all; ldv >= min(m,n) if right_svect is !> set to singular; or ldv >= 1 otherwise.\n !> The leading dimension of V. !> @param[in] !> strideV rocblas_stride.\n !> Stride from the start of one matrix V_j to the next one V_(j+1). !> There is no restriction for the value of strideV. !> Normal use case is strideV >= ldv*n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the bidiagonal matrix B_j associated with A_j (using \ref rocsolver_sbdsqr "BDSQR"). !> On exit, if info > 0, E_j contains the unconverged off-diagonal elements of B_j (or properly speaking, !> a bidiagonal matrix orthogonally equivalent to B_j). The diagonal elements of this matrix are in S_j; !> those that converged correspond to a subset of the singular values of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. !> Normal use case is strideE >= min(m,n)-1. !> @param[in] !> fast_alg rocblas_workmode. \n !> If set to rocblas_outofplace, the function will execute the fast thin-SVD version !> of the algorithm when possible. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info[j] = 0, successful exit. !> If info[j] = i > 0, BDSQR did not converge. i elements of E_j did not converge to zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgesvd_strided_batched function rocsolver_sgesvd_strided_batched_(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_sgesvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgesvd_strided_batched_full_rank,& rocsolver_sgesvd_strided_batched_rank_0,& rocsolver_sgesvd_strided_batched_rank_1 #endif end interface interface rocsolver_dgesvd_strided_batched function rocsolver_dgesvd_strided_batched_(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_dgesvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgesvd_strided_batched_full_rank,& rocsolver_dgesvd_strided_batched_rank_0,& rocsolver_dgesvd_strided_batched_rank_1 #endif end interface interface rocsolver_cgesvd_strided_batched function rocsolver_cgesvd_strided_batched_(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_cgesvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgesvd_strided_batched_full_rank,& rocsolver_cgesvd_strided_batched_rank_0,& rocsolver_cgesvd_strided_batched_rank_1 #endif end interface interface rocsolver_zgesvd_strided_batched function rocsolver_zgesvd_strided_batched_(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) bind(c, name="rocsolver_zgesvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_svect_all)),value :: left_svect integer(kind(rocblas_svect_all)),value :: right_svect integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: S integer(c_int64_t),value :: strideS type(c_ptr),value :: U integer(c_int),value :: ldu integer(c_int64_t),value :: strideU type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int64_t),value :: strideV type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(kind(rocblas_outofplace)),value :: fast_alg integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgesvd_strided_batched_full_rank,& rocsolver_zgesvd_strided_batched_rank_0,& rocsolver_zgesvd_strided_batched_rank_1 #endif end interface !> \brief SYTD2 computes the tridiagonal form of a real symmetric matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The tridiagonal form is given by: !> !> \f[ !> T = Q' A Q !> \f] !> !> where T is symmetric tridiagonal and Q is an orthogonal matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_{n-1} & \: \text{if uplo indicates lower, or}\newline !> !> Q = H_{n-1}H_{n-2}\cdots H_1 & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{tau}[i] \cdot v_i v_i' !> \f] !> !> where tau[i] is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_i stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_i stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[out] !> D pointer to type. Array on the GPU of dimension n.\n !> The diagonal elements of T. !> @param[out] !> E pointer to type. Array on the GPU of dimension n-1.\n !> The off-diagonal elements of T. !> @param[out] !> tau pointer to type. Array on the GPU of dimension n-1.\n !> The Householder scalars. !> interface rocsolver_ssytd2 function rocsolver_ssytd2_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_ssytd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_float) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytd2_full_rank,& rocsolver_ssytd2_rank_0,& rocsolver_ssytd2_rank_1 #endif end interface interface rocsolver_dsytd2 function rocsolver_dsytd2_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_dsytd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_double) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytd2_full_rank,& rocsolver_dsytd2_rank_0,& rocsolver_dsytd2_rank_1 #endif end interface !> \brief HETD2 computes the tridiagonal form of a complex hermitian matrix A. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The tridiagonal form is given by: !> !> \f[ !> T = Q' A Q !> \f] !> !> where T is hermitian tridiagonal and Q is an unitary matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_{n-1} & \: \text{if uplo indicates lower, or}\newline !> !> Q = H_{n-1}H_{n-2}\cdots H_1 & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{tau}[i] \cdot v_i v_i' !> \f] !> !> where tau[i] is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the hermitian matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T; the elements above the superdiagonal contain !> the first i-1 elements of the Householders vector v_i stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_i stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension n.\n !> The diagonal elements of T. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> The off-diagonal elements of T. !> @param[out] !> tau pointer to type. Array on the GPU of dimension n-1.\n !> The Householder scalars. !> interface rocsolver_chetd2 function rocsolver_chetd2_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_chetd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_float_complex) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chetd2_full_rank,& rocsolver_chetd2_rank_0,& rocsolver_chetd2_rank_1 #endif end interface interface rocsolver_zhetd2 function rocsolver_zhetd2_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_zhetd2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_double_complex) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhetd2_full_rank,& rocsolver_zhetd2_rank_0,& rocsolver_zhetd2_rank_1 #endif end interface !> \brief SYTD2_BATCHED computes the tridiagonal form of a batch of real symmetric matrices A_j. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is symmetric tridiagonal and \f$Q_j\f$ is an orthogonal matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssytd2_batched function rocsolver_ssytd2_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_ssytd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_float) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytd2_batched_full_rank,& rocsolver_ssytd2_batched_rank_0,& rocsolver_ssytd2_batched_rank_1 #endif end interface interface rocsolver_dsytd2_batched function rocsolver_dsytd2_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_dsytd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_double) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytd2_batched_full_rank,& rocsolver_dsytd2_batched_rank_0,& rocsolver_dsytd2_batched_rank_1 #endif end interface !> \brief HETD2_BATCHED computes the tridiagonal form of a batch of complex hermitian matrices A_j. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is Hermitian tridiagonal and \f$Q_j\f$ is a unitary matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the hermitian matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chetd2_batched function rocsolver_chetd2_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_chetd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_float_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chetd2_batched_full_rank,& rocsolver_chetd2_batched_rank_0,& rocsolver_chetd2_batched_rank_1 #endif end interface interface rocsolver_zhetd2_batched function rocsolver_zhetd2_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_zhetd2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_double_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhetd2_batched_full_rank,& rocsolver_zhetd2_batched_rank_0,& rocsolver_zhetd2_batched_rank_1 #endif end interface !> \brief SYTD2_STRIDED_BATCHED computes the tridiagonal form of a batch of real symmetric matrices A_j. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is symmetric tridiagonal and \f$Q_j\f$ is an orthogonal matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssytd2_strided_batched function rocsolver_ssytd2_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_ssytd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_float) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytd2_strided_batched_full_rank,& rocsolver_ssytd2_strided_batched_rank_0,& rocsolver_ssytd2_strided_batched_rank_1 #endif end interface interface rocsolver_dsytd2_strided_batched function rocsolver_dsytd2_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_dsytd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_double) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytd2_strided_batched_full_rank,& rocsolver_dsytd2_strided_batched_rank_0,& rocsolver_dsytd2_strided_batched_rank_1 #endif end interface !> \brief HETD2_STRIDED_BATCHED computes the tridiagonal form of a batch of complex hermitian matrices A_j. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is Hermitian tridiagonal and \f$Q_j\f$ is a unitary matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the hermitian matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chetd2_strided_batched function rocsolver_chetd2_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_chetd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_float_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chetd2_strided_batched_full_rank,& rocsolver_chetd2_strided_batched_rank_0,& rocsolver_chetd2_strided_batched_rank_1 #endif end interface interface rocsolver_zhetd2_strided_batched function rocsolver_zhetd2_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_zhetd2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_double_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhetd2_strided_batched_full_rank,& rocsolver_zhetd2_strided_batched_rank_0,& rocsolver_zhetd2_strided_batched_rank_1 #endif end interface !> \brief SYTRD computes the tridiagonal form of a real symmetric matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The tridiagonal form is given by: !> !> \f[ !> T = Q' A Q !> \f] !> !> where T is symmetric tridiagonal and Q is an orthogonal matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_{n-1} & \: \text{if uplo indicates lower, or}\newline !> !> Q = H_{n-1}H_{n-2}\cdots H_1 & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{tau}[i] \cdot v_i v_i' !> \f] !> !> where tau[i] is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_i stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_i stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[out] !> D pointer to type. Array on the GPU of dimension n.\n !> The diagonal elements of T. !> @param[out] !> E pointer to type. Array on the GPU of dimension n-1.\n !> The off-diagonal elements of T. !> @param[out] !> tau pointer to type. Array on the GPU of dimension n-1.\n !> The Householder scalars. !> interface rocsolver_ssytrd function rocsolver_ssytrd_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_ssytrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_float) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytrd_full_rank,& rocsolver_ssytrd_rank_0,& rocsolver_ssytrd_rank_1 #endif end interface interface rocsolver_dsytrd function rocsolver_dsytrd_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_dsytrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_double) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytrd_full_rank,& rocsolver_dsytrd_rank_0,& rocsolver_dsytrd_rank_1 #endif end interface !> \brief HETRD computes the tridiagonal form of a complex hermitian matrix A. !> !> \details !> (This is the blocked version of the algorithm). !> !> The tridiagonal form is given by: !> !> \f[ !> T = Q' A Q !> \f] !> !> where T is hermitian tridiagonal and Q is an unitary matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q = H_1H_2\cdots H_{n-1} & \: \text{if uplo indicates lower, or}\newline !> !> Q = H_{n-1}H_{n-2}\cdots H_1 & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_i\f$ is given by !> !> \f[ !> H_i = I - \text{tau}[i] \cdot v_i v_i' !> \f] !> !> where tau[i] is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_i\f$ are zero, and \f$v_i[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the hermitian matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_i stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_i stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension n.\n !> The diagonal elements of T. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n-1.\n !> The off-diagonal elements of T. !> @param[out] !> tau pointer to type. Array on the GPU of dimension n-1.\n !> The Householder scalars. !> interface rocsolver_chetrd function rocsolver_chetrd_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_chetrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_float_complex) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chetrd_full_rank,& rocsolver_chetrd_rank_0,& rocsolver_chetrd_rank_1 #endif end interface interface rocsolver_zhetrd function rocsolver_zhetrd_(handle,uplo,n,A,lda,D,E,tau) bind(c, name="rocsolver_zhetrd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_double_complex) :: tau end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhetrd_full_rank,& rocsolver_zhetrd_rank_0,& rocsolver_zhetrd_rank_1 #endif end interface !> \brief SYTRD_BATCHED computes the tridiagonal form of a batch of real symmetric matrices A_j. !> !> \details !> (This is the blocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is symmetric tridiagonal and \f$Q_j\f$ is an orthogonal matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssytrd_batched function rocsolver_ssytrd_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_ssytrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_float) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytrd_batched_full_rank,& rocsolver_ssytrd_batched_rank_0,& rocsolver_ssytrd_batched_rank_1 #endif end interface interface rocsolver_dsytrd_batched function rocsolver_dsytrd_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_dsytrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_double) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytrd_batched_full_rank,& rocsolver_dsytrd_batched_rank_0,& rocsolver_dsytrd_batched_rank_1 #endif end interface !> \brief HETRD_BATCHED computes the tridiagonal form of a batch of complex hermitian matrices A_j. !> !> \details !> (This is the blocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is Hermitian tridiagonal and \f$Q_j\f$ is a unitary matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the hermitian matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chetrd_batched function rocsolver_chetrd_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_chetrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_float_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chetrd_batched_full_rank,& rocsolver_chetrd_batched_rank_0,& rocsolver_chetrd_batched_rank_1 #endif end interface interface rocsolver_zhetrd_batched function rocsolver_zhetrd_batched_(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_zhetrd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_double_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhetrd_batched_full_rank,& rocsolver_zhetrd_batched_rank_0,& rocsolver_zhetrd_batched_rank_1 #endif end interface !> \brief SYTRD_STRIDED_BATCHED computes the tridiagonal form of a batch of real symmetric matrices A_j. !> !> \details !> (This is the blocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is symmetric tridiagonal and \f$Q_j\f$ is an orthogonal matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssytrd_strided_batched function rocsolver_ssytrd_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_ssytrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_float) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytrd_strided_batched_full_rank,& rocsolver_ssytrd_strided_batched_rank_0,& rocsolver_ssytrd_strided_batched_rank_1 #endif end interface interface rocsolver_dsytrd_strided_batched function rocsolver_dsytrd_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_dsytrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE real(c_double) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytrd_strided_batched_full_rank,& rocsolver_dsytrd_strided_batched_rank_0,& rocsolver_dsytrd_strided_batched_rank_1 #endif end interface !> \brief HETRD_STRIDED_BATCHED computes the tridiagonal form of a batch of complex hermitian matrices A_j. !> !> \details !> (This is the blocked version of the algorithm). !> !> The tridiagonal form of \f$A_j\f$ is given by: !> !> \f[ !> T_j = Q_j' A_j Q_j !> \f] !> !> where \f$T_j\f$ is Hermitian tridiagonal and \f$Q_j\f$ is a unitary matrix represented as the product !> of Householder matrices !> !> \f[ !> \begin{array}{cl} !> Q_j = H_{j_1}H_{j_2}\cdots H_{j_{n-1}} & \: \text{if uplo indicates lower, or}\newline !> !> Q_j = H_{j_{n-1}}H_{j_{n-2}}\cdots H_{j_1} & \: \text{if uplo indicates upper.} !> \end{array} !> \f] !> !> Each Householder matrix \f$H_{j_i}\f$ is given by !> !> \f[ !> H_{j_i} = I - \text{tau}_j[i] \cdot v_{j_i} v_{j_i}' !> \f] !> !> where \f$\text{tau}_j[i]\f$ is the corresponding Householder scalar. When uplo indicates lower, the first i !> elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i+1] = 1\f$. If uplo indicates upper, !> the last n-i elements of the Householder vector \f$v_{j_i}\f$ are zero, and \f$v_{j_i}[i] = 1\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the hermitian matrix A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j to be factored. !> On exit, if upper, then the elements on the diagonal and superdiagonal !> contain the tridiagonal form T_j; the elements above the superdiagonal contain !> the first i-1 elements of the Householder vectors v_(j_i) stored as columns. !> If lower, then the elements on the diagonal and subdiagonal !> contain the tridiagonal form T_j; the elements below the subdiagonal contain !> the last n-i-1 elements of the Householder vectors v_(j_i) stored as columns. !> @param[in] !> lda rocblas_int. lda >= n.\n !> The leading dimension of A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The diagonal elements of T_j. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> The off-diagonal elements of T_j. !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n-1. !> @param[out] !> tau pointer to type. Array on the GPU (the size depends on the value of strideP).\n !> Contains the vectors tau_j of corresponding Householder scalars. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector tau_j to the next one tau_(j+1). !> There is no restriction for the value !> of strideP. Normal use is strideP >= n-1. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chetrd_strided_batched function rocsolver_chetrd_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_chetrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_float_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chetrd_strided_batched_full_rank,& rocsolver_chetrd_strided_batched_rank_0,& rocsolver_chetrd_strided_batched_rank_1 #endif end interface interface rocsolver_zhetrd_strided_batched function rocsolver_zhetrd_strided_batched_(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) bind(c, name="rocsolver_zhetrd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE complex(c_double_complex) :: tau integer(c_int64_t),value :: strideP integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhetrd_strided_batched_full_rank,& rocsolver_zhetrd_strided_batched_rank_0,& rocsolver_zhetrd_strided_batched_rank_1 #endif end interface !> \brief SYGS2 reduces a real symmetric-definite generalized eigenproblem to standard !> form. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U^{-T} A U^{-1}, & \: \text{or}\newline !> !> L^{-1} A L^{-T}, !> \end{array} !> \f] !> !> where the symmetric-definite matrix B has been factorized as either \f$U^T U\f$ or \f$L L^T\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U A U^T, & \: \text{or}\newline !> !> L^T A L, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored, and !> whether the factorization applied to B was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A and !> B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the transformed matrix associated with !> the equivalent standard eigenvalue problem. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> The triangular factor of the matrix B, as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> interface rocsolver_ssygs2 function rocsolver_ssygs2_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_ssygs2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygs2_full_rank,& rocsolver_ssygs2_rank_0,& rocsolver_ssygs2_rank_1 #endif end interface interface rocsolver_dsygs2 function rocsolver_dsygs2_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_dsygs2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygs2_full_rank,& rocsolver_dsygs2_rank_0,& rocsolver_dsygs2_rank_1 #endif end interface !> \brief HEGS2 reduces a hermitian-definite generalized eigenproblem to standard form. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U^{-H} A U^{-1}, & \: \text{or}\newline !> !> L^{-1} A L^{-H}, !> \end{array} !> \f] !> !> where the hermitian-definite matrix B has been factorized as either \f$U^H U\f$ or \f$L L^H\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U A U^H, & \: \text{or}\newline !> !> L^H A L, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored, and !> whether the factorization applied to B was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A and !> B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the transformed matrix associated with !> the equivalent standard eigenvalue problem. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> The triangular factor of the matrix B, as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> interface rocsolver_chegs2 function rocsolver_chegs2_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_chegs2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegs2_full_rank,& rocsolver_chegs2_rank_0,& rocsolver_chegs2_rank_1 #endif end interface interface rocsolver_zhegs2 function rocsolver_zhegs2_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_zhegs2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegs2_full_rank,& rocsolver_zhegs2_rank_0,& rocsolver_zhegs2_rank_1 #endif end interface !> \brief SYGS2_BATCHED reduces a batch of real symmetric-definite generalized eigenproblems !> to standard form. !> !> \details !> (This is the unblocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-T} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-T}, !> \end{array} !> \f] !> !> where the symmetric-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^T U_i\f$ or \f$L_i L_i^T\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^T, & \: \text{or}\newline !> !> L_i^T A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygs2_batched function rocsolver_ssygs2_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_ssygs2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygs2_batched_full_rank,& rocsolver_ssygs2_batched_rank_0,& rocsolver_ssygs2_batched_rank_1 #endif end interface interface rocsolver_dsygs2_batched function rocsolver_dsygs2_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_dsygs2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygs2_batched_full_rank,& rocsolver_dsygs2_batched_rank_0,& rocsolver_dsygs2_batched_rank_1 #endif end interface !> \brief HEGS2_BATCHED reduces a batch of hermitian-definite generalized eigenproblems to !> standard form. !> !> \details !> (This is the unblocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-H} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-H}, !> \end{array} !> \f] !> !> where the hermitian-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^H U_i\f$ or \f$L_i L_i^H\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^H, & \: \text{or}\newline !> !> L_i^H A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegs2_batched function rocsolver_chegs2_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_chegs2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegs2_batched_full_rank,& rocsolver_chegs2_batched_rank_0,& rocsolver_chegs2_batched_rank_1 #endif end interface interface rocsolver_zhegs2_batched function rocsolver_zhegs2_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_zhegs2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegs2_batched_full_rank,& rocsolver_zhegs2_batched_rank_0,& rocsolver_zhegs2_batched_rank_1 #endif end interface !> \brief SYGS2_STRIDED_BATCHED reduces a batch of real symmetric-definite generalized !> eigenproblems to standard form. !> !> \details !> (This is the unblocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-T} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-T}, !> \end{array} !> \f] !> !> where the symmetric-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^T U_i\f$ or \f$L_i L_i^T\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^T, & \: \text{or}\newline !> !> L_i^T A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*n. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygs2_strided_batched function rocsolver_ssygs2_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_ssygs2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygs2_strided_batched_full_rank,& rocsolver_ssygs2_strided_batched_rank_0,& rocsolver_ssygs2_strided_batched_rank_1 #endif end interface interface rocsolver_dsygs2_strided_batched function rocsolver_dsygs2_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_dsygs2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygs2_strided_batched_full_rank,& rocsolver_dsygs2_strided_batched_rank_0,& rocsolver_dsygs2_strided_batched_rank_1 #endif end interface !> \brief HEGS2_STRIDED_BATCHED reduces a batch of hermitian-definite generalized !> eigenproblems to standard form. !> !> \details !> (This is the unblocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-H} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-H}, !> \end{array} !> \f] !> !> where the hermitian-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^H U_i\f$ or \f$L_i L_i^H\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^H, & \: \text{or}\newline !> !> L_i^H A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*n. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegs2_strided_batched function rocsolver_chegs2_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_chegs2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegs2_strided_batched_full_rank,& rocsolver_chegs2_strided_batched_rank_0,& rocsolver_chegs2_strided_batched_rank_1 #endif end interface interface rocsolver_zhegs2_strided_batched function rocsolver_zhegs2_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_zhegs2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegs2_strided_batched_full_rank,& rocsolver_zhegs2_strided_batched_rank_0,& rocsolver_zhegs2_strided_batched_rank_1 #endif end interface !> \brief SYGST reduces a real symmetric-definite generalized eigenproblem to standard !> form. !> !> \details !> (This is the blocked version of the algorithm). !> !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U^{-T} A U^{-1}, & \: \text{or}\newline !> !> L^{-1} A L^{-T}, !> \end{array} !> \f] !> !> where the symmetric-definite matrix B has been factorized as either \f$U^T U\f$ or \f$L L^T\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U A U^T, & \: \text{or}\newline !> !> L^T A L, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored, and !> whether the factorization applied to B was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A and !> B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the transformed matrix associated with !> the equivalent standard eigenvalue problem. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> The triangular factor of the matrix B, as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> interface rocsolver_ssygst function rocsolver_ssygst_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_ssygst") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygst_full_rank,& rocsolver_ssygst_rank_0,& rocsolver_ssygst_rank_1 #endif end interface interface rocsolver_dsygst function rocsolver_dsygst_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_dsygst") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygst_full_rank,& rocsolver_dsygst_rank_0,& rocsolver_dsygst_rank_1 #endif end interface !> \brief HEGST reduces a hermitian-definite generalized eigenproblem to standard form. !> !> \details !> (This is the blocked version of the algorithm). !> !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U^{-H} A U^{-1}, & \: \text{or}\newline !> !> L^{-1} A L^{-H}, !> \end{array} !> \f] !> !> where the hermitian-definite matrix B has been factorized as either \f$U^H U\f$ or \f$L L^H\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U A U^H, & \: \text{or}\newline !> !> L^H A L, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored, and !> whether the factorization applied to B was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A and !> B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the transformed matrix associated with !> the equivalent standard eigenvalue problem. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> The triangular factor of the matrix B, as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> interface rocsolver_chegst function rocsolver_chegst_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_chegst") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegst_full_rank,& rocsolver_chegst_rank_0,& rocsolver_chegst_rank_1 #endif end interface interface rocsolver_zhegst function rocsolver_zhegst_(handle,itype,uplo,n,A,lda,B,ldb) bind(c, name="rocsolver_zhegst") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegst_full_rank,& rocsolver_zhegst_rank_0,& rocsolver_zhegst_rank_1 #endif end interface !> \brief SYGST_BATCHED reduces a batch of real symmetric-definite generalized eigenproblems !> to standard form. !> !> \details !> (This is the blocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-T} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-T}, !> \end{array} !> \f] !> !> where the symmetric-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^T U_i\f$ or \f$L_i L_i^T\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^T, & \: \text{or}\newline !> !> L_i^T A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygst_batched function rocsolver_ssygst_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_ssygst_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygst_batched_full_rank,& rocsolver_ssygst_batched_rank_0,& rocsolver_ssygst_batched_rank_1 #endif end interface interface rocsolver_dsygst_batched function rocsolver_dsygst_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_dsygst_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygst_batched_full_rank,& rocsolver_dsygst_batched_rank_0,& rocsolver_dsygst_batched_rank_1 #endif end interface !> \brief HEGST_BATCHED reduces a batch of hermitian-definite generalized eigenproblems to !> standard form. !> !> \details !> (This is the blocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-H} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-H}, !> \end{array} !> \f] !> !> where the hermitian-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^H U_i\f$ or \f$L_i L_i^H\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^H, & \: \text{or}\newline !> !> L_i^H A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegst_batched function rocsolver_chegst_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_chegst_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegst_batched_full_rank,& rocsolver_chegst_batched_rank_0,& rocsolver_chegst_batched_rank_1 #endif end interface interface rocsolver_zhegst_batched function rocsolver_zhegst_batched_(handle,itype,uplo,n,A,lda,B,ldb,batch_count) bind(c, name="rocsolver_zhegst_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegst_batched_full_rank,& rocsolver_zhegst_batched_rank_0,& rocsolver_zhegst_batched_rank_1 #endif end interface !> \brief SYGST_STRIDED_BATCHED reduces a batch of real symmetric-definite generalized !> eigenproblems to standard form. !> !> \details !> (This is the blocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-T} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-T}, !> \end{array} !> \f] !> !> where the symmetric-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^T U_i\f$ or \f$L_i L_i^T\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^T, & \: \text{or}\newline !> !> L_i^T A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*n. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygst_strided_batched function rocsolver_ssygst_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_ssygst_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygst_strided_batched_full_rank,& rocsolver_ssygst_strided_batched_rank_0,& rocsolver_ssygst_strided_batched_rank_1 #endif end interface interface rocsolver_dsygst_strided_batched function rocsolver_dsygst_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_dsygst_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygst_strided_batched_full_rank,& rocsolver_dsygst_strided_batched_rank_0,& rocsolver_dsygst_strided_batched_rank_1 #endif end interface !> \brief HEGST_STRIDED_BATCHED reduces a batch of hermitian-definite generalized !> eigenproblems to standard form. !> !> \details !> (This is the blocked version of the algorithm). !> !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. !> !> If the problem is of the 1st form, then \f$A_i\f$ is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i^{-H} A_i U_i^{-1}, & \: \text{or}\newline !> !> L_i^{-1} A_i L_i^{-H}, !> \end{array} !> \f] !> !> where the hermitian-definite matrix \f$B_i\f$ has been factorized as either \f$U_i^H U_i\f$ or \f$L_i L_i^H\f$ as returned by \ref rocsolver_spotrf "POTRF", depending !> on the value of uplo. !> !> If the problem is of the 2nd or 3rd form, then A is overwritten with !> !> \f[ !> \begin{array}{cl} !> U_i A_i U_i^H, & \: \text{or}\newline !> !> L_i^H A_i L_i, !> \end{array} !> \f] !> !> also depending on the value of uplo. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored, and !> whether the factorization applied to B_i was upper or lower triangular. !> If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and !> B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_i. On exit, the transformed matrices associated with !> the equivalent standard eigenvalue problems. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> The triangular factors of the matrices B_i, as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use case is strideB >= ldb*n. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegst_strided_batched function rocsolver_chegst_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_chegst_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegst_strided_batched_full_rank,& rocsolver_chegst_strided_batched_rank_0,& rocsolver_chegst_strided_batched_rank_1 #endif end interface interface rocsolver_zhegst_strided_batched function rocsolver_zhegst_strided_batched_(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) bind(c, name="rocsolver_zhegst_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegst_strided_batched_full_rank,& rocsolver_zhegst_strided_batched_rank_0,& rocsolver_zhegst_strided_batched_rank_1 #endif end interface !> \brief SYEV computes the eigenvalues and optionally the eigenvectors of a real symmetric !> matrix A. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed depending !> on the value of evect. The computed eigenvectors are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the eigenvectors of A if they were computed and !> the algorithm converged; otherwise the contents of A are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrix A. !> @param[out] !> D pointer to type. Array on the GPU of dimension n.\n !> The eigenvalues of A in increasing order. !> @param[out] !> E pointer to type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with A. !> On exit, if info > 0, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues of A (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. If info = i > 0, the algorithm did not converge. !> i elements of E did not converge to zero. !> interface rocsolver_ssyev function rocsolver_ssyev_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_ssyev") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssyev_full_rank,& rocsolver_ssyev_rank_0,& rocsolver_ssyev_rank_1 #endif end interface interface rocsolver_dsyev function rocsolver_dsyev_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_dsyev") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsyev_full_rank,& rocsolver_dsyev_rank_0,& rocsolver_dsyev_rank_1 #endif end interface !> \brief HEEV computes the eigenvalues and optionally the eigenvectors of a Hermitian matrix A. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed depending !> on the value of evect. The computed eigenvectors are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the Hermitian matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the eigenvectors of A if they were computed and !> the algorithm converged; otherwise the contents of A are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrix A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension n.\n !> The eigenvalues of A in increasing order. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with A. !> On exit, if info > 0, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues of A (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. If info = i > 0, the algorithm did not converge. !> i elements of E did not converge to zero. !> interface rocsolver_cheev function rocsolver_cheev_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_cheev") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cheev_full_rank,& rocsolver_cheev_rank_0,& rocsolver_cheev_rank_1 #endif end interface interface rocsolver_zheev function rocsolver_zheev_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_zheev") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zheev_full_rank,& rocsolver_zheev_rank_0,& rocsolver_zheev_rank_1 #endif end interface !> \brief SYEV_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> real symmetric matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed depending !> on the value of evect. The computed eigenvectors are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. If info[j] = i > 0, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssyev_batched function rocsolver_ssyev_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssyev_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssyev_batched_full_rank,& rocsolver_ssyev_batched_rank_0,& rocsolver_ssyev_batched_rank_1 #endif end interface interface rocsolver_dsyev_batched function rocsolver_dsyev_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsyev_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsyev_batched_full_rank,& rocsolver_dsyev_batched_rank_0,& rocsolver_dsyev_batched_rank_1 #endif end interface !> \brief HEEV_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> Hermitian matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed depending !> on the value of evect. The computed eigenvectors are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the Hermitian matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. If info[j] = i > 0, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_cheev_batched function rocsolver_cheev_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_cheev_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cheev_batched_full_rank,& rocsolver_cheev_batched_rank_0,& rocsolver_cheev_batched_rank_1 #endif end interface interface rocsolver_zheev_batched function rocsolver_zheev_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zheev_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zheev_batched_full_rank,& rocsolver_zheev_batched_rank_0,& rocsolver_zheev_batched_rank_1 #endif end interface !> \brief SYEV_STRIDED_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> real symmetric matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed depending !> on the value of evect. The computed eigenvectors are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. If info[j] = i > 0, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssyev_strided_batched function rocsolver_ssyev_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssyev_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssyev_strided_batched_full_rank,& rocsolver_ssyev_strided_batched_rank_0,& rocsolver_ssyev_strided_batched_rank_1 #endif end interface interface rocsolver_dsyev_strided_batched function rocsolver_dsyev_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsyev_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsyev_strided_batched_full_rank,& rocsolver_dsyev_strided_batched_rank_0,& rocsolver_dsyev_strided_batched_rank_1 #endif end interface !> \brief HEEV_STRIDED_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> Hermitian matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed depending !> on the value of evect. The computed eigenvectors are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the Hermitian matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. If info[j] = i > 0, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_cheev_strided_batched function rocsolver_cheev_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_cheev_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cheev_strided_batched_full_rank,& rocsolver_cheev_strided_batched_rank_0,& rocsolver_cheev_strided_batched_rank_1 #endif end interface interface rocsolver_zheev_strided_batched function rocsolver_zheev_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zheev_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zheev_strided_batched_full_rank,& rocsolver_zheev_strided_batched_rank_0,& rocsolver_zheev_strided_batched_rank_1 #endif end interface !> \brief SYEVD computes the eigenvalues and optionally the eigenvectors of a real symmetric !> matrix A. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed using a !> divide-and-conquer algorithm, depending on the value of evect. The computed eigenvectors !> are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the eigenvectors of A if they were computed and !> the algorithm converged; otherwise the contents of A are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrix A. !> @param[out] !> D pointer to type. Array on the GPU of dimension n.\n !> The eigenvalues of A in increasing order. !> @param[out] !> E pointer to type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with A. !> On exit, if info > 0, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues of A (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0 and evect is rocblas_evect_none, the algorithm did not converge. !> i elements of E did not converge to zero. !> If info = i > 0 and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [i/(n+1), i/(n+1)] to [i%(n+1), i%(n+1)]. !> interface rocsolver_ssyevd function rocsolver_ssyevd_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_ssyevd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssyevd_full_rank,& rocsolver_ssyevd_rank_0,& rocsolver_ssyevd_rank_1 #endif end interface interface rocsolver_dsyevd function rocsolver_dsyevd_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_dsyevd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsyevd_full_rank,& rocsolver_dsyevd_rank_0,& rocsolver_dsyevd_rank_1 #endif end interface !> \brief HEEVD computes the eigenvalues and optionally the eigenvectors of a Hermitian matrix A. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed using a !> divide-and-conquer algorithm, depending on the value of evect. The computed eigenvectors !> are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the Hermitian matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the matrix A. On exit, the eigenvectors of A if they were computed and !> the algorithm converged; otherwise the contents of A are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrix A. !> @param[out] !> D pointer to real type. Array on the GPU of dimension n.\n !> The eigenvalues of A in increasing order. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with A. !> On exit, if info > 0, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues of A (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0 and evect is rocblas_evect_none, the algorithm did not converge. !> i elements of E did not converge to zero. !> If info = i > 0 and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [i/(n+1), i/(n+1)] to [i%(n+1), i%(n+1)]. !> interface rocsolver_cheevd function rocsolver_cheevd_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_cheevd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cheevd_full_rank,& rocsolver_cheevd_rank_0,& rocsolver_cheevd_rank_1 #endif end interface interface rocsolver_zheevd function rocsolver_zheevd_(handle,evect,uplo,n,A,lda,D,E,myInfo) bind(c, name="rocsolver_zheevd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zheevd_full_rank,& rocsolver_zheevd_rank_0,& rocsolver_zheevd_rank_1 #endif end interface !> \brief SYEVD_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> real symmetric matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed using a !> divide-and-conquer algorithm, depending on the value of evect. The computed eigenvectors !> are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. !> If info[j] = i > 0 and evect is rocblas_evect_none, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> If info[j] = i > 0 and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [i/(n+1), i/(n+1)] to [i%(n+1), i%(n+1)]. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssyevd_batched function rocsolver_ssyevd_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssyevd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssyevd_batched_full_rank,& rocsolver_ssyevd_batched_rank_0,& rocsolver_ssyevd_batched_rank_1 #endif end interface interface rocsolver_dsyevd_batched function rocsolver_dsyevd_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsyevd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsyevd_batched_full_rank,& rocsolver_dsyevd_batched_rank_0,& rocsolver_dsyevd_batched_rank_1 #endif end interface !> \brief HEEVD_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> Hermitian matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed using a !> divide-and-conquer algorithm, depending on the value of evect. The computed eigenvectors !> are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the Hermitian matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. !> If info[j] = i > 0 and evect is rocblas_evect_none, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> If info[j] = i > 0 and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [i/(n+1), i/(n+1)] to [i%(n+1), i%(n+1)]. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_cheevd_batched function rocsolver_cheevd_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_cheevd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cheevd_batched_full_rank,& rocsolver_cheevd_batched_rank_0,& rocsolver_cheevd_batched_rank_1 #endif end interface interface rocsolver_zheevd_batched function rocsolver_zheevd_batched_(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zheevd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zheevd_batched_full_rank,& rocsolver_zheevd_batched_rank_0,& rocsolver_zheevd_batched_rank_1 #endif end interface !> \brief SYEVD_STRIDED_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> real symmetric matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed using a !> divide-and-conquer algorithm, depending on the value of evect. The computed eigenvectors !> are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the symmetric matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. !> If info[j] = i > 0 and evect is rocblas_evect_none, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> If info[j] = i > 0 and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [i/(n+1), i/(n+1)] to [i%(n+1), i%(n+1)]. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssyevd_strided_batched function rocsolver_ssyevd_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssyevd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssyevd_strided_batched_full_rank,& rocsolver_ssyevd_strided_batched_rank_0,& rocsolver_ssyevd_strided_batched_rank_1 #endif end interface interface rocsolver_dsyevd_strided_batched function rocsolver_dsyevd_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsyevd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsyevd_strided_batched_full_rank,& rocsolver_dsyevd_strided_batched_rank_0,& rocsolver_dsyevd_strided_batched_rank_1 #endif end interface !> \brief HEEVD_STRIDED_BATCHED computes the eigenvalues and optionally the eigenvectors of a batch of !> Hermitian matrices A_j. !> !> \details !> The eigenvalues are returned in ascending order. The eigenvectors are computed using a !> divide-and-conquer algorithm, depending on the value of evect. The computed eigenvectors !> are orthonormal. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the Hermitian matrices A_j is stored. !> If uplo indicates lower (or upper), then the upper (or lower) part of A_j !> is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> Number of rows and columns of matrices A_j. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the matrices A_j. On exit, the eigenvectors of A_j if they were computed and !> the algorithm converged; otherwise the contents of A_j are destroyed. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> The eigenvalues of A_j in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_j to the next one D_(j+1). !> There is no restriction for the value of strideD. Normal use case is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_j associated with A_j. !> On exit, if info[j] > 0, E_j contains the unconverged off-diagonal elements of T_j !> (or properly speaking, a tridiagonal matrix equivalent to T_j). The diagonal elements !> of this matrix are in D_j; those that converged correspond to a subset of the !> eigenvalues of A_j (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_j to the next one E_(j+1). !> There is no restriction for the value of strideE. Normal use case is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for matrix A_j. !> If info[j] = i > 0 and evect is rocblas_evect_none, the algorithm did not converge. !> i elements of E_j did not converge to zero. !> If info[j] = i > 0 and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [i/(n+1), i/(n+1)] to [i%(n+1), i%(n+1)]. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_cheevd_strided_batched function rocsolver_cheevd_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_cheevd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cheevd_strided_batched_full_rank,& rocsolver_cheevd_strided_batched_rank_0,& rocsolver_cheevd_strided_batched_rank_1 #endif end interface interface rocsolver_zheevd_strided_batched function rocsolver_zheevd_strided_batched_(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zheevd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zheevd_strided_batched_full_rank,& rocsolver_zheevd_strided_batched_rank_0,& rocsolver_zheevd_strided_batched_rank_1 #endif end interface !> \brief SYGV computes the eigenvalues and (optionally) eigenvectors of !> a real generalized symmetric-definite eigenproblem. !> !> \details !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed depending on the !> value of evect. !> !> When computed, the matrix Z of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z^T B Z=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z^T B^{-1} Z=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A and B are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A and B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrix A. On exit, if evect is original, !> the normalized matrix Z of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrix A (including the diagonal) is destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> On entry, the symmetric positive definite matrix B. On exit, the !> triangular factor of B as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> @param[out] !> D pointer to type. Array on the GPU of dimension n.\n !> On exit, the eigenvalues in increasing order. !> @param[out] !> E pointer to type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with !> the reduced eigenvalue problem. !> On exit, if 0 < info <= n, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j <= n, j off-diagonal elements of an intermediate !> tridiagonal form did not converge to zero. !> If info = n + j, the leading minor of order j of B is not !> positive definite. !> interface rocsolver_ssygv function rocsolver_ssygv_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_ssygv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygv_full_rank,& rocsolver_ssygv_rank_0,& rocsolver_ssygv_rank_1 #endif end interface interface rocsolver_dsygv function rocsolver_dsygv_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_dsygv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygv_full_rank,& rocsolver_dsygv_rank_0,& rocsolver_dsygv_rank_1 #endif end interface !> \brief HEGV computes the eigenvalues and (optionally) eigenvectors of !> a complex generalized hermitian-definite eigenproblem. !> !> \details !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed depending on the !> value of evect. !> !> When computed, the matrix Z of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z^H B Z=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z^H B^{-1} Z=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A and B are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A and B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the hermitian matrix A. On exit, if evect is original, !> the normalized matrix Z of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrix A (including the diagonal) is destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> On entry, the hermitian positive definite matrix B. On exit, the !> triangular factor of B as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> @param[out] !> D pointer to real type. Array on the GPU of dimension n.\n !> On exit, the eigenvalues in increasing order. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with !> the reduced eigenvalue problem. !> On exit, if 0 < info <= n, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j <= n, j off-diagonal elements of an intermediate !> tridiagonal form did not converge to zero. !> If info = n + j, the leading minor of order j of B is not !> positive definite. !> interface rocsolver_chegv function rocsolver_chegv_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_chegv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegv_full_rank,& rocsolver_chegv_rank_0,& rocsolver_chegv_rank_1 #endif end interface interface rocsolver_zhegv function rocsolver_zhegv_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_zhegv") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegv_full_rank,& rocsolver_zhegv_rank_0,& rocsolver_zhegv_rank_1 #endif end interface !> \brief SYGV_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of real generalized symmetric-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^T B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^T B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> On entry, the symmetric positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, E_i contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch instance i. !> If info[i] = j <= n, j off-diagonal elements of an intermediate !> tridiagonal form did not converge to zero. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygv_batched function rocsolver_ssygv_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssygv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygv_batched_full_rank,& rocsolver_ssygv_batched_rank_0,& rocsolver_ssygv_batched_rank_1 #endif end interface interface rocsolver_dsygv_batched function rocsolver_dsygv_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsygv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygv_batched_full_rank,& rocsolver_dsygv_batched_rank_0,& rocsolver_dsygv_batched_rank_1 #endif end interface !> \brief HEGV_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of complex generalized hermitian-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^H B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^H B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the hermitian matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> On entry, the hermitian positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n, j off-diagonal elements of an intermediate !> tridiagonal form did not converge to zero. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegv_batched function rocsolver_chegv_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_chegv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegv_batched_full_rank,& rocsolver_chegv_batched_rank_0,& rocsolver_chegv_batched_rank_1 #endif end interface interface rocsolver_zhegv_batched function rocsolver_zhegv_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zhegv_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegv_batched_full_rank,& rocsolver_zhegv_batched_rank_0,& rocsolver_zhegv_batched_rank_1 #endif end interface !> \brief SYGV_STRIDED_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of real generalized symmetric-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^T B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^T B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the symmetric matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> On entry, the symmetric positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use is strideB >= ldb*n. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n, j off-diagonal elements of an intermediate !> tridiagonal form did not converge to zero. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygv_strided_batched function rocsolver_ssygv_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssygv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygv_strided_batched_full_rank,& rocsolver_ssygv_strided_batched_rank_0,& rocsolver_ssygv_strided_batched_rank_1 #endif end interface interface rocsolver_dsygv_strided_batched function rocsolver_dsygv_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsygv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygv_strided_batched_full_rank,& rocsolver_dsygv_strided_batched_rank_0,& rocsolver_dsygv_strided_batched_rank_1 #endif end interface !> \brief HEGV_STRIDED_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of complex generalized hermitian-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^H B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^H B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the hermitian matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> On entry, the hermitian positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use is strideB >= ldb*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n, j off-diagonal elements of an intermediate !> tridiagonal form did not converge to zero. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegv_strided_batched function rocsolver_chegv_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_chegv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegv_strided_batched_full_rank,& rocsolver_chegv_strided_batched_rank_0,& rocsolver_chegv_strided_batched_rank_1 #endif end interface interface rocsolver_zhegv_strided_batched function rocsolver_zhegv_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zhegv_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegv_strided_batched_full_rank,& rocsolver_zhegv_strided_batched_rank_0,& rocsolver_zhegv_strided_batched_rank_1 #endif end interface !> \brief SYGVD computes the eigenvalues and (optionally) eigenvectors of !> a real generalized symmetric-definite eigenproblem. !> !> \details !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed using a divide-and-conquer algorithm, depending on the !> value of evect. !> !> When computed, the matrix Z of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z^T B Z=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z^T B^{-1} Z=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A and B are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A and B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrix A. On exit, if evect is original, !> the normalized matrix Z of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrix A (including the diagonal) is destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> On entry, the symmetric positive definite matrix B. On exit, the !> triangular factor of B as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> @param[out] !> D pointer to type. Array on the GPU of dimension n.\n !> On exit, the eigenvalues in increasing order. !> @param[out] !> E pointer to type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with !> the reduced eigenvalue problem. !> On exit, if 0 < info <= n, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j <= n and evect is rocblas_evect_none, j off-diagonal elements of an !> intermediate tridiagonal form did not converge to zero. !> If info = j <= n and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [j/(n+1), j/(n+1)] to [j%(n+1), j%(n+1)]. !> If info = n + j, the leading minor of order j of B is not !> positive definite. !> interface rocsolver_ssygvd function rocsolver_ssygvd_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_ssygvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygvd_full_rank,& rocsolver_ssygvd_rank_0,& rocsolver_ssygvd_rank_1 #endif end interface interface rocsolver_dsygvd function rocsolver_dsygvd_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_dsygvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygvd_full_rank,& rocsolver_dsygvd_rank_0,& rocsolver_dsygvd_rank_1 #endif end interface !> \brief HEGVD computes the eigenvalues and (optionally) eigenvectors of !> a complex generalized hermitian-definite eigenproblem. !> !> \details !> The problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A X = \lambda B X & \: \text{1st form,}\newline !> !> A B X = \lambda X & \: \text{2nd form, or}\newline !> !> B A X = \lambda X & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed using a divide-and-conquer algorithm, depending on the !> value of evect. !> !> When computed, the matrix Z of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z^H B Z=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z^H B^{-1} Z=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblem. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A and B are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A and B are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the hermitian matrix A. On exit, if evect is original, !> the normalized matrix Z of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrix A (including the diagonal) is destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> B pointer to type. Array on the GPU of dimension ldb*n.\n !> On entry, the hermitian positive definite matrix B. On exit, the !> triangular factor of B as returned by \ref rocsolver_spotrf "POTRF". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B. !> @param[out] !> D pointer to real type. Array on the GPU of dimension n.\n !> On exit, the eigenvalues in increasing order. !> @param[out] !> E pointer to real type. Array on the GPU of dimension n.\n !> This array is used to work internally with the tridiagonal matrix T associated with !> the reduced eigenvalue problem. !> On exit, if 0 < info <= n, it contains the unconverged off-diagonal elements of T !> (or properly speaking, a tridiagonal matrix equivalent to T). The diagonal elements !> of this matrix are in D; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = j <= n and evect is rocblas_evect_none, j off-diagonal elements of an !> intermediate tridiagonal form did not converge to zero. !> If info = j <= n and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [j/(n+1), j/(n+1)] to [j%(n+1), j%(n+1)]. !> If info = n + j, the leading minor of order j of B is not !> positive definite. !> interface rocsolver_chegvd function rocsolver_chegvd_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_chegvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegvd_full_rank,& rocsolver_chegvd_rank_0,& rocsolver_chegvd_rank_1 #endif end interface interface rocsolver_zhegvd function rocsolver_zhegvd_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) bind(c, name="rocsolver_zhegvd") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: E integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegvd_full_rank,& rocsolver_zhegvd_rank_0,& rocsolver_zhegvd_rank_1 #endif end interface !> \brief SYGVD_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of real generalized symmetric-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed using a divide-and-conquer algorithm, depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^T B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^T B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> On entry, the symmetric positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n and evect is rocblas_evect_none, j off-diagonal elements of an !> intermediate tridiagonal form did not converge to zero. !> If info[i] = j <= n and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [j/(n+1), j/(n+1)] to [j%(n+1), j%(n+1)]. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygvd_batched function rocsolver_ssygvd_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssygvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygvd_batched_full_rank,& rocsolver_ssygvd_batched_rank_0,& rocsolver_ssygvd_batched_rank_1 #endif end interface interface rocsolver_dsygvd_batched function rocsolver_dsygvd_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsygvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygvd_batched_full_rank,& rocsolver_dsygvd_batched_rank_0,& rocsolver_dsygvd_batched_rank_1 #endif end interface !> \brief HEGVD_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of complex generalized hermitian-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed using a divide-and-conquer algorithm, depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^H B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^H B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the hermitian matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[out] !> B array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.\n !> On entry, the hermitian positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_batched "POTRF_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n and evect is rocblas_evect_none, j off-diagonal elements of an !> intermediate tridiagonal form did not converge to zero. !> If info[i] = j <= n and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [j/(n+1), j/(n+1)] to [j%(n+1), j%(n+1)]. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegvd_batched function rocsolver_chegvd_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_chegvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegvd_batched_full_rank,& rocsolver_chegvd_batched_rank_0,& rocsolver_chegvd_batched_rank_1 #endif end interface interface rocsolver_zhegvd_batched function rocsolver_zhegvd_batched_(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zhegvd_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegvd_batched_full_rank,& rocsolver_zhegvd_batched_rank_0,& rocsolver_zhegvd_batched_rank_1 #endif end interface !> \brief SYGVD_STRIDED_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of real generalized symmetric-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed using a divide-and-conquer algorithm, depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^T B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^T B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the symmetric matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> On entry, the symmetric positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use is strideB >= ldb*n. !> @param[out] !> D pointer to type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n and evect is rocblas_evect_none, j off-diagonal elements of an !> intermediate tridiagonal form did not converge to zero. !> If info[i] = j <= n and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [j/(n+1), j/(n+1)] to [j%(n+1), j%(n+1)]. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_ssygvd_strided_batched function rocsolver_ssygvd_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_ssygvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssygvd_strided_batched_full_rank,& rocsolver_ssygvd_strided_batched_rank_0,& rocsolver_ssygvd_strided_batched_rank_1 #endif end interface interface rocsolver_dsygvd_strided_batched function rocsolver_dsygvd_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_dsygvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsygvd_strided_batched_full_rank,& rocsolver_dsygvd_strided_batched_rank_0,& rocsolver_dsygvd_strided_batched_rank_1 #endif end interface !> \brief HEGVD_STRIDED_BATCHED computes the eigenvalues and (optionally) !> eigenvectors of a batch of complex generalized hermitian-definite eigenproblems. !> !> \details !> For each instance in the batch, the problem solved by this function is either of the form !> !> \f[ !> \begin{array}{cl} !> A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline !> !> A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline !> !> B_i A_i X_i = \lambda X_i & \: \text{3rd form,} !> \end{array} !> \f] !> !> depending on the value of itype. The eigenvectors are computed using a divide-and-conquer algorithm, depending on the !> value of evect. !> !> When computed, the matrix \f$Z_i\f$ of eigenvectors is normalized as follows: !> !> \f[ !> \begin{array}{cl} !> Z_i^H B_i Z_i=I & \: \text{if 1st or 2nd form, or}\newline !> !> Z_i^H B_i^{-1} Z_i=I & \: \text{if 3rd form.} !> \end{array} !> \f] !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> itype rocblas_eform.\n !> Specifies the form of the generalized eigenproblems. !> @param[in] !> evect rocblas_evect.\n !> Specifies whether the eigenvectors are to be computed. !> If evect is rocblas_evect_original, then the eigenvectors are computed. !> rocblas_evect_tridiagonal is not supported. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower parts of the matrices !> A_i and B_i are stored. If uplo indicates lower (or upper), !> then the upper (or lower) parts of A_i and B_i are not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The matrix dimensions. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the hermitian matrices A_i. On exit, if evect is original, !> the normalized matrix Z_i of eigenvectors. If evect is none, then the upper or lower triangular !> part of the matrices A_i (including the diagonal) are destroyed, !> depending on the value of uplo. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use is strideA >= lda*n. !> @param[out] !> B pointer to type. Array on the GPU (the size depends on the value of strideB).\n !> On entry, the hermitian positive definite matrices B_i. On exit, the !> triangular factor of B_i as returned by \ref rocsolver_spotrf_strided_batched "POTRF_STRIDED_BATCHED". !> @param[in] !> ldb rocblas_int. ldb >= n.\n !> Specifies the leading dimension of B_i. !> @param[in] !> strideB rocblas_stride.\n !> Stride from the start of one matrix B_i to the next one B_(i+1). !> There is no restriction for the value of strideB. Normal use is strideB >= ldb*n. !> @param[out] !> D pointer to real type. Array on the GPU (the size depends on the value of strideD).\n !> On exit, the eigenvalues in increasing order. !> @param[in] !> strideD rocblas_stride.\n !> Stride from the start of one vector D_i to the next one D_(i+1). !> There is no restriction for the value of strideD. Normal use is strideD >= n. !> @param[out] !> E pointer to real type. Array on the GPU (the size depends on the value of strideE).\n !> This array is used to work internally with the tridiagonal matrix T_i associated with !> the ith reduced eigenvalue problem. !> On exit, if 0 < info[i] <= n, it contains the unconverged off-diagonal elements of T_i !> (or properly speaking, a tridiagonal matrix equivalent to T_i). The diagonal elements !> of this matrix are in D_i; those that converged correspond to a subset of the !> eigenvalues (not necessarily ordered). !> @param[in] !> strideE rocblas_stride.\n !> Stride from the start of one vector E_i to the next one E_(i+1). !> There is no restriction for the value of strideE. Normal use is strideE >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit of batch i. !> If info[i] = j <= n and evect is rocblas_evect_none, j off-diagonal elements of an !> intermediate tridiagonal form did not converge to zero. !> If info[i] = j <= n and evect is rocblas_evect_original, the algorithm failed to !> compute an eigenvalue in the submatrix from [j/(n+1), j/(n+1)] to [j%(n+1), j%(n+1)]. !> If info[i] = n + j, the leading minor of order j of B_i is not !> positive definite. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_chegvd_strided_batched function rocsolver_chegvd_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_chegvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_chegvd_strided_batched_full_rank,& rocsolver_chegvd_strided_batched_rank_0,& rocsolver_chegvd_strided_batched_rank_1 #endif end interface interface rocsolver_zhegvd_strided_batched function rocsolver_zhegvd_strided_batched_(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) bind(c, name="rocsolver_zhegvd_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_eform_ax)),value :: itype integer(kind(rocblas_evect_original)),value :: evect integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int64_t),value :: strideB type(c_ptr),value :: D integer(c_int64_t),value :: strideD type(c_ptr),value :: E integer(c_int64_t),value :: strideE integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zhegvd_strided_batched_full_rank,& rocsolver_zhegvd_strided_batched_rank_0,& rocsolver_zhegvd_strided_batched_rank_1 #endif end interface !> \brief GETRI_OUTOFPLACE computes the inverse \f$C = A^{-1}\f$ of a general n-by-n matrix A. !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> AC = I !> \f] !> !> where I is the identity matrix, and A is factorized as \f$A = PLU\f$ as given by \ref rocsolver_sgetrf "GETRF". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> The factors L and U of the factorization A = P*L*U returned by \ref rocsolver_sgetrf "GETRF". !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The pivot indices returned by \ref rocsolver_sgetrf "GETRF". !> @param[out] !> C pointer to type. Array on the GPU of dimension ldc*n.\n !> If info = 0, the inverse of A. Otherwise, undefined. !> @param[in] !> ldc rocblas_int. ldc >= n.\n !> Specifies the leading dimension of C. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, U is singular. U[i,i] is the first zero pivot. !> interface rocsolver_sgetri_outofplace function rocsolver_sgetri_outofplace_(handle,n,A,lda,ipiv,C,ldc,myInfo) bind(c, name="rocsolver_sgetri_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_outofplace_full_rank,& rocsolver_sgetri_outofplace_rank_0,& rocsolver_sgetri_outofplace_rank_1 #endif end interface interface rocsolver_dgetri_outofplace function rocsolver_dgetri_outofplace_(handle,n,A,lda,ipiv,C,ldc,myInfo) bind(c, name="rocsolver_dgetri_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_outofplace_full_rank,& rocsolver_dgetri_outofplace_rank_0,& rocsolver_dgetri_outofplace_rank_1 #endif end interface interface rocsolver_cgetri_outofplace function rocsolver_cgetri_outofplace_(handle,n,A,lda,ipiv,C,ldc,myInfo) bind(c, name="rocsolver_cgetri_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_outofplace_full_rank,& rocsolver_cgetri_outofplace_rank_0,& rocsolver_cgetri_outofplace_rank_1 #endif end interface interface rocsolver_zgetri_outofplace function rocsolver_zgetri_outofplace_(handle,n,A,lda,ipiv,C,ldc,myInfo) bind(c, name="rocsolver_zgetri_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_outofplace_full_rank,& rocsolver_zgetri_outofplace_rank_0,& rocsolver_zgetri_outofplace_rank_1 #endif end interface !> \brief GETRI_OUTOFPLACE_BATCHED computes the inverse \f$C_j = A_j^{-1}\f$ of a batch of general n-by-n matrices \f$A_j\f$. !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> A_j C_j = I !> \f] !> !> where I is the identity matrix, and \f$A_j\f$ is factorized as \f$A_j = P_j L_j U_j\f$ as given by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[in] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> The factors L_j and U_j of the factorization A_j = P_j*L_j*U_j returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> The pivot indices returned by \ref rocsolver_sgetrf_batched "GETRF_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(i+j). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> C array of pointers to type. Each pointer points to an array on the GPU of dimension ldc*n.\n !> If info[j] = 0, the inverse of matrices A_j. Otherwise, undefined. !> @param[in] !> ldc rocblas_int. ldc >= n.\n !> Specifies the leading dimension of C_j. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_outofplace_batched function rocsolver_sgetri_outofplace_batched_(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_sgetri_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_outofplace_batched_full_rank,& rocsolver_sgetri_outofplace_batched_rank_0,& rocsolver_sgetri_outofplace_batched_rank_1 #endif end interface interface rocsolver_dgetri_outofplace_batched function rocsolver_dgetri_outofplace_batched_(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_dgetri_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_outofplace_batched_full_rank,& rocsolver_dgetri_outofplace_batched_rank_0,& rocsolver_dgetri_outofplace_batched_rank_1 #endif end interface interface rocsolver_cgetri_outofplace_batched function rocsolver_cgetri_outofplace_batched_(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_cgetri_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_outofplace_batched_full_rank,& rocsolver_cgetri_outofplace_batched_rank_0,& rocsolver_cgetri_outofplace_batched_rank_1 #endif end interface interface rocsolver_zgetri_outofplace_batched function rocsolver_zgetri_outofplace_batched_(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_zgetri_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_outofplace_batched_full_rank,& rocsolver_zgetri_outofplace_batched_rank_0,& rocsolver_zgetri_outofplace_batched_rank_1 #endif end interface !> \brief GETRI_OUTOFPLACE_STRIDED_BATCHED computes the inverse \f$C_j = A_j^{-1}\f$ of a batch of general n-by-n matrices \f$A_j\f$. !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> A_j C_j = I !> \f] !> !> where I is the identity matrix, and \f$A_j\f$ is factorized as \f$A_j = P_j L_j U_j\f$ as given by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> The factors L_j and U_j of the factorization A_j = P_j*L_j*U_j returned by !> \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[in] !> ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP).\n !> The pivot indices returned by \ref rocsolver_sgetrf_strided_batched "GETRF_STRIDED_BATCHED". !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> C pointer to type. Array on the GPU (the size depends on the value of strideC).\n !> If info[j] = 0, the inverse of matrices A_j. Otherwise, undefined. !> @param[in] !> ldc rocblas_int. ldc >= n.\n !> Specifies the leading dimension of C_j. !> @param[in] !> strideC rocblas_stride.\n !> Stride from the start of one matrix C_j to the next one C_(j+1). !> There is no restriction for the value of strideC. Normal use case is strideC >= ldc*n !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_outofplace_strided_batched function rocsolver_sgetri_outofplace_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_sgetri_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_outofplace_strided_batched_full_rank,& rocsolver_sgetri_outofplace_strided_batched_rank_0,& rocsolver_sgetri_outofplace_strided_batched_rank_1 #endif end interface interface rocsolver_dgetri_outofplace_strided_batched function rocsolver_dgetri_outofplace_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_dgetri_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_outofplace_strided_batched_full_rank,& rocsolver_dgetri_outofplace_strided_batched_rank_0,& rocsolver_dgetri_outofplace_strided_batched_rank_1 #endif end interface interface rocsolver_cgetri_outofplace_strided_batched function rocsolver_cgetri_outofplace_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_cgetri_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_outofplace_strided_batched_full_rank,& rocsolver_cgetri_outofplace_strided_batched_rank_0,& rocsolver_cgetri_outofplace_strided_batched_rank_1 #endif end interface interface rocsolver_zgetri_outofplace_strided_batched function rocsolver_zgetri_outofplace_strided_batched_(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_zgetri_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_outofplace_strided_batched_full_rank,& rocsolver_zgetri_outofplace_strided_batched_rank_0,& rocsolver_zgetri_outofplace_strided_batched_rank_1 #endif end interface !> \brief GETRI_NPVT_OUTOFPLACE computes the inverse \f$C = A^{-1}\f$ of a general n-by-n matrix A without partial pivoting. !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> AC = I !> \f] !> !> where I is the identity matrix, and A is factorized as \f$A = LU\f$ as given by \ref rocsolver_sgetrf_npvt "GETRF_NPVT". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[in] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> The factors L and U of the factorization A = L*U returned by \ref rocsolver_sgetrf_npvt "GETRF_NPVT". !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> C pointer to type. Array on the GPU of dimension ldc*n.\n !> If info = 0, the inverse of A. Otherwise, undefined. !> @param[in] !> ldc rocblas_int. ldc >= n.\n !> Specifies the leading dimension of C. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, U is singular. U[i,i] is the first zero pivot. !> interface rocsolver_sgetri_npvt_outofplace function rocsolver_sgetri_npvt_outofplace_(handle,n,A,lda,C,ldc,myInfo) bind(c, name="rocsolver_sgetri_npvt_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_npvt_outofplace_full_rank,& rocsolver_sgetri_npvt_outofplace_rank_0,& rocsolver_sgetri_npvt_outofplace_rank_1 #endif end interface interface rocsolver_dgetri_npvt_outofplace function rocsolver_dgetri_npvt_outofplace_(handle,n,A,lda,C,ldc,myInfo) bind(c, name="rocsolver_dgetri_npvt_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_npvt_outofplace_full_rank,& rocsolver_dgetri_npvt_outofplace_rank_0,& rocsolver_dgetri_npvt_outofplace_rank_1 #endif end interface interface rocsolver_cgetri_npvt_outofplace function rocsolver_cgetri_npvt_outofplace_(handle,n,A,lda,C,ldc,myInfo) bind(c, name="rocsolver_cgetri_npvt_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_npvt_outofplace_full_rank,& rocsolver_cgetri_npvt_outofplace_rank_0,& rocsolver_cgetri_npvt_outofplace_rank_1 #endif end interface interface rocsolver_zgetri_npvt_outofplace function rocsolver_zgetri_npvt_outofplace_(handle,n,A,lda,C,ldc,myInfo) bind(c, name="rocsolver_zgetri_npvt_outofplace") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_npvt_outofplace_full_rank,& rocsolver_zgetri_npvt_outofplace_rank_0,& rocsolver_zgetri_npvt_outofplace_rank_1 #endif end interface !> \brief GETRI_NPVT_OUTOFPLACE_BATCHED computes the inverse \f$C_j = A_j^{-1}\f$ of a batch of general n-by-n matrices \f$A_j\f$ !> without partial pivoting. !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> A_j C_j = I !> \f] !> !> where I is the identity matrix, and \f$A_j\f$ is factorized as \f$A_j = L_j U_j\f$ as given by \ref rocsolver_sgetrf_npvt_batched "GETRF_NPVT_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[in] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> The factors L_j and U_j of the factorization A_j = L_j*U_j returned by \ref rocsolver_sgetrf_npvt_batched "GETRF_NPVT_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> C array of pointers to type. Each pointer points to an array on the GPU of dimension ldc*n.\n !> If info[j] = 0, the inverse of matrices A_j. Otherwise, undefined. !> @param[in] !> ldc rocblas_int. ldc >= n.\n !> Specifies the leading dimension of C_j. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_npvt_outofplace_batched function rocsolver_sgetri_npvt_outofplace_batched_(handle,n,A,lda,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_sgetri_npvt_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_npvt_outofplace_batched_full_rank,& rocsolver_sgetri_npvt_outofplace_batched_rank_0,& rocsolver_sgetri_npvt_outofplace_batched_rank_1 #endif end interface interface rocsolver_dgetri_npvt_outofplace_batched function rocsolver_dgetri_npvt_outofplace_batched_(handle,n,A,lda,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_dgetri_npvt_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_npvt_outofplace_batched_full_rank,& rocsolver_dgetri_npvt_outofplace_batched_rank_0,& rocsolver_dgetri_npvt_outofplace_batched_rank_1 #endif end interface interface rocsolver_cgetri_npvt_outofplace_batched function rocsolver_cgetri_npvt_outofplace_batched_(handle,n,A,lda,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_cgetri_npvt_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_npvt_outofplace_batched_full_rank,& rocsolver_cgetri_npvt_outofplace_batched_rank_0,& rocsolver_cgetri_npvt_outofplace_batched_rank_1 #endif end interface interface rocsolver_zgetri_npvt_outofplace_batched function rocsolver_zgetri_npvt_outofplace_batched_(handle,n,A,lda,C,ldc,myInfo,batch_count) bind(c, name="rocsolver_zgetri_npvt_outofplace_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: C integer(c_int),value :: ldc integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_npvt_outofplace_batched_full_rank,& rocsolver_zgetri_npvt_outofplace_batched_rank_0,& rocsolver_zgetri_npvt_outofplace_batched_rank_1 #endif end interface !> \brief GETRI_NPVT_OUTOFPLACE_STRIDED_BATCHED computes the inverse \f$C_j = A_j^{-1}\f$ of a batch of general n-by-n matrices \f$A_j\f$ !> without partial pivoting. !> !> \details !> The inverse is computed by solving the linear system !> !> \f[ !> A_j C_j = I !> \f] !> !> where I is the identity matrix, and \f$A_j\f$ is factorized as \f$A_j = L_j U_j\f$ as given by \ref rocsolver_sgetrf_npvt_strided_batched "GETRF_NPVT_STRIDED_BATCHED". !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[in] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> The factors L_j and U_j of the factorization A_j = L_j*U_j returned by !> \ref rocsolver_sgetrf_npvt_strided_batched "GETRF_NPVT_STRIDED_BATCHED". !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> C pointer to type. Array on the GPU (the size depends on the value of strideC).\n !> If info[j] = 0, the inverse of matrices A_j. Otherwise, undefined. !> @param[in] !> ldc rocblas_int. ldc >= n.\n !> Specifies the leading dimension of C_j. !> @param[in] !> strideC rocblas_stride.\n !> Stride from the start of one matrix C_j to the next one C_(j+1). !> There is no restriction for the value of strideC. Normal use case is strideC >= ldc*n !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, U_j is singular. U_j[i,i] is the first zero pivot. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_sgetri_npvt_outofplace_strided_batched function rocsolver_sgetri_npvt_outofplace_strided_batched_(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_sgetri_npvt_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_sgetri_npvt_outofplace_strided_batched_full_rank,& rocsolver_sgetri_npvt_outofplace_strided_batched_rank_0,& rocsolver_sgetri_npvt_outofplace_strided_batched_rank_1 #endif end interface interface rocsolver_dgetri_npvt_outofplace_strided_batched function rocsolver_dgetri_npvt_outofplace_strided_batched_(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_dgetri_npvt_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dgetri_npvt_outofplace_strided_batched_full_rank,& rocsolver_dgetri_npvt_outofplace_strided_batched_rank_0,& rocsolver_dgetri_npvt_outofplace_strided_batched_rank_1 #endif end interface interface rocsolver_cgetri_npvt_outofplace_strided_batched function rocsolver_cgetri_npvt_outofplace_strided_batched_(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_cgetri_npvt_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_cgetri_npvt_outofplace_strided_batched_full_rank,& rocsolver_cgetri_npvt_outofplace_strided_batched_rank_0,& rocsolver_cgetri_npvt_outofplace_strided_batched_rank_1 #endif end interface interface rocsolver_zgetri_npvt_outofplace_strided_batched function rocsolver_zgetri_npvt_outofplace_strided_batched_(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) bind(c, name="rocsolver_zgetri_npvt_outofplace_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_strided_batched_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int64_t),value :: strideC integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zgetri_npvt_outofplace_strided_batched_full_rank,& rocsolver_zgetri_npvt_outofplace_strided_batched_rank_0,& rocsolver_zgetri_npvt_outofplace_strided_batched_rank_1 #endif end interface !> \brief TRTRI inverts a triangular n-by-n matrix A. !> !> \details !> A can be upper or lower triangular, depending on the value of uplo, and unit or non-unit !> triangular, depending on the value of diag. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> diag rocblas_diagonal.\n !> If diag indicates unit, then the diagonal elements of A are not referenced and !> assumed to be one. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the triangular matrix. !> On exit, the inverse of A if info = 0. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info = i > 0, A is singular. A[i,i] is the first zero element in the diagonal. !> interface rocsolver_strtri function rocsolver_strtri_(handle,uplo,diag,n,A,lda,myInfo) bind(c, name="rocsolver_strtri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_strtri_full_rank,& rocsolver_strtri_rank_0,& rocsolver_strtri_rank_1 #endif end interface interface rocsolver_dtrtri function rocsolver_dtrtri_(handle,uplo,diag,n,A,lda,myInfo) bind(c, name="rocsolver_dtrtri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dtrtri_full_rank,& rocsolver_dtrtri_rank_0,& rocsolver_dtrtri_rank_1 #endif end interface interface rocsolver_ctrtri function rocsolver_ctrtri_(handle,uplo,diag,n,A,lda,myInfo) bind(c, name="rocsolver_ctrtri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ctrtri_full_rank,& rocsolver_ctrtri_rank_0,& rocsolver_ctrtri_rank_1 #endif end interface interface rocsolver_ztrtri function rocsolver_ztrtri_(handle,uplo,diag,n,A,lda,myInfo) bind(c, name="rocsolver_ztrtri") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ztrtri_full_rank,& rocsolver_ztrtri_rank_0,& rocsolver_ztrtri_rank_1 #endif end interface !> \brief TRTRI_BATCHED inverts a batch of triangular n-by-n matrices \f$A_j\f$. !> !> \details !> \f$A_j\f$ can be upper or lower triangular, depending on the value of uplo, and unit or non-unit !> triangular, depending on the value of diag. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_j are stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A_j is not used. !> @param[in] !> diag rocblas_diagonal.\n !> If diag indicates unit, then the diagonal elements of matrices A_j are not referenced and !> assumed to be one. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the triangular matrices A_j. !> On exit, the inverses of A_j if info[j] = 0. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, A_j is singular. A_j[i,i] is the first zero element in the diagonal. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_strtri_batched function rocsolver_strtri_batched_(handle,uplo,diag,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_strtri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_strtri_batched_full_rank,& rocsolver_strtri_batched_rank_0,& rocsolver_strtri_batched_rank_1 #endif end interface interface rocsolver_dtrtri_batched function rocsolver_dtrtri_batched_(handle,uplo,diag,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_dtrtri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dtrtri_batched_full_rank,& rocsolver_dtrtri_batched_rank_0,& rocsolver_dtrtri_batched_rank_1 #endif end interface interface rocsolver_ctrtri_batched function rocsolver_ctrtri_batched_(handle,uplo,diag,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_ctrtri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ctrtri_batched_full_rank,& rocsolver_ctrtri_batched_rank_0,& rocsolver_ctrtri_batched_rank_1 #endif end interface interface rocsolver_ztrtri_batched function rocsolver_ztrtri_batched_(handle,uplo,diag,n,A,lda,myInfo,batch_count) bind(c, name="rocsolver_ztrtri_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ztrtri_batched_full_rank,& rocsolver_ztrtri_batched_rank_0,& rocsolver_ztrtri_batched_rank_1 #endif end interface !> \brief TRTRI_STRIDED_BATCHED inverts a batch of triangular n-by-n matrices \f$A_j\f$. !> !> \details !> \f$A_j\f$ can be upper or lower triangular, depending on the value of uplo, and unit or non-unit !> triangular, depending on the value of diag. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_j are stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A_j is not used. !> @param[in] !> diag rocblas_diagonal.\n !> If diag indicates unit, then the diagonal elements of matrices A_j are not referenced and !> assumed to be one. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_j in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the triangular matrices A_j. !> On exit, the inverses of A_j if info[j] = 0. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_j. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_j to the next one A_(j+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[j] = 0, successful exit for inversion of A_j. !> If info[j] = i > 0, A_j is singular. A_j[i,i] is the first zero element in the diagonal. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. !> interface rocsolver_strtri_strided_batched function rocsolver_strtri_strided_batched_(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_strtri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_strtri_strided_batched_full_rank,& rocsolver_strtri_strided_batched_rank_0,& rocsolver_strtri_strided_batched_rank_1 #endif end interface interface rocsolver_dtrtri_strided_batched function rocsolver_dtrtri_strided_batched_(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_dtrtri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dtrtri_strided_batched_full_rank,& rocsolver_dtrtri_strided_batched_rank_0,& rocsolver_dtrtri_strided_batched_rank_1 #endif end interface interface rocsolver_ctrtri_strided_batched function rocsolver_ctrtri_strided_batched_(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_ctrtri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ctrtri_strided_batched_full_rank,& rocsolver_ctrtri_strided_batched_rank_0,& rocsolver_ctrtri_strided_batched_rank_1 #endif end interface interface rocsolver_ztrtri_strided_batched function rocsolver_ztrtri_strided_batched_(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) bind(c, name="rocsolver_ztrtri_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(kind(rocblas_diagonal_non_unit)),value :: diag integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ztrtri_strided_batched_full_rank,& rocsolver_ztrtri_strided_batched_rank_0,& rocsolver_ztrtri_strided_batched_rank_1 #endif end interface !> \brief SYTF2 computes the factorization of a symmetric indefinite matrix \f$A\f$ !> using Bunch-Kaufman diagonal pivoting. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> \begin{array}{cl} !> A = U D U^T & \: \text{or}\newline !> !> A = L D L^T & !> \end{array} !> \f] !> !> where \f$U\f$ or \f$L\f$ is a product of permutation and unit upper/lower !> triangular matrices (depending on the value of uplo), and \f$D\f$ is a symmetric !> block diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks \f$D(k)\f$. !> !> Specifically, \f$U\f$ and \f$L\f$ are computed as !> !> \f[ !> \begin{array}{cl} !> U = P(n) U(n) \cdots P(k) U(k) \cdots & \: \text{and}\newline !> !> L = P(1) L(1) \cdots P(k) L(k) \cdots & !> \end{array} !> \f] !> !> where \f$k\f$ decreases from \f$n\f$ to 1 (increases from 1 to \f$n\f$) in steps of 1 or 2, !> depending on the order of block \f$D(k)\f$, and \f$P(k)\f$ is a permutation matrix defined by !> \f$ipiv[k]\f$. If we let \f$s\f$ denote the order of block \f$D(k)\f$, then \f$U(k)\f$ !> and \f$L(k)\f$ are unit upper/lower triangular matrices defined as !> !> \f[ !> U(k) = \left[ \begin{array}{ccc} !> I_{k-s} & v & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & 0 & I_{n-k} !> \end{array} \right] !> \f] !> !> and !> !> \f[ !> L(k) = \left[ \begin{array}{ccc} !> I_{k-1} & 0 & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & v & I_{n-k-s+1} !> \end{array} \right]. !> \f] !> !> If \f$s = 1\f$, then \f$D(k)\f$ is stored in \f$A[k,k]\f$ and \f$v\f$ is stored in the upper/lower !> part of column \f$k\f$ of \f$A\f$. !> If \f$s = 2\f$ and uplo is upper, then \f$D(k)\f$ is stored in \f$A[k-1,k-1]\f$, \f$A[k-1,k]\f$, !> and \f$A[k,k]\f$, and \f$v\f$ is stored in the upper parts of columns \f$k-1\f$ and \f$k\f$ of \f$A\f$. !> If \f$s = 2\f$ and uplo is lower, then \f$D(k)\f$ is stored in \f$A[k,k]\f$, \f$A[k+1,k]\f$, !> and \f$A[k+1,k+1]\f$, and \f$v\f$ is stored in the lower parts of columns \f$k\f$ and \f$k+1\f$ of \f$A\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrix A to be factored. !> On exit, the block diagonal matrix D and the multipliers needed to !> compute U or L. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= k <= n, if ipiv[k] > 0 then rows and columns k and ipiv[k] !> were interchanged and D[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv[k] = ipiv[k-1] < 0 and uplo is upper (or ipiv[k] !> = ipiv[k+1] < 0 and uplo is lower), then rows and columns k-1 and !> -ipiv[k] (or rows and columns k+1 and -ipiv[k]) were interchanged !> and D[k-1,k-1] to D[k,k] (or D[k,k] to D[k+1,k+1]) is a 2-by-2 !> diagonal block. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info[i] = j > 0, D is singular. D[j,j] is the first diagonal zero. interface rocsolver_ssytf2 function rocsolver_ssytf2_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_ssytf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytf2_full_rank,& rocsolver_ssytf2_rank_0,& rocsolver_ssytf2_rank_1 #endif end interface interface rocsolver_dsytf2 function rocsolver_dsytf2_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_dsytf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytf2_full_rank,& rocsolver_dsytf2_rank_0,& rocsolver_dsytf2_rank_1 #endif end interface interface rocsolver_csytf2 function rocsolver_csytf2_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_csytf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csytf2_full_rank,& rocsolver_csytf2_rank_0,& rocsolver_csytf2_rank_1 #endif end interface interface rocsolver_zsytf2 function rocsolver_zsytf2_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_zsytf2") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsytf2_full_rank,& rocsolver_zsytf2_rank_0,& rocsolver_zsytf2_rank_1 #endif end interface !> \brief SYTF2_BATCHED computes the factorization of a batch of symmetric indefinite !> matrices using Bunch-Kaufman diagonal pivoting. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> \begin{array}{cl} !> A_i = U_i D_i U_i^T & \: \text{or}\newline !> !> A_i = L_i D_i L_i^T & !> \end{array} !> \f] !> !> where \f$U_i\f$ or \f$L_i\f$ is a product of permutation and unit upper/lower !> triangular matrices (depending on the value of uplo), and \f$D_i\f$ is a symmetric !> block diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks \f$D_i(k)\f$. !> !> Specifically, \f$U_i\f$ and \f$L_i\f$ are computed as !> !> \f[ !> \begin{array}{cl} !> U_i = P_i(n) U_i(n) \cdots P_i(k) U_i(k) \cdots & \: \text{and}\newline !> !> L_i = P_i(1) L_i(1) \cdots P_i(k) L_i(k) \cdots & !> \end{array} !> \f] !> !> where \f$k\f$ decreases from \f$n\f$ to 1 (increases from 1 to \f$n\f$) in steps of 1 or 2, !> depending on the order of block \f$D_i(k)\f$, and \f$P_i(k)\f$ is a permutation matrix defined by !> \f$ipiv_i[k]\f$. If we let \f$s\f$ denote the order of block \f$D_i(k)\f$, then \f$U_i(k)\f$ !> and \f$L_i(k)\f$ are unit upper/lower triangular matrices defined as !> !> \f[ !> U_i(k) = \left[ \begin{array}{ccc} !> I_{k-s} & v & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & 0 & I_{n-k} !> \end{array} \right] !> \f] !> !> and !> !> \f[ !> L_i(k) = \left[ \begin{array}{ccc} !> I_{k-1} & 0 & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & v & I_{n-k-s+1} !> \end{array} \right]. !> \f] !> !> If \f$s = 1\f$, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$ and \f$v\f$ is stored in the upper/lower !> part of column \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is upper, then \f$D_i(k)\f$ is stored in \f$A_i[k-1,k-1]\f$, \f$A_i[k-1,k]\f$, !> and \f$A_i[k,k]\f$, and \f$v\f$ is stored in the upper parts of columns \f$k-1\f$ and \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is lower, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$, \f$A_i[k+1,k]\f$, !> and \f$A_i[k+1,k+1]\f$, and \f$v\f$ is stored in the lower parts of columns \f$k\f$ and \f$k+1\f$ of \f$A_i\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A_i is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrices A_i to be factored. !> On exit, the block diagonal matrices D_i and the multipliers needed to !> compute U_i or L_i. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= k <= n, if ipiv_i[k] > 0 then rows and columns k and ipiv_i[k] !> were interchanged and D_i[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv_i[k] = ipiv_i[k-1] < 0 and uplo is upper (or ipiv_i[k] !> = ipiv_i[k+1] < 0 and uplo is lower), then rows and columns k-1 and !> -ipiv_i[k] (or rows and columns k+1 and -ipiv_i[k]) were interchanged !> and D_i[k-1,k-1] to D_i[k,k] (or D_i[k,k] to D_i[k+1,k+1]) is a 2-by-2 !> diagonal block. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, D_i is singular. D_i[j,j] is the first diagonal zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_ssytf2_batched function rocsolver_ssytf2_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_ssytf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytf2_batched_full_rank,& rocsolver_ssytf2_batched_rank_0,& rocsolver_ssytf2_batched_rank_1 #endif end interface interface rocsolver_dsytf2_batched function rocsolver_dsytf2_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dsytf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytf2_batched_full_rank,& rocsolver_dsytf2_batched_rank_0,& rocsolver_dsytf2_batched_rank_1 #endif end interface interface rocsolver_csytf2_batched function rocsolver_csytf2_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_csytf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csytf2_batched_full_rank,& rocsolver_csytf2_batched_rank_0,& rocsolver_csytf2_batched_rank_1 #endif end interface interface rocsolver_zsytf2_batched function rocsolver_zsytf2_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zsytf2_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsytf2_batched_full_rank,& rocsolver_zsytf2_batched_rank_0,& rocsolver_zsytf2_batched_rank_1 #endif end interface !> \brief SYTF2_STRIDED_BATCHED computes the factorization of a batch of symmetric indefinite !> matrices using Bunch-Kaufman diagonal pivoting. !> !> \details !> (This is the unblocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> \begin{array}{cl} !> A_i = U_i D_i U_i^T & \: \text{or}\newline !> !> A_i = L_i D_i L_i^T & !> \end{array} !> \f] !> !> where \f$U_i\f$ or \f$L_i\f$ is a product of permutation and unit upper/lower !> triangular matrices (depending on the value of uplo), and \f$D_i\f$ is a symmetric !> block diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks \f$D_i(k)\f$. !> !> Specifically, \f$U_i\f$ and \f$L_i\f$ are computed as !> !> \f[ !> \begin{array}{cl} !> U_i = P_i(n) U_i(n) \cdots P_i(k) U_i(k) \cdots & \: \text{and}\newline !> !> L_i = P_i(1) L_i(1) \cdots P_i(k) L_i(k) \cdots & !> \end{array} !> \f] !> !> where \f$k\f$ decreases from \f$n\f$ to 1 (increases from 1 to \f$n\f$) in steps of 1 or 2, !> depending on the order of block \f$D_i(k)\f$, and \f$P_i(k)\f$ is a permutation matrix defined by !> \f$ipiv_i[k]\f$. If we let \f$s\f$ denote the order of block \f$D_i(k)\f$, then \f$U_i(k)\f$ !> and \f$L_i(k)\f$ are unit upper/lower triangular matrices defined as !> !> \f[ !> U_i(k) = \left[ \begin{array}{ccc} !> I_{k-s} & v & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & 0 & I_{n-k} !> \end{array} \right] !> \f] !> !> and !> !> \f[ !> L_i(k) = \left[ \begin{array}{ccc} !> I_{k-1} & 0 & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & v & I_{n-k-s+1} !> \end{array} \right]. !> \f] !> !> If \f$s = 1\f$, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$ and \f$v\f$ is stored in the upper/lower !> part of column \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is upper, then \f$D_i(k)\f$ is stored in \f$A_i[k-1,k-1]\f$, \f$A_i[k-1,k]\f$, !> and \f$A_i[k,k]\f$, and \f$v\f$ is stored in the upper parts of columns \f$k-1\f$ and \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is lower, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$, \f$A_i[k+1,k]\f$, !> and \f$A_i[k+1,k+1]\f$, and \f$v\f$ is stored in the lower parts of columns \f$k\f$ and \f$k+1\f$ of \f$A_i\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A_i is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the symmetric matrices A_i to be factored. !> On exit, the block diagonal matrices D_i and the multipliers needed to !> compute U_i or L_i. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= k <= n, if ipiv_i[k] > 0 then rows and columns k and ipiv_i[k] !> were interchanged and D_i[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv_i[k] = ipiv_i[k-1] < 0 and uplo is upper (or ipiv_i[k] !> = ipiv_i[k+1] < 0 and uplo is lower), then rows and columns k-1 and !> -ipiv_i[k] (or rows and columns k+1 and -ipiv_i[k]) were interchanged !> and D_i[k-1,k-1] to D_i[k,k] (or D_i[k,k] to D_i[k+1,k+1]) is a 2-by-2 !> diagonal block. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, D_i is singular. D_i[j,j] is the first diagonal zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_ssytf2_strided_batched function rocsolver_ssytf2_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_ssytf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytf2_strided_batched_full_rank,& rocsolver_ssytf2_strided_batched_rank_0,& rocsolver_ssytf2_strided_batched_rank_1 #endif end interface interface rocsolver_dsytf2_strided_batched function rocsolver_dsytf2_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dsytf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytf2_strided_batched_full_rank,& rocsolver_dsytf2_strided_batched_rank_0,& rocsolver_dsytf2_strided_batched_rank_1 #endif end interface interface rocsolver_csytf2_strided_batched function rocsolver_csytf2_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_csytf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csytf2_strided_batched_full_rank,& rocsolver_csytf2_strided_batched_rank_0,& rocsolver_csytf2_strided_batched_rank_1 #endif end interface interface rocsolver_zsytf2_strided_batched function rocsolver_zsytf2_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zsytf2_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsytf2_strided_batched_full_rank,& rocsolver_zsytf2_strided_batched_rank_0,& rocsolver_zsytf2_strided_batched_rank_1 #endif end interface !> \brief SYTRF computes the factorization of a symmetric indefinite matrix \f$A\f$ !> using Bunch-Kaufman diagonal pivoting. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> \begin{array}{cl} !> A = U D U^T & \: \text{or}\newline !> !> A = L D L^T & !> \end{array} !> \f] !> !> where \f$U\f$ or \f$L\f$ is a product of permutation and unit upper/lower !> triangular matrices (depending on the value of uplo), and \f$D\f$ is a symmetric !> block diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks \f$D(k)\f$. !> !> Specifically, \f$U\f$ and \f$L\f$ are computed as !> !> \f[ !> \begin{array}{cl} !> U = P(n) U(n) \cdots P(k) U(k) \cdots & \: \text{and}\newline !> !> L = P(1) L(1) \cdots P(k) L(k) \cdots & !> \end{array} !> \f] !> !> where \f$k\f$ decreases from \f$n\f$ to 1 (increases from 1 to \f$n\f$) in steps of 1 or 2, !> depending on the order of block \f$D(k)\f$, and \f$P(k)\f$ is a permutation matrix defined by !> \f$ipiv[k]\f$. If we let \f$s\f$ denote the order of block \f$D(k)\f$, then \f$U(k)\f$ !> and \f$L(k)\f$ are unit upper/lower triangular matrices defined as !> !> \f[ !> U(k) = \left[ \begin{array}{ccc} !> I_{k-s} & v & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & 0 & I_{n-k} !> \end{array} \right] !> \f] !> !> and !> !> \f[ !> L(k) = \left[ \begin{array}{ccc} !> I_{k-1} & 0 & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & v & I_{n-k-s+1} !> \end{array} \right]. !> \f] !> !> If \f$s = 1\f$, then \f$D(k)\f$ is stored in \f$A[k,k]\f$ and \f$v\f$ is stored in the upper/lower !> part of column \f$k\f$ of \f$A\f$. !> If \f$s = 2\f$ and uplo is upper, then \f$D(k)\f$ is stored in \f$A[k-1,k-1]\f$, \f$A[k-1,k]\f$, !> and \f$A[k,k]\f$, and \f$v\f$ is stored in the upper parts of columns \f$k-1\f$ and \f$k\f$ of \f$A\f$. !> If \f$s = 2\f$ and uplo is lower, then \f$D(k)\f$ is stored in \f$A[k,k]\f$, \f$A[k+1,k]\f$, !> and \f$A[k+1,k+1]\f$, and \f$v\f$ is stored in the lower parts of columns \f$k\f$ and \f$k+1\f$ of \f$A\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrix A is stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of the matrix A. !> @param[inout] !> A pointer to type. Array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrix A to be factored. !> On exit, the block diagonal matrix D and the multipliers needed to !> compute U or L. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of A. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= k <= n, if ipiv[k] > 0 then rows and columns k and ipiv[k] !> were interchanged and D[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv[k] = ipiv[k-1] < 0 and uplo is upper (or ipiv[k] !> = ipiv[k+1] < 0 and uplo is lower), then rows and columns k-1 and !> -ipiv[k] (or rows and columns k+1 and -ipiv[k]) were interchanged !> and D[k-1,k-1] to D[k,k] (or D[k,k] to D[k+1,k+1]) is a 2-by-2 !> diagonal block. !> @param[out] !> info pointer to a rocblas_int on the GPU.\n !> If info = 0, successful exit. !> If info[i] = j > 0, D is singular. D[j,j] is the first diagonal zero. interface rocsolver_ssytrf function rocsolver_ssytrf_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_ssytrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytrf_full_rank,& rocsolver_ssytrf_rank_0,& rocsolver_ssytrf_rank_1 #endif end interface interface rocsolver_dsytrf function rocsolver_dsytrf_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_dsytrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytrf_full_rank,& rocsolver_dsytrf_rank_0,& rocsolver_dsytrf_rank_1 #endif end interface interface rocsolver_csytrf function rocsolver_csytrf_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_csytrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csytrf_full_rank,& rocsolver_csytrf_rank_0,& rocsolver_csytrf_rank_1 #endif end interface interface rocsolver_zsytrf function rocsolver_zsytrf_(handle,uplo,n,A,lda,ipiv,myInfo) bind(c, name="rocsolver_zsytrf") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int) :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsytrf_full_rank,& rocsolver_zsytrf_rank_0,& rocsolver_zsytrf_rank_1 #endif end interface !> \brief SYTRF_BATCHED computes the factorization of a batch of symmetric indefinite !> matrices using Bunch-Kaufman diagonal pivoting. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> \begin{array}{cl} !> A_i = U_i D_i U_i^T & \: \text{or}\newline !> !> A_i = L_i D_i L_i^T & !> \end{array} !> \f] !> !> where \f$U_i\f$ or \f$L_i\f$ is a product of permutation and unit upper/lower !> triangular matrices (depending on the value of uplo), and \f$D_i\f$ is a symmetric !> block diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks \f$D_i(k)\f$. !> !> Specifically, \f$U_i\f$ and \f$L_i\f$ are computed as !> !> \f[ !> \begin{array}{cl} !> U_i = P_i(n) U_i(n) \cdots P_i(k) U_i(k) \cdots & \: \text{and}\newline !> !> L_i = P_i(1) L_i(1) \cdots P_i(k) L_i(k) \cdots & !> \end{array} !> \f] !> !> where \f$k\f$ decreases from \f$n\f$ to 1 (increases from 1 to \f$n\f$) in steps of 1 or 2, !> depending on the order of block \f$D_i(k)\f$, and \f$P_i(k)\f$ is a permutation matrix defined by !> \f$ipiv_i[k]\f$. If we let \f$s\f$ denote the order of block \f$D_i(k)\f$, then \f$U_i(k)\f$ !> and \f$L_i(k)\f$ are unit upper/lower triangular matrices defined as !> !> \f[ !> U_i(k) = \left[ \begin{array}{ccc} !> I_{k-s} & v & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & 0 & I_{n-k} !> \end{array} \right] !> \f] !> !> and !> !> \f[ !> L_i(k) = \left[ \begin{array}{ccc} !> I_{k-1} & 0 & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & v & I_{n-k-s+1} !> \end{array} \right]. !> \f] !> !> If \f$s = 1\f$, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$ and \f$v\f$ is stored in the upper/lower !> part of column \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is upper, then \f$D_i(k)\f$ is stored in \f$A_i[k-1,k-1]\f$, \f$A_i[k-1,k]\f$, !> and \f$A_i[k,k]\f$, and \f$v\f$ is stored in the upper parts of columns \f$k-1\f$ and \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is lower, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$, \f$A_i[k+1,k]\f$, !> and \f$A_i[k+1,k+1]\f$, and \f$v\f$ is stored in the lower parts of columns \f$k\f$ and \f$k+1\f$ of \f$A_i\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A_i is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_i in the batch. !> @param[inout] !> A array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.\n !> On entry, the symmetric matrices A_i to be factored. !> On exit, the block diagonal matrices D_i and the multipliers needed to !> compute U_i or L_i. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= k <= n, if ipiv_i[k] > 0 then rows and columns k and ipiv_i[k] !> were interchanged and D_i[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv_i[k] = ipiv_i[k-1] < 0 and uplo is upper (or ipiv_i[k] !> = ipiv_i[k+1] < 0 and uplo is lower), then rows and columns k-1 and !> -ipiv_i[k] (or rows and columns k+1 and -ipiv_i[k]) were interchanged !> and D_i[k-1,k-1] to D_i[k,k] (or D_i[k,k] to D_i[k+1,k+1]) is a 2-by-2 !> diagonal block. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, D_i is singular. D_i[j,j] is the first diagonal zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_ssytrf_batched function rocsolver_ssytrf_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_ssytrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytrf_batched_full_rank,& rocsolver_ssytrf_batched_rank_0,& rocsolver_ssytrf_batched_rank_1 #endif end interface interface rocsolver_dsytrf_batched function rocsolver_dsytrf_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dsytrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytrf_batched_full_rank,& rocsolver_dsytrf_batched_rank_0,& rocsolver_dsytrf_batched_rank_1 #endif end interface interface rocsolver_csytrf_batched function rocsolver_csytrf_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_csytrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csytrf_batched_full_rank,& rocsolver_csytrf_batched_rank_0,& rocsolver_csytrf_batched_rank_1 #endif end interface interface rocsolver_zsytrf_batched function rocsolver_zsytrf_batched_(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zsytrf_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsytrf_batched_full_rank,& rocsolver_zsytrf_batched_rank_0,& rocsolver_zsytrf_batched_rank_1 #endif end interface !> \brief SYTRF_STRIDED_BATCHED computes the factorization of a batch of symmetric indefinite !> matrices using Bunch-Kaufman diagonal pivoting. !> !> \details !> (This is the blocked version of the algorithm). !> !> The factorization has the form !> !> \f[ !> \begin{array}{cl} !> A_i = U_i D_i U_i^T & \: \text{or}\newline !> !> A_i = L_i D_i L_i^T & !> \end{array} !> \f] !> !> where \f$U_i\f$ or \f$L_i\f$ is a product of permutation and unit upper/lower !> triangular matrices (depending on the value of uplo), and \f$D_i\f$ is a symmetric !> block diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks \f$D_i(k)\f$. !> !> Specifically, \f$U_i\f$ and \f$L_i\f$ are computed as !> !> \f[ !> \begin{array}{cl} !> U_i = P_i(n) U_i(n) \cdots P_i(k) U_i(k) \cdots & \: \text{and}\newline !> !> L_i = P_i(1) L_i(1) \cdots P_i(k) L_i(k) \cdots & !> \end{array} !> \f] !> !> where \f$k\f$ decreases from \f$n\f$ to 1 (increases from 1 to \f$n\f$) in steps of 1 or 2, !> depending on the order of block \f$D_i(k)\f$, and \f$P_i(k)\f$ is a permutation matrix defined by !> \f$ipiv_i[k]\f$. If we let \f$s\f$ denote the order of block \f$D_i(k)\f$, then \f$U_i(k)\f$ !> and \f$L_i(k)\f$ are unit upper/lower triangular matrices defined as !> !> \f[ !> U_i(k) = \left[ \begin{array}{ccc} !> I_{k-s} & v & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & 0 & I_{n-k} !> \end{array} \right] !> \f] !> !> and !> !> \f[ !> L_i(k) = \left[ \begin{array}{ccc} !> I_{k-1} & 0 & 0 \newline !> !> 0 & I_s & 0 \newline !> !> 0 & v & I_{n-k-s+1} !> \end{array} \right]. !> \f] !> !> If \f$s = 1\f$, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$ and \f$v\f$ is stored in the upper/lower !> part of column \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is upper, then \f$D_i(k)\f$ is stored in \f$A_i[k-1,k-1]\f$, \f$A_i[k-1,k]\f$, !> and \f$A_i[k,k]\f$, and \f$v\f$ is stored in the upper parts of columns \f$k-1\f$ and \f$k\f$ of \f$A_i\f$. !> If \f$s = 2\f$ and uplo is lower, then \f$D_i(k)\f$ is stored in \f$A_i[k,k]\f$, \f$A_i[k+1,k]\f$, !> and \f$A_i[k+1,k+1]\f$, and \f$v\f$ is stored in the lower parts of columns \f$k\f$ and \f$k+1\f$ of \f$A_i\f$. !> !> @param[in] !> handle rocblas_handle. !> @param[in] !> uplo rocblas_fill.\n !> Specifies whether the upper or lower part of the matrices A_i are stored. !> If uplo indicates lower (or upper), then the upper (or lower) !> part of A_i is not used. !> @param[in] !> n rocblas_int. n >= 0.\n !> The number of rows and columns of all matrices A_i in the batch. !> @param[inout] !> A pointer to type. Array on the GPU (the size depends on the value of strideA).\n !> On entry, the symmetric matrices A_i to be factored. !> On exit, the block diagonal matrices D_i and the multipliers needed to !> compute U_i or L_i. !> @param[in] !> lda rocblas_int. lda >= n.\n !> Specifies the leading dimension of matrices A_i. !> @param[in] !> strideA rocblas_stride.\n !> Stride from the start of one matrix A_i to the next one A_(i+1). !> There is no restriction for the value of strideA. Normal use case is strideA >= lda*n !> @param[out] !> ipiv pointer to rocblas_int. Array on the GPU of dimension n.\n !> The vector of pivot indices. Elements of ipiv are 1-based indices. !> For 1 <= k <= n, if ipiv_i[k] > 0 then rows and columns k and ipiv_i[k] !> were interchanged and D_i[k,k] is a 1-by-1 diagonal block. !> If, instead, ipiv_i[k] = ipiv_i[k-1] < 0 and uplo is upper (or ipiv_i[k] !> = ipiv_i[k+1] < 0 and uplo is lower), then rows and columns k-1 and !> -ipiv_i[k] (or rows and columns k+1 and -ipiv_i[k]) were interchanged !> and D_i[k-1,k-1] to D_i[k,k] (or D_i[k,k] to D_i[k+1,k+1]) is a 2-by-2 !> diagonal block. !> @param[in] !> strideP rocblas_stride.\n !> Stride from the start of one vector ipiv_i to the next one ipiv_(i+1). !> There is no restriction for the value of strideP. Normal use case is strideP >= n. !> @param[out] !> info pointer to rocblas_int. Array of batch_count integers on the GPU.\n !> If info[i] = 0, successful exit for factorization of A_i. !> If info[i] = j > 0, D_i is singular. D_i[j,j] is the first diagonal zero. !> @param[in] !> batch_count rocblas_int. batch_count >= 0.\n !> Number of matrices in the batch. interface rocsolver_ssytrf_strided_batched function rocsolver_ssytrf_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_ssytrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_ssytrf_strided_batched_full_rank,& rocsolver_ssytrf_strided_batched_rank_0,& rocsolver_ssytrf_strided_batched_rank_1 #endif end interface interface rocsolver_dsytrf_strided_batched function rocsolver_dsytrf_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_dsytrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_dsytrf_strided_batched_full_rank,& rocsolver_dsytrf_strided_batched_rank_0,& rocsolver_dsytrf_strided_batched_rank_1 #endif end interface interface rocsolver_csytrf_strided_batched function rocsolver_csytrf_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_csytrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_csytrf_strided_batched_full_rank,& rocsolver_csytrf_strided_batched_rank_0,& rocsolver_csytrf_strided_batched_rank_1 #endif end interface interface rocsolver_zsytrf_strided_batched function rocsolver_zsytrf_strided_batched_(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) bind(c, name="rocsolver_zsytrf_strided_batched") use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_strided_batched_ type(c_ptr),value :: handle integer(kind(rocblas_fill_upper)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int64_t),value :: strideA type(c_ptr),value :: ipiv integer(c_int64_t),value :: strideP integer(c_int) :: myInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsolver_zsytrf_strided_batched_full_rank,& rocsolver_zsytrf_strided_batched_rank_0,& rocsolver_zsytrf_strided_batched_rank_1 #endif end interface #ifdef USE_FPOINTER_INTERFACES contains function rocsolver_clacgv_rank_0(handle,n,x,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clacgv_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx ! rocsolver_clacgv_rank_0 = rocsolver_clacgv_(handle,n,c_loc(x),incx) end function function rocsolver_clacgv_rank_1(handle,n,x,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clacgv_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocsolver_clacgv_rank_1 = rocsolver_clacgv_(handle,n,c_loc(x),incx) end function function rocsolver_zlacgv_rank_0(handle,n,x,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlacgv_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx ! rocsolver_zlacgv_rank_0 = rocsolver_zlacgv_(handle,n,c_loc(x),incx) end function function rocsolver_zlacgv_rank_1(handle,n,x,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlacgv_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx ! rocsolver_zlacgv_rank_1 = rocsolver_zlacgv_(handle,n,c_loc(x),incx) end function function rocsolver_slaswp_full_rank(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slaswp_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_slaswp_full_rank = rocsolver_slaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_slaswp_rank_0(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slaswp_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target :: ipiv integer(c_int) :: incx ! rocsolver_slaswp_rank_0 = rocsolver_slaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_slaswp_rank_1(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slaswp_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_slaswp_rank_1 = rocsolver_slaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_dlaswp_full_rank(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlaswp_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_dlaswp_full_rank = rocsolver_dlaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_dlaswp_rank_0(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlaswp_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target :: ipiv integer(c_int) :: incx ! rocsolver_dlaswp_rank_0 = rocsolver_dlaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_dlaswp_rank_1(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlaswp_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_dlaswp_rank_1 = rocsolver_dlaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_claswp_full_rank(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_claswp_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_claswp_full_rank = rocsolver_claswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_claswp_rank_0(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_claswp_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target :: ipiv integer(c_int) :: incx ! rocsolver_claswp_rank_0 = rocsolver_claswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_claswp_rank_1(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_claswp_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_claswp_rank_1 = rocsolver_claswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_zlaswp_full_rank(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlaswp_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_zlaswp_full_rank = rocsolver_zlaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_zlaswp_rank_0(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlaswp_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target :: ipiv integer(c_int) :: incx ! rocsolver_zlaswp_rank_0 = rocsolver_zlaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_zlaswp_rank_1(handle,n,A,lda,k1,k2,ipiv,incx) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlaswp_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: k1 integer(c_int) :: k2 integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: incx ! rocsolver_zlaswp_rank_1 = rocsolver_zlaswp_(handle,n,c_loc(A),lda,k1,k2,c_loc(ipiv),incx) end function function rocsolver_slarfg_rank_0(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfg_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: x integer(c_int) :: incx real(c_float) :: tau ! rocsolver_slarfg_rank_0 = rocsolver_slarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_slarfg_rank_1(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfg_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: tau ! rocsolver_slarfg_rank_1 = rocsolver_slarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_dlarfg_rank_0(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfg_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: x integer(c_int) :: incx real(c_double) :: tau ! rocsolver_dlarfg_rank_0 = rocsolver_dlarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_dlarfg_rank_1(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfg_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: tau ! rocsolver_dlarfg_rank_1 = rocsolver_dlarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_clarfg_rank_0(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfg_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: tau ! rocsolver_clarfg_rank_0 = rocsolver_clarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_clarfg_rank_1(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfg_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: tau ! rocsolver_clarfg_rank_1 = rocsolver_clarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_zlarfg_rank_0(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfg_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: tau ! rocsolver_zlarfg_rank_0 = rocsolver_zlarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_zlarfg_rank_1(handle,n,alpha,x,incx,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfg_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: tau ! rocsolver_zlarfg_rank_1 = rocsolver_zlarfg_(handle,n,alpha,c_loc(x),incx,tau) end function function rocsolver_slarft_full_rank(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarft_full_rank type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_float) :: tau real(c_float),target,dimension(:,:) :: T integer(c_int) :: ldt ! rocsolver_slarft_full_rank = rocsolver_slarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_slarft_rank_0(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarft_rank_0 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k real(c_float),target :: V integer(c_int) :: ldv real(c_float) :: tau real(c_float),target :: T integer(c_int) :: ldt ! rocsolver_slarft_rank_0 = rocsolver_slarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_slarft_rank_1(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarft_rank_1 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: V integer(c_int) :: ldv real(c_float) :: tau real(c_float),target,dimension(:) :: T integer(c_int) :: ldt ! rocsolver_slarft_rank_1 = rocsolver_slarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_dlarft_full_rank(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarft_full_rank type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_double) :: tau real(c_double),target,dimension(:,:) :: T integer(c_int) :: ldt ! rocsolver_dlarft_full_rank = rocsolver_dlarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_dlarft_rank_0(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarft_rank_0 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k real(c_double),target :: V integer(c_int) :: ldv real(c_double) :: tau real(c_double),target :: T integer(c_int) :: ldt ! rocsolver_dlarft_rank_0 = rocsolver_dlarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_dlarft_rank_1(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarft_rank_1 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: V integer(c_int) :: ldv real(c_double) :: tau real(c_double),target,dimension(:) :: T integer(c_int) :: ldt ! rocsolver_dlarft_rank_1 = rocsolver_dlarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_clarft_full_rank(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarft_full_rank type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: V integer(c_int) :: ldv complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:,:) :: T integer(c_int) :: ldt ! rocsolver_clarft_full_rank = rocsolver_clarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_clarft_rank_0(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarft_rank_0 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: V integer(c_int) :: ldv complex(c_float_complex) :: tau complex(c_float_complex),target :: T integer(c_int) :: ldt ! rocsolver_clarft_rank_0 = rocsolver_clarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_clarft_rank_1(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarft_rank_1 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: V integer(c_int) :: ldv complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:) :: T integer(c_int) :: ldt ! rocsolver_clarft_rank_1 = rocsolver_clarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_zlarft_full_rank(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarft_full_rank type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: V integer(c_int) :: ldv complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:,:) :: T integer(c_int) :: ldt ! rocsolver_zlarft_full_rank = rocsolver_zlarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_zlarft_rank_0(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarft_rank_0 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: V integer(c_int) :: ldv complex(c_double_complex) :: tau complex(c_double_complex),target :: T integer(c_int) :: ldt ! rocsolver_zlarft_rank_0 = rocsolver_zlarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_zlarft_rank_1(handle,myDirect,storev,n,k,V,ldv,tau,T,ldt) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarft_rank_1 type(c_ptr) :: handle integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: V integer(c_int) :: ldv complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:) :: T integer(c_int) :: ldt ! rocsolver_zlarft_rank_1 = rocsolver_zlarft_(handle,myDirect,storev,n,k,c_loc(V),ldv,tau,c_loc(T),ldt) end function function rocsolver_slarf_full_rank(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarf_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_slarf_full_rank = rocsolver_slarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_slarf_rank_0(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target :: x integer(c_int) :: incx real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda ! rocsolver_slarf_rank_0 = rocsolver_slarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_slarf_rank_1(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: x integer(c_int) :: incx real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_slarf_rank_1 = rocsolver_slarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_dlarf_full_rank(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarf_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_dlarf_full_rank = rocsolver_dlarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_dlarf_rank_0(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target :: x integer(c_int) :: incx real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda ! rocsolver_dlarf_rank_0 = rocsolver_dlarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_dlarf_rank_1(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: x integer(c_int) :: incx real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_dlarf_rank_1 = rocsolver_dlarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_clarf_full_rank(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarf_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_clarf_full_rank = rocsolver_clarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_clarf_rank_0(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: x integer(c_int) :: incx complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda ! rocsolver_clarf_rank_0 = rocsolver_clarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_clarf_rank_1(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_clarf_rank_1 = rocsolver_clarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_zlarf_full_rank(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarf_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_zlarf_full_rank = rocsolver_zlarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_zlarf_rank_0(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: x integer(c_int) :: incx complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda ! rocsolver_zlarf_rank_0 = rocsolver_zlarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_zlarf_rank_1(handle,side,m,n,x,incx,alpha,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: incx complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_zlarf_rank_1 = rocsolver_zlarf_(handle,side,m,n,c_loc(x),incx,alpha,c_loc(A),lda) end function function rocsolver_slarfb_full_rank(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfb_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:,:) :: T integer(c_int) :: ldt real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_slarfb_full_rank = rocsolver_slarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_slarfb_rank_0(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfb_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: V integer(c_int) :: ldv real(c_float),target :: T integer(c_int) :: ldt real(c_float),target :: A integer(c_int) :: lda ! rocsolver_slarfb_rank_0 = rocsolver_slarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_slarfb_rank_1(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slarfb_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:) :: T integer(c_int) :: ldt real(c_float),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_slarfb_rank_1 = rocsolver_slarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_dlarfb_full_rank(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfb_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:,:) :: T integer(c_int) :: ldt real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_dlarfb_full_rank = rocsolver_dlarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_dlarfb_rank_0(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfb_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: V integer(c_int) :: ldv real(c_double),target :: T integer(c_int) :: ldt real(c_double),target :: A integer(c_int) :: lda ! rocsolver_dlarfb_rank_0 = rocsolver_dlarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_dlarfb_rank_1(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlarfb_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:) :: T integer(c_int) :: ldt real(c_double),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_dlarfb_rank_1 = rocsolver_dlarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_clarfb_full_rank(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfb_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: V integer(c_int) :: ldv complex(c_float_complex),target,dimension(:,:) :: T integer(c_int) :: ldt complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_clarfb_full_rank = rocsolver_clarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_clarfb_rank_0(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfb_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: V integer(c_int) :: ldv complex(c_float_complex),target :: T integer(c_int) :: ldt complex(c_float_complex),target :: A integer(c_int) :: lda ! rocsolver_clarfb_rank_0 = rocsolver_clarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_clarfb_rank_1(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clarfb_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: V integer(c_int) :: ldv complex(c_float_complex),target,dimension(:) :: T integer(c_int) :: ldt complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_clarfb_rank_1 = rocsolver_clarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_zlarfb_full_rank(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfb_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: V integer(c_int) :: ldv complex(c_double_complex),target,dimension(:,:) :: T integer(c_int) :: ldt complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda ! rocsolver_zlarfb_full_rank = rocsolver_zlarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_zlarfb_rank_0(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfb_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: V integer(c_int) :: ldv complex(c_double_complex),target :: T integer(c_int) :: ldt complex(c_double_complex),target :: A integer(c_int) :: lda ! rocsolver_zlarfb_rank_0 = rocsolver_zlarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_zlarfb_rank_1(handle,side,trans,myDirect,storev,m,n,k,V,ldv,T,ldt,A,lda) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlarfb_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(kind(rocblas_forward_direction)) :: myDirect integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: V integer(c_int) :: ldv complex(c_double_complex),target,dimension(:) :: T integer(c_int) :: ldt complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda ! rocsolver_zlarfb_rank_1 = rocsolver_zlarfb_(handle,side,trans,myDirect,storev,m,n,k,c_loc(V),ldv,c_loc(T),ldt,c_loc(A),lda) end function function rocsolver_slabrd_full_rank(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slabrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup real(c_float),target,dimension(:,:) :: X integer(c_int) :: ldx real(c_float),target,dimension(:,:) :: Y integer(c_int) :: ldy ! rocsolver_slabrd_full_rank = rocsolver_slabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_slabrd_rank_0(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slabrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float),target :: tauq real(c_float),target :: taup real(c_float),target :: X integer(c_int) :: ldx real(c_float),target :: Y integer(c_int) :: ldy ! rocsolver_slabrd_rank_0 = rocsolver_slabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_slabrd_rank_1(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slabrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup real(c_float),target,dimension(:) :: X integer(c_int) :: ldx real(c_float),target,dimension(:) :: Y integer(c_int) :: ldy ! rocsolver_slabrd_rank_1 = rocsolver_slabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_dlabrd_full_rank(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlabrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup real(c_double),target,dimension(:,:) :: X integer(c_int) :: ldx real(c_double),target,dimension(:,:) :: Y integer(c_int) :: ldy ! rocsolver_dlabrd_full_rank = rocsolver_dlabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_dlabrd_rank_0(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlabrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double),target :: tauq real(c_double),target :: taup real(c_double),target :: X integer(c_int) :: ldx real(c_double),target :: Y integer(c_int) :: ldy ! rocsolver_dlabrd_rank_0 = rocsolver_dlabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_dlabrd_rank_1(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlabrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup real(c_double),target,dimension(:) :: X integer(c_int) :: ldx real(c_double),target,dimension(:) :: Y integer(c_int) :: ldy ! rocsolver_dlabrd_rank_1 = rocsolver_dlabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_clabrd_full_rank(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clabrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup complex(c_float_complex),target,dimension(:,:) :: X integer(c_int) :: ldx complex(c_float_complex),target,dimension(:,:) :: Y integer(c_int) :: ldy ! rocsolver_clabrd_full_rank = rocsolver_clabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_clabrd_rank_0(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clabrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: tauq complex(c_float_complex),target :: taup complex(c_float_complex),target :: X integer(c_int) :: ldx complex(c_float_complex),target :: Y integer(c_int) :: ldy ! rocsolver_clabrd_rank_0 = rocsolver_clabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_clabrd_rank_1(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clabrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup complex(c_float_complex),target,dimension(:) :: X integer(c_int) :: ldx complex(c_float_complex),target,dimension(:) :: Y integer(c_int) :: ldy ! rocsolver_clabrd_rank_1 = rocsolver_clabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_zlabrd_full_rank(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlabrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup complex(c_double_complex),target,dimension(:,:) :: X integer(c_int) :: ldx complex(c_double_complex),target,dimension(:,:) :: Y integer(c_int) :: ldy ! rocsolver_zlabrd_full_rank = rocsolver_zlabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_zlabrd_rank_0(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlabrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: tauq complex(c_double_complex),target :: taup complex(c_double_complex),target :: X integer(c_int) :: ldx complex(c_double_complex),target :: Y integer(c_int) :: ldy ! rocsolver_zlabrd_rank_0 = rocsolver_zlabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_zlabrd_rank_1(handle,m,n,k,A,lda,D,E,tauq,taup,X,ldx,Y,ldy) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlabrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup complex(c_double_complex),target,dimension(:) :: X integer(c_int) :: ldx complex(c_double_complex),target,dimension(:) :: Y integer(c_int) :: ldy ! rocsolver_zlabrd_rank_1 = rocsolver_zlabrd_(handle,m,n,k,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),c_loc(X),ldx,c_loc(Y),ldy) end function function rocsolver_slatrd_full_rank(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slatrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: E real(c_float) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_slatrd_full_rank = rocsolver_slatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_slatrd_rank_0(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slatrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: E real(c_float) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_slatrd_rank_0 = rocsolver_slatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_slatrd_rank_1(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slatrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: E real(c_float) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_slatrd_rank_1 = rocsolver_slatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_dlatrd_full_rank(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlatrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: E real(c_double) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_dlatrd_full_rank = rocsolver_dlatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_dlatrd_rank_0(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlatrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: E real(c_double) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_dlatrd_rank_0 = rocsolver_dlatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_dlatrd_rank_1(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlatrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: E real(c_double) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_dlatrd_rank_1 = rocsolver_dlatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_clatrd_full_rank(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clatrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_clatrd_full_rank = rocsolver_clatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_clatrd_rank_0(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clatrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: E complex(c_float_complex) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_clatrd_rank_0 = rocsolver_clatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_clatrd_rank_1(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clatrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_clatrd_rank_1 = rocsolver_clatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_zlatrd_full_rank(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlatrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_zlatrd_full_rank = rocsolver_zlatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_zlatrd_rank_0(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlatrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: E complex(c_double_complex) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_zlatrd_rank_0 = rocsolver_zlatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_zlatrd_rank_1(handle,uplo,n,k,A,lda,E,tau,W,ldw) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlatrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau type(c_ptr) :: W integer(c_int) :: ldw ! rocsolver_zlatrd_rank_1 = rocsolver_zlatrd_(handle,uplo,n,k,c_loc(A),lda,c_loc(E),tau,W,ldw) end function function rocsolver_slasyf_full_rank(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slasyf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_slasyf_full_rank = rocsolver_slasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_slasyf_rank_0(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slasyf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_slasyf_rank_0 = rocsolver_slasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_slasyf_rank_1(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_slasyf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_slasyf_rank_1 = rocsolver_slasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dlasyf_full_rank(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlasyf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dlasyf_full_rank = rocsolver_dlasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dlasyf_rank_0(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlasyf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_dlasyf_rank_0 = rocsolver_dlasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dlasyf_rank_1(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dlasyf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dlasyf_rank_1 = rocsolver_dlasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_clasyf_full_rank(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clasyf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_clasyf_full_rank = rocsolver_clasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_clasyf_rank_0(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clasyf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_clasyf_rank_0 = rocsolver_clasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_clasyf_rank_1(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_clasyf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_clasyf_rank_1 = rocsolver_clasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zlasyf_full_rank(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlasyf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zlasyf_full_rank = rocsolver_zlasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zlasyf_rank_0(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlasyf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_zlasyf_rank_0 = rocsolver_zlasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zlasyf_rank_1(handle,uplo,n,nb,kb,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zlasyf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nb type(c_ptr) :: kb complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zlasyf_rank_1 = rocsolver_zlasyf_(handle,uplo,n,nb,kb,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sorg2r_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2r_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorg2r_full_rank = rocsolver_sorg2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorg2r_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2r_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorg2r_rank_0 = rocsolver_sorg2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorg2r_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2r_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorg2r_rank_1 = rocsolver_sorg2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorg2r_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2r_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorg2r_full_rank = rocsolver_dorg2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorg2r_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2r_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorg2r_rank_0 = rocsolver_dorg2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorg2r_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2r_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorg2r_rank_1 = rocsolver_dorg2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cung2r_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2r_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cung2r_full_rank = rocsolver_cung2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cung2r_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2r_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cung2r_rank_0 = rocsolver_cung2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cung2r_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2r_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cung2r_rank_1 = rocsolver_cung2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zung2r_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2r_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zung2r_full_rank = rocsolver_zung2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zung2r_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2r_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zung2r_rank_0 = rocsolver_zung2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zung2r_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2r_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zung2r_rank_1 = rocsolver_zung2r_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgqr_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgqr_full_rank = rocsolver_sorgqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgqr_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorgqr_rank_0 = rocsolver_sorgqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgqr_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgqr_rank_1 = rocsolver_sorgqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgqr_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgqr_full_rank = rocsolver_dorgqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgqr_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorgqr_rank_0 = rocsolver_dorgqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgqr_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgqr_rank_1 = rocsolver_dorgqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungqr_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungqr_full_rank = rocsolver_cungqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungqr_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cungqr_rank_0 = rocsolver_cungqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungqr_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungqr_rank_1 = rocsolver_cungqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungqr_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungqr_full_rank = rocsolver_zungqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungqr_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zungqr_rank_0 = rocsolver_zungqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungqr_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungqr_rank_1 = rocsolver_zungqr_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgl2_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgl2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgl2_full_rank = rocsolver_sorgl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgl2_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgl2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorgl2_rank_0 = rocsolver_sorgl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgl2_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgl2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgl2_rank_1 = rocsolver_sorgl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgl2_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgl2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgl2_full_rank = rocsolver_dorgl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgl2_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgl2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorgl2_rank_0 = rocsolver_dorgl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgl2_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgl2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgl2_rank_1 = rocsolver_dorgl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungl2_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungl2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungl2_full_rank = rocsolver_cungl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungl2_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungl2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cungl2_rank_0 = rocsolver_cungl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungl2_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungl2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungl2_rank_1 = rocsolver_cungl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungl2_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungl2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungl2_full_rank = rocsolver_zungl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungl2_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungl2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zungl2_rank_0 = rocsolver_zungl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungl2_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungl2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungl2_rank_1 = rocsolver_zungl2_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorglq_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorglq_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorglq_full_rank = rocsolver_sorglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorglq_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorglq_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorglq_rank_0 = rocsolver_sorglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorglq_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorglq_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorglq_rank_1 = rocsolver_sorglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorglq_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorglq_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorglq_full_rank = rocsolver_dorglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorglq_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorglq_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorglq_rank_0 = rocsolver_dorglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorglq_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorglq_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorglq_rank_1 = rocsolver_dorglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cunglq_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunglq_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cunglq_full_rank = rocsolver_cunglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cunglq_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunglq_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cunglq_rank_0 = rocsolver_cunglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cunglq_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunglq_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cunglq_rank_1 = rocsolver_cunglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zunglq_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunglq_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zunglq_full_rank = rocsolver_zunglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zunglq_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunglq_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zunglq_rank_0 = rocsolver_zunglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zunglq_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunglq_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zunglq_rank_1 = rocsolver_zunglq_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorg2l_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2l_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorg2l_full_rank = rocsolver_sorg2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorg2l_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2l_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorg2l_rank_0 = rocsolver_sorg2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorg2l_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorg2l_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorg2l_rank_1 = rocsolver_sorg2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorg2l_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2l_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorg2l_full_rank = rocsolver_dorg2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorg2l_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2l_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorg2l_rank_0 = rocsolver_dorg2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorg2l_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorg2l_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorg2l_rank_1 = rocsolver_dorg2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cung2l_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2l_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cung2l_full_rank = rocsolver_cung2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cung2l_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2l_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cung2l_rank_0 = rocsolver_cung2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cung2l_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cung2l_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cung2l_rank_1 = rocsolver_cung2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zung2l_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2l_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zung2l_full_rank = rocsolver_zung2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zung2l_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2l_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zung2l_rank_0 = rocsolver_zung2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zung2l_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zung2l_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zung2l_rank_1 = rocsolver_zung2l_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgql_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgql_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgql_full_rank = rocsolver_sorgql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgql_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgql_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorgql_rank_0 = rocsolver_sorgql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgql_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgql_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgql_rank_1 = rocsolver_sorgql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgql_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgql_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgql_full_rank = rocsolver_dorgql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgql_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgql_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorgql_rank_0 = rocsolver_dorgql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgql_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgql_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgql_rank_1 = rocsolver_dorgql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungql_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungql_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungql_full_rank = rocsolver_cungql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungql_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungql_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cungql_rank_0 = rocsolver_cungql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungql_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungql_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungql_rank_1 = rocsolver_cungql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungql_full_rank(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungql_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungql_full_rank = rocsolver_zungql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungql_rank_0(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungql_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zungql_rank_0 = rocsolver_zungql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungql_rank_1(handle,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungql_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungql_rank_1 = rocsolver_zungql_(handle,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgbr_full_rank(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgbr_full_rank = rocsolver_sorgbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgbr_rank_0(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorgbr_rank_0 = rocsolver_sorgbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgbr_rank_1(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgbr_rank_1 = rocsolver_sorgbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgbr_full_rank(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgbr_full_rank = rocsolver_dorgbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgbr_rank_0(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorgbr_rank_0 = rocsolver_dorgbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgbr_rank_1(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgbr_rank_1 = rocsolver_dorgbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungbr_full_rank(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungbr_full_rank = rocsolver_cungbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungbr_rank_0(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cungbr_rank_0 = rocsolver_cungbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungbr_rank_1(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungbr_rank_1 = rocsolver_cungbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungbr_full_rank(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungbr_full_rank = rocsolver_zungbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungbr_rank_0(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zungbr_rank_0 = rocsolver_zungbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungbr_rank_1(handle,storev,m,n,k,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungbr_rank_1 = rocsolver_zungbr_(handle,storev,m,n,k,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgtr_full_rank(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgtr_full_rank = rocsolver_sorgtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgtr_rank_0(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sorgtr_rank_0 = rocsolver_sorgtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorgtr_rank_1(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorgtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sorgtr_rank_1 = rocsolver_sorgtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgtr_full_rank(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgtr_full_rank = rocsolver_dorgtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgtr_rank_0(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dorgtr_rank_0 = rocsolver_dorgtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dorgtr_rank_1(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorgtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dorgtr_rank_1 = rocsolver_dorgtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungtr_full_rank(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungtr_full_rank = rocsolver_cungtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungtr_rank_0(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cungtr_rank_0 = rocsolver_cungtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cungtr_rank_1(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cungtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cungtr_rank_1 = rocsolver_cungtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungtr_full_rank(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungtr_full_rank = rocsolver_zungtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungtr_rank_0(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zungtr_rank_0 = rocsolver_zungtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zungtr_rank_1(handle,uplo,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zungtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zungtr_rank_1 = rocsolver_zungtr_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sorm2r_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2r_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sorm2r_full_rank = rocsolver_sorm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorm2r_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2r_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sorm2r_rank_0 = rocsolver_sorm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorm2r_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2r_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sorm2r_rank_1 = rocsolver_sorm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorm2r_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2r_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dorm2r_full_rank = rocsolver_dorm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorm2r_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2r_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dorm2r_rank_0 = rocsolver_dorm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorm2r_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2r_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dorm2r_rank_1 = rocsolver_dorm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunm2r_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2r_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunm2r_full_rank = rocsolver_cunm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunm2r_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2r_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunm2r_rank_0 = rocsolver_cunm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunm2r_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2r_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunm2r_rank_1 = rocsolver_cunm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunm2r_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2r_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunm2r_full_rank = rocsolver_zunm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunm2r_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2r_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunm2r_rank_0 = rocsolver_zunm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunm2r_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2r_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunm2r_rank_1 = rocsolver_zunm2r_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormqr_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sormqr_full_rank = rocsolver_sormqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormqr_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sormqr_rank_0 = rocsolver_sormqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormqr_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sormqr_rank_1 = rocsolver_sormqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormqr_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dormqr_full_rank = rocsolver_dormqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormqr_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dormqr_rank_0 = rocsolver_dormqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormqr_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dormqr_rank_1 = rocsolver_dormqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmqr_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunmqr_full_rank = rocsolver_cunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmqr_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunmqr_rank_0 = rocsolver_cunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmqr_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunmqr_rank_1 = rocsolver_cunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmqr_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunmqr_full_rank = rocsolver_zunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmqr_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunmqr_rank_0 = rocsolver_zunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmqr_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunmqr_rank_1 = rocsolver_zunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorml2_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorml2_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sorml2_full_rank = rocsolver_sorml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorml2_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorml2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sorml2_rank_0 = rocsolver_sorml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorml2_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorml2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sorml2_rank_1 = rocsolver_sorml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorml2_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorml2_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dorml2_full_rank = rocsolver_dorml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorml2_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorml2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dorml2_rank_0 = rocsolver_dorml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorml2_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorml2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dorml2_rank_1 = rocsolver_dorml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunml2_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunml2_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunml2_full_rank = rocsolver_cunml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunml2_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunml2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunml2_rank_0 = rocsolver_cunml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunml2_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunml2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunml2_rank_1 = rocsolver_cunml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunml2_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunml2_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunml2_full_rank = rocsolver_zunml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunml2_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunml2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunml2_rank_0 = rocsolver_zunml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunml2_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunml2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunml2_rank_1 = rocsolver_zunml2_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormlq_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormlq_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sormlq_full_rank = rocsolver_sormlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormlq_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormlq_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sormlq_rank_0 = rocsolver_sormlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormlq_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormlq_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sormlq_rank_1 = rocsolver_sormlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormlq_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormlq_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dormlq_full_rank = rocsolver_dormlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormlq_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormlq_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dormlq_rank_0 = rocsolver_dormlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormlq_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormlq_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dormlq_rank_1 = rocsolver_dormlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmlq_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmlq_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunmlq_full_rank = rocsolver_cunmlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmlq_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmlq_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunmlq_rank_0 = rocsolver_cunmlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmlq_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmlq_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunmlq_rank_1 = rocsolver_cunmlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmlq_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmlq_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunmlq_full_rank = rocsolver_zunmlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmlq_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmlq_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunmlq_rank_0 = rocsolver_zunmlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmlq_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmlq_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunmlq_rank_1 = rocsolver_zunmlq_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorm2l_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2l_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sorm2l_full_rank = rocsolver_sorm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorm2l_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2l_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sorm2l_rank_0 = rocsolver_sorm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sorm2l_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sorm2l_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sorm2l_rank_1 = rocsolver_sorm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorm2l_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2l_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dorm2l_full_rank = rocsolver_dorm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorm2l_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2l_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dorm2l_rank_0 = rocsolver_dorm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dorm2l_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dorm2l_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dorm2l_rank_1 = rocsolver_dorm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunm2l_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2l_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunm2l_full_rank = rocsolver_cunm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunm2l_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2l_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunm2l_rank_0 = rocsolver_cunm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunm2l_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunm2l_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunm2l_rank_1 = rocsolver_cunm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunm2l_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2l_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunm2l_full_rank = rocsolver_zunm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunm2l_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2l_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunm2l_rank_0 = rocsolver_zunm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunm2l_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunm2l_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunm2l_rank_1 = rocsolver_zunm2l_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormql_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormql_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sormql_full_rank = rocsolver_sormql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormql_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormql_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sormql_rank_0 = rocsolver_sormql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormql_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormql_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sormql_rank_1 = rocsolver_sormql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormql_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormql_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dormql_full_rank = rocsolver_dormql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormql_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormql_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dormql_rank_0 = rocsolver_dormql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormql_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormql_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dormql_rank_1 = rocsolver_dormql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmql_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmql_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunmql_full_rank = rocsolver_cunmql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmql_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmql_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunmql_rank_0 = rocsolver_cunmql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmql_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmql_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunmql_rank_1 = rocsolver_cunmql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmql_full_rank(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmql_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunmql_full_rank = rocsolver_zunmql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmql_rank_0(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmql_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunmql_rank_0 = rocsolver_zunmql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmql_rank_1(handle,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmql_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunmql_rank_1 = rocsolver_zunmql_(handle,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormbr_full_rank(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sormbr_full_rank = rocsolver_sormbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormbr_rank_0(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sormbr_rank_0 = rocsolver_sormbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormbr_rank_1(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sormbr_rank_1 = rocsolver_sormbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormbr_full_rank(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dormbr_full_rank = rocsolver_dormbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormbr_rank_0(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dormbr_rank_0 = rocsolver_dormbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormbr_rank_1(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dormbr_rank_1 = rocsolver_dormbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmbr_full_rank(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunmbr_full_rank = rocsolver_cunmbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmbr_rank_0(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunmbr_rank_0 = rocsolver_cunmbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmbr_rank_1(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunmbr_rank_1 = rocsolver_cunmbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmbr_full_rank(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmbr_full_rank type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunmbr_full_rank = rocsolver_zunmbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmbr_rank_0(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmbr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunmbr_rank_0 = rocsolver_zunmbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmbr_rank_1(handle,storev,side,trans,m,n,k,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmbr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_column_wise)) :: storev integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunmbr_rank_1 = rocsolver_zunmbr_(handle,storev,side,trans,m,n,k,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormtr_full_rank(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_sormtr_full_rank = rocsolver_sormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormtr_rank_0(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc ! rocsolver_sormtr_rank_0 = rocsolver_sormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sormtr_rank_1(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sormtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_sormtr_rank_1 = rocsolver_sormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormtr_full_rank(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_dormtr_full_rank = rocsolver_dormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormtr_rank_0(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc ! rocsolver_dormtr_rank_0 = rocsolver_dormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_dormtr_rank_1(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dormtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_dormtr_rank_1 = rocsolver_dormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmtr_full_rank(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_cunmtr_full_rank = rocsolver_cunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmtr_rank_0(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsolver_cunmtr_rank_0 = rocsolver_cunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_cunmtr_rank_1(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cunmtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_cunmtr_rank_1 = rocsolver_cunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmtr_full_rank(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmtr_full_rank type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsolver_zunmtr_full_rank = rocsolver_zunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmtr_rank_0(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmtr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsolver_zunmtr_rank_0 = rocsolver_zunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_zunmtr_rank_1(handle,side,uplo,trans,m,n,A,lda,ipiv,C,ldc) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zunmtr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_side_left)) :: side integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsolver_zunmtr_rank_1 = rocsolver_zunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc) end function function rocsolver_sbdsqr_full_rank(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sbdsqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:,:) :: U integer(c_int) :: ldu real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sbdsqr_full_rank = rocsolver_sbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_sbdsqr_rank_0(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sbdsqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_float),target :: D real(c_float),target :: E real(c_float),target :: V integer(c_int) :: ldv real(c_float),target :: U integer(c_int) :: ldu real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sbdsqr_rank_0 = rocsolver_sbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_sbdsqr_rank_1(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sbdsqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:) :: U integer(c_int) :: ldu real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sbdsqr_rank_1 = rocsolver_sbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_dbdsqr_full_rank(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dbdsqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:,:) :: U integer(c_int) :: ldu real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dbdsqr_full_rank = rocsolver_dbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_dbdsqr_rank_0(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dbdsqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_double),target :: D real(c_double),target :: E real(c_double),target :: V integer(c_int) :: ldv real(c_double),target :: U integer(c_int) :: ldu real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dbdsqr_rank_0 = rocsolver_dbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_dbdsqr_rank_1(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dbdsqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:) :: U integer(c_int) :: ldu real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dbdsqr_rank_1 = rocsolver_dbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_cbdsqr_full_rank(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cbdsqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:,:) :: V integer(c_int) :: ldv complex(c_float_complex),target,dimension(:,:) :: U integer(c_int) :: ldu complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cbdsqr_full_rank = rocsolver_cbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_cbdsqr_rank_0(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cbdsqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: V integer(c_int) :: ldv complex(c_float_complex),target :: U integer(c_int) :: ldu complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cbdsqr_rank_0 = rocsolver_cbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_cbdsqr_rank_1(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cbdsqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: V integer(c_int) :: ldv complex(c_float_complex),target,dimension(:) :: U integer(c_int) :: ldu complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cbdsqr_rank_1 = rocsolver_cbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_zbdsqr_full_rank(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zbdsqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:,:) :: V integer(c_int) :: ldv complex(c_double_complex),target,dimension(:,:) :: U integer(c_int) :: ldu complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zbdsqr_full_rank = rocsolver_zbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_zbdsqr_rank_0(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zbdsqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: V integer(c_int) :: ldv complex(c_double_complex),target :: U integer(c_int) :: ldu complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zbdsqr_rank_0 = rocsolver_zbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_zbdsqr_rank_1(handle,uplo,n,nv,nu,nc,D,E,V,ldv,U,ldu,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zbdsqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nv integer(c_int) :: nu integer(c_int) :: nc real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: V integer(c_int) :: ldv complex(c_double_complex),target,dimension(:) :: U integer(c_int) :: ldu complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zbdsqr_rank_1 = rocsolver_zbdsqr_(handle,uplo,n,nv,nu,nc,c_loc(D),c_loc(E),c_loc(V),ldv,c_loc(U),ldu,c_loc(C),ldc,myInfo) end function function rocsolver_ssterf_rank_0(handle,n,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssterf_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_ssterf_rank_0 = rocsolver_ssterf_(handle,n,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssterf_rank_1(handle,n,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssterf_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssterf_rank_1 = rocsolver_ssterf_(handle,n,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsterf_rank_0(handle,n,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsterf_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_dsterf_rank_0 = rocsolver_dsterf_(handle,n,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsterf_rank_1(handle,n,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsterf_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsterf_rank_1 = rocsolver_dsterf_(handle,n,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssteqr_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssteqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_ssteqr_full_rank = rocsolver_ssteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_ssteqr_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssteqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target :: D real(c_float),target :: E real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_ssteqr_rank_0 = rocsolver_ssteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_ssteqr_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssteqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_ssteqr_rank_1 = rocsolver_ssteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_dsteqr_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsteqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dsteqr_full_rank = rocsolver_dsteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_dsteqr_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsteqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target :: D real(c_double),target :: E real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dsteqr_rank_0 = rocsolver_dsteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_dsteqr_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsteqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dsteqr_rank_1 = rocsolver_dsteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_csteqr_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csteqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_csteqr_full_rank = rocsolver_csteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_csteqr_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csteqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_csteqr_rank_0 = rocsolver_csteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_csteqr_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csteqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_csteqr_rank_1 = rocsolver_csteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_zsteqr_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsteqr_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zsteqr_full_rank = rocsolver_zsteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_zsteqr_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsteqr_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zsteqr_rank_0 = rocsolver_zsteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_zsteqr_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsteqr_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zsteqr_rank_1 = rocsolver_zsteqr_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_sstedc_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sstedc_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sstedc_full_rank = rocsolver_sstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_sstedc_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sstedc_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target :: D real(c_float),target :: E real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sstedc_rank_0 = rocsolver_sstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_sstedc_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sstedc_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sstedc_rank_1 = rocsolver_sstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_dstedc_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dstedc_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dstedc_full_rank = rocsolver_dstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_dstedc_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dstedc_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target :: D real(c_double),target :: E real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dstedc_rank_0 = rocsolver_dstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_dstedc_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dstedc_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dstedc_rank_1 = rocsolver_dstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_cstedc_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cstedc_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cstedc_full_rank = rocsolver_cstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_cstedc_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cstedc_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cstedc_rank_0 = rocsolver_cstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_cstedc_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cstedc_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cstedc_rank_1 = rocsolver_cstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_zstedc_full_rank(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zstedc_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zstedc_full_rank = rocsolver_zstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_zstedc_rank_0(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zstedc_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zstedc_rank_0 = rocsolver_zstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_zstedc_rank_1(handle,evect,n,D,E,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zstedc_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(c_int) :: n real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zstedc_rank_1 = rocsolver_zstedc_(handle,evect,n,c_loc(D),c_loc(E),c_loc(C),ldc,myInfo) end function function rocsolver_sgetf2_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetf2_npvt_full_rank = rocsolver_sgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetf2_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetf2_npvt_rank_0 = rocsolver_sgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetf2_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetf2_npvt_rank_1 = rocsolver_sgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetf2_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetf2_npvt_full_rank = rocsolver_dgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetf2_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetf2_npvt_rank_0 = rocsolver_dgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetf2_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetf2_npvt_rank_1 = rocsolver_dgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetf2_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetf2_npvt_full_rank = rocsolver_cgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetf2_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetf2_npvt_rank_0 = rocsolver_cgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetf2_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetf2_npvt_rank_1 = rocsolver_cgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetf2_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetf2_npvt_full_rank = rocsolver_zgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetf2_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetf2_npvt_rank_0 = rocsolver_zgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetf2_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetf2_npvt_rank_1 = rocsolver_zgetf2_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetf2_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_npvt_batched_full_rank = rocsolver_sgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetf2_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_npvt_batched_rank_0 = rocsolver_sgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetf2_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_npvt_batched_rank_1 = rocsolver_sgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetf2_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_npvt_batched_full_rank = rocsolver_dgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetf2_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_npvt_batched_rank_0 = rocsolver_dgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetf2_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_npvt_batched_rank_1 = rocsolver_dgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetf2_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_npvt_batched_full_rank = rocsolver_cgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetf2_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_npvt_batched_rank_0 = rocsolver_cgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetf2_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_npvt_batched_rank_1 = rocsolver_cgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetf2_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_npvt_batched_full_rank = rocsolver_zgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetf2_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_npvt_batched_rank_0 = rocsolver_zgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetf2_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_npvt_batched_rank_1 = rocsolver_zgetf2_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetf2_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_npvt_strided_batched_full_rank = rocsolver_sgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetf2_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_npvt_strided_batched_rank_0 = rocsolver_sgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetf2_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_npvt_strided_batched_rank_1 = rocsolver_sgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetf2_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_npvt_strided_batched_full_rank = rocsolver_dgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetf2_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_npvt_strided_batched_rank_0 = rocsolver_dgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetf2_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_npvt_strided_batched_rank_1 = rocsolver_dgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetf2_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_npvt_strided_batched_full_rank = rocsolver_cgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetf2_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_npvt_strided_batched_rank_0 = rocsolver_cgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetf2_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_npvt_strided_batched_rank_1 = rocsolver_cgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetf2_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_npvt_strided_batched_full_rank = rocsolver_zgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetf2_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_npvt_strided_batched_rank_0 = rocsolver_zgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetf2_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_npvt_strided_batched_rank_1 = rocsolver_zgetf2_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetrf_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetrf_npvt_full_rank = rocsolver_sgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetrf_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetrf_npvt_rank_0 = rocsolver_sgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetrf_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetrf_npvt_rank_1 = rocsolver_sgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetrf_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetrf_npvt_full_rank = rocsolver_dgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetrf_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetrf_npvt_rank_0 = rocsolver_dgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetrf_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetrf_npvt_rank_1 = rocsolver_dgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetrf_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetrf_npvt_full_rank = rocsolver_cgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetrf_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetrf_npvt_rank_0 = rocsolver_cgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetrf_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetrf_npvt_rank_1 = rocsolver_cgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetrf_npvt_full_rank(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetrf_npvt_full_rank = rocsolver_zgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetrf_npvt_rank_0(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetrf_npvt_rank_0 = rocsolver_zgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetrf_npvt_rank_1(handle,m,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetrf_npvt_rank_1 = rocsolver_zgetrf_npvt_(handle,m,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetrf_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_npvt_batched_full_rank = rocsolver_sgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetrf_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_npvt_batched_rank_0 = rocsolver_sgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetrf_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_npvt_batched_rank_1 = rocsolver_sgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetrf_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_npvt_batched_full_rank = rocsolver_dgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetrf_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_npvt_batched_rank_0 = rocsolver_dgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetrf_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_npvt_batched_rank_1 = rocsolver_dgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetrf_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_npvt_batched_full_rank = rocsolver_cgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetrf_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_npvt_batched_rank_0 = rocsolver_cgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetrf_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_npvt_batched_rank_1 = rocsolver_cgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetrf_npvt_batched_full_rank(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_npvt_batched_full_rank = rocsolver_zgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetrf_npvt_batched_rank_0(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_npvt_batched_rank_0 = rocsolver_zgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetrf_npvt_batched_rank_1(handle,m,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_npvt_batched_rank_1 = rocsolver_zgetrf_npvt_batched_(handle,m,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetrf_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_npvt_strided_batched_full_rank = rocsolver_sgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetrf_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_npvt_strided_batched_rank_0 = rocsolver_sgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetrf_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_npvt_strided_batched_rank_1 = rocsolver_sgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetrf_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_npvt_strided_batched_full_rank = rocsolver_dgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetrf_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_npvt_strided_batched_rank_0 = rocsolver_dgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetrf_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_npvt_strided_batched_rank_1 = rocsolver_dgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetrf_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_npvt_strided_batched_full_rank = rocsolver_cgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetrf_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_npvt_strided_batched_rank_0 = rocsolver_cgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetrf_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_npvt_strided_batched_rank_1 = rocsolver_cgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetrf_npvt_strided_batched_full_rank(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_npvt_strided_batched_full_rank = rocsolver_zgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetrf_npvt_strided_batched_rank_0(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_npvt_strided_batched_rank_0 = rocsolver_zgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetrf_npvt_strided_batched_rank_1(handle,m,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_npvt_strided_batched_rank_1 = rocsolver_zgetrf_npvt_strided_batched_(handle,m,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetf2_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetf2_full_rank = rocsolver_sgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetf2_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetf2_rank_0 = rocsolver_sgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetf2_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetf2_rank_1 = rocsolver_sgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetf2_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetf2_full_rank = rocsolver_dgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetf2_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetf2_rank_0 = rocsolver_dgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetf2_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetf2_rank_1 = rocsolver_dgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetf2_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetf2_full_rank = rocsolver_cgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetf2_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetf2_rank_0 = rocsolver_cgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetf2_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetf2_rank_1 = rocsolver_cgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetf2_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetf2_full_rank = rocsolver_zgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetf2_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetf2_rank_0 = rocsolver_zgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetf2_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetf2_rank_1 = rocsolver_zgetf2_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetf2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_batched_full_rank = rocsolver_sgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetf2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_batched_rank_0 = rocsolver_sgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetf2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_batched_rank_1 = rocsolver_sgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetf2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_batched_full_rank = rocsolver_dgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetf2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_batched_rank_0 = rocsolver_dgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetf2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_batched_rank_1 = rocsolver_dgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetf2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_batched_full_rank = rocsolver_cgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetf2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_batched_rank_0 = rocsolver_cgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetf2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_batched_rank_1 = rocsolver_cgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetf2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_batched_full_rank = rocsolver_zgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetf2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_batched_rank_0 = rocsolver_zgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetf2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_batched_rank_1 = rocsolver_zgetf2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetf2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_strided_batched_full_rank = rocsolver_sgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetf2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_strided_batched_rank_0 = rocsolver_sgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetf2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetf2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetf2_strided_batched_rank_1 = rocsolver_sgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetf2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_strided_batched_full_rank = rocsolver_dgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetf2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_strided_batched_rank_0 = rocsolver_dgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetf2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetf2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetf2_strided_batched_rank_1 = rocsolver_dgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetf2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_strided_batched_full_rank = rocsolver_cgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetf2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_strided_batched_rank_0 = rocsolver_cgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetf2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetf2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetf2_strided_batched_rank_1 = rocsolver_cgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetf2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_strided_batched_full_rank = rocsolver_zgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetf2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_strided_batched_rank_0 = rocsolver_zgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetf2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetf2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetf2_strided_batched_rank_1 = rocsolver_zgetf2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetrf_full_rank = rocsolver_sgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetrf_rank_0 = rocsolver_sgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetrf_rank_1 = rocsolver_sgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetrf_full_rank = rocsolver_dgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetrf_rank_0 = rocsolver_dgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetrf_rank_1 = rocsolver_dgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetrf_full_rank = rocsolver_cgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetrf_rank_0 = rocsolver_cgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetrf_rank_1 = rocsolver_cgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetrf_full_rank(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetrf_full_rank = rocsolver_zgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetrf_rank_0(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetrf_rank_0 = rocsolver_zgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetrf_rank_1(handle,m,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetrf_rank_1 = rocsolver_zgetrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_batched_full_rank = rocsolver_sgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_batched_rank_0 = rocsolver_sgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_batched_rank_1 = rocsolver_sgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_batched_full_rank = rocsolver_dgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_batched_rank_0 = rocsolver_dgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_batched_rank_1 = rocsolver_dgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_batched_full_rank = rocsolver_cgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_batched_rank_0 = rocsolver_cgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_batched_rank_1 = rocsolver_cgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_batched_full_rank = rocsolver_zgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_batched_rank_0 = rocsolver_zgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_batched_rank_1 = rocsolver_zgetrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_strided_batched_full_rank = rocsolver_sgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_strided_batched_rank_0 = rocsolver_sgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetrf_strided_batched_rank_1 = rocsolver_sgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_strided_batched_full_rank = rocsolver_dgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_strided_batched_rank_0 = rocsolver_dgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetrf_strided_batched_rank_1 = rocsolver_dgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_strided_batched_full_rank = rocsolver_cgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_strided_batched_rank_0 = rocsolver_cgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetrf_strided_batched_rank_1 = rocsolver_cgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_strided_batched_full_rank = rocsolver_zgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_strided_batched_rank_0 = rocsolver_zgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetrf_strided_batched_rank_1 = rocsolver_zgetrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgeqr2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeqr2_full_rank = rocsolver_sgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqr2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgeqr2_rank_0 = rocsolver_sgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqr2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeqr2_rank_1 = rocsolver_sgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqr2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeqr2_full_rank = rocsolver_dgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqr2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgeqr2_rank_0 = rocsolver_dgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqr2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeqr2_rank_1 = rocsolver_dgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqr2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeqr2_full_rank = rocsolver_cgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqr2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgeqr2_rank_0 = rocsolver_cgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqr2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeqr2_rank_1 = rocsolver_cgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqr2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeqr2_full_rank = rocsolver_zgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqr2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgeqr2_rank_0 = rocsolver_zgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqr2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeqr2_rank_1 = rocsolver_zgeqr2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqr2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqr2_batched_full_rank = rocsolver_sgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqr2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqr2_batched_rank_0 = rocsolver_sgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqr2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqr2_batched_rank_1 = rocsolver_sgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqr2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqr2_batched_full_rank = rocsolver_dgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqr2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqr2_batched_rank_0 = rocsolver_dgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqr2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqr2_batched_rank_1 = rocsolver_dgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqr2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqr2_batched_full_rank = rocsolver_cgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqr2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqr2_batched_rank_0 = rocsolver_cgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqr2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqr2_batched_rank_1 = rocsolver_cgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqr2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqr2_batched_full_rank = rocsolver_zgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqr2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqr2_batched_rank_0 = rocsolver_zgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqr2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqr2_batched_rank_1 = rocsolver_zgeqr2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqr2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqr2_strided_batched_full_rank = rocsolver_sgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqr2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqr2_strided_batched_rank_0 = rocsolver_sgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqr2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqr2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqr2_strided_batched_rank_1 = rocsolver_sgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqr2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqr2_strided_batched_full_rank = rocsolver_dgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqr2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqr2_strided_batched_rank_0 = rocsolver_dgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqr2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqr2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqr2_strided_batched_rank_1 = rocsolver_dgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqr2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqr2_strided_batched_full_rank = rocsolver_cgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqr2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqr2_strided_batched_rank_0 = rocsolver_cgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqr2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqr2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqr2_strided_batched_rank_1 = rocsolver_cgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqr2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqr2_strided_batched_full_rank = rocsolver_zgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqr2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqr2_strided_batched_rank_0 = rocsolver_zgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqr2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqr2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqr2_strided_batched_rank_1 = rocsolver_zgeqr2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgerq2_full_rank = rocsolver_sgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgerq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgerq2_rank_0 = rocsolver_sgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgerq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgerq2_rank_1 = rocsolver_sgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgerq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgerq2_full_rank = rocsolver_dgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgerq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgerq2_rank_0 = rocsolver_dgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgerq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgerq2_rank_1 = rocsolver_dgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgerq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgerq2_full_rank = rocsolver_cgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgerq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgerq2_rank_0 = rocsolver_cgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgerq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgerq2_rank_1 = rocsolver_cgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgerq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgerq2_full_rank = rocsolver_zgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgerq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgerq2_rank_0 = rocsolver_zgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgerq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgerq2_rank_1 = rocsolver_zgerq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgerq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerq2_batched_full_rank = rocsolver_sgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerq2_batched_rank_0 = rocsolver_sgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerq2_batched_rank_1 = rocsolver_sgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerq2_batched_full_rank = rocsolver_dgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerq2_batched_rank_0 = rocsolver_dgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerq2_batched_rank_1 = rocsolver_dgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerq2_batched_full_rank = rocsolver_cgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerq2_batched_rank_0 = rocsolver_cgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerq2_batched_rank_1 = rocsolver_cgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerq2_batched_full_rank = rocsolver_zgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerq2_batched_rank_0 = rocsolver_zgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerq2_batched_rank_1 = rocsolver_zgerq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerq2_strided_batched_full_rank = rocsolver_sgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerq2_strided_batched_rank_0 = rocsolver_sgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerq2_strided_batched_rank_1 = rocsolver_sgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerq2_strided_batched_full_rank = rocsolver_dgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerq2_strided_batched_rank_0 = rocsolver_dgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerq2_strided_batched_rank_1 = rocsolver_dgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerq2_strided_batched_full_rank = rocsolver_cgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerq2_strided_batched_rank_0 = rocsolver_cgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerq2_strided_batched_rank_1 = rocsolver_cgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerq2_strided_batched_full_rank = rocsolver_zgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerq2_strided_batched_rank_0 = rocsolver_zgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerq2_strided_batched_rank_1 = rocsolver_zgerq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeql2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeql2_full_rank = rocsolver_sgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeql2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgeql2_rank_0 = rocsolver_sgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeql2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeql2_rank_1 = rocsolver_sgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeql2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeql2_full_rank = rocsolver_dgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeql2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgeql2_rank_0 = rocsolver_dgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeql2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeql2_rank_1 = rocsolver_dgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeql2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeql2_full_rank = rocsolver_cgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeql2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgeql2_rank_0 = rocsolver_cgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeql2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeql2_rank_1 = rocsolver_cgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeql2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeql2_full_rank = rocsolver_zgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeql2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgeql2_rank_0 = rocsolver_zgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeql2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeql2_rank_1 = rocsolver_zgeql2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeql2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeql2_batched_full_rank = rocsolver_sgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeql2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeql2_batched_rank_0 = rocsolver_sgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeql2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeql2_batched_rank_1 = rocsolver_sgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeql2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeql2_batched_full_rank = rocsolver_dgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeql2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeql2_batched_rank_0 = rocsolver_dgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeql2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeql2_batched_rank_1 = rocsolver_dgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeql2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeql2_batched_full_rank = rocsolver_cgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeql2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeql2_batched_rank_0 = rocsolver_cgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeql2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeql2_batched_rank_1 = rocsolver_cgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeql2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeql2_batched_full_rank = rocsolver_zgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeql2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeql2_batched_rank_0 = rocsolver_zgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeql2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeql2_batched_rank_1 = rocsolver_zgeql2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeql2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeql2_strided_batched_full_rank = rocsolver_sgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeql2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeql2_strided_batched_rank_0 = rocsolver_sgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeql2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeql2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeql2_strided_batched_rank_1 = rocsolver_sgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeql2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeql2_strided_batched_full_rank = rocsolver_dgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeql2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeql2_strided_batched_rank_0 = rocsolver_dgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeql2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeql2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeql2_strided_batched_rank_1 = rocsolver_dgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeql2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeql2_strided_batched_full_rank = rocsolver_cgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeql2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeql2_strided_batched_rank_0 = rocsolver_cgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeql2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeql2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeql2_strided_batched_rank_1 = rocsolver_cgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeql2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeql2_strided_batched_full_rank = rocsolver_zgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeql2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeql2_strided_batched_rank_0 = rocsolver_zgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeql2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeql2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeql2_strided_batched_rank_1 = rocsolver_zgeql2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgelq2_full_rank = rocsolver_sgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgelq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgelq2_rank_0 = rocsolver_sgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgelq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgelq2_rank_1 = rocsolver_sgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgelq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgelq2_full_rank = rocsolver_dgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgelq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgelq2_rank_0 = rocsolver_dgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgelq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgelq2_rank_1 = rocsolver_dgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgelq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgelq2_full_rank = rocsolver_cgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgelq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgelq2_rank_0 = rocsolver_cgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgelq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgelq2_rank_1 = rocsolver_cgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgelq2_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgelq2_full_rank = rocsolver_zgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgelq2_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgelq2_rank_0 = rocsolver_zgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgelq2_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgelq2_rank_1 = rocsolver_zgelq2_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgelq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelq2_batched_full_rank = rocsolver_sgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelq2_batched_rank_0 = rocsolver_sgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelq2_batched_rank_1 = rocsolver_sgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelq2_batched_full_rank = rocsolver_dgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelq2_batched_rank_0 = rocsolver_dgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelq2_batched_rank_1 = rocsolver_dgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelq2_batched_full_rank = rocsolver_cgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelq2_batched_rank_0 = rocsolver_cgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelq2_batched_rank_1 = rocsolver_cgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelq2_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelq2_batched_full_rank = rocsolver_zgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelq2_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelq2_batched_rank_0 = rocsolver_zgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelq2_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelq2_batched_rank_1 = rocsolver_zgelq2_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelq2_strided_batched_full_rank = rocsolver_sgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelq2_strided_batched_rank_0 = rocsolver_sgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelq2_strided_batched_rank_1 = rocsolver_sgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelq2_strided_batched_full_rank = rocsolver_dgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelq2_strided_batched_rank_0 = rocsolver_dgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelq2_strided_batched_rank_1 = rocsolver_dgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelq2_strided_batched_full_rank = rocsolver_cgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelq2_strided_batched_rank_0 = rocsolver_cgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelq2_strided_batched_rank_1 = rocsolver_cgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelq2_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelq2_strided_batched_full_rank = rocsolver_zgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelq2_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelq2_strided_batched_rank_0 = rocsolver_zgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelq2_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelq2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelq2_strided_batched_rank_1 = rocsolver_zgelq2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqrf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeqrf_full_rank = rocsolver_sgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqrf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgeqrf_rank_0 = rocsolver_sgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqrf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeqrf_rank_1 = rocsolver_sgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqrf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeqrf_full_rank = rocsolver_dgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqrf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgeqrf_rank_0 = rocsolver_dgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqrf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeqrf_rank_1 = rocsolver_dgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqrf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeqrf_full_rank = rocsolver_cgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqrf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgeqrf_rank_0 = rocsolver_cgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqrf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeqrf_rank_1 = rocsolver_cgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqrf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeqrf_full_rank = rocsolver_zgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqrf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgeqrf_rank_0 = rocsolver_zgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqrf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeqrf_rank_1 = rocsolver_zgeqrf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqrf_batched_full_rank = rocsolver_sgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqrf_batched_rank_0 = rocsolver_sgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqrf_batched_rank_1 = rocsolver_sgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqrf_batched_full_rank = rocsolver_dgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqrf_batched_rank_0 = rocsolver_dgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqrf_batched_rank_1 = rocsolver_dgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqrf_batched_full_rank = rocsolver_cgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqrf_batched_rank_0 = rocsolver_cgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqrf_batched_rank_1 = rocsolver_cgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqrf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqrf_batched_full_rank = rocsolver_zgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqrf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqrf_batched_rank_0 = rocsolver_zgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqrf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqrf_batched_rank_1 = rocsolver_zgeqrf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqrf_strided_batched_full_rank = rocsolver_sgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqrf_strided_batched_rank_0 = rocsolver_sgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqrf_strided_batched_rank_1 = rocsolver_sgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqrf_strided_batched_full_rank = rocsolver_dgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqrf_strided_batched_rank_0 = rocsolver_dgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqrf_strided_batched_rank_1 = rocsolver_dgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqrf_strided_batched_full_rank = rocsolver_cgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqrf_strided_batched_rank_0 = rocsolver_cgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqrf_strided_batched_rank_1 = rocsolver_cgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqrf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqrf_strided_batched_full_rank = rocsolver_zgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqrf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqrf_strided_batched_rank_0 = rocsolver_zgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqrf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqrf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqrf_strided_batched_rank_1 = rocsolver_zgeqrf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgerqf_full_rank = rocsolver_sgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgerqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgerqf_rank_0 = rocsolver_sgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgerqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgerqf_rank_1 = rocsolver_sgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgerqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgerqf_full_rank = rocsolver_dgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgerqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgerqf_rank_0 = rocsolver_dgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgerqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgerqf_rank_1 = rocsolver_dgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgerqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgerqf_full_rank = rocsolver_cgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgerqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgerqf_rank_0 = rocsolver_cgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgerqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgerqf_rank_1 = rocsolver_cgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgerqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgerqf_full_rank = rocsolver_zgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgerqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgerqf_rank_0 = rocsolver_zgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgerqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgerqf_rank_1 = rocsolver_zgerqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgerqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerqf_batched_full_rank = rocsolver_sgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerqf_batched_rank_0 = rocsolver_sgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerqf_batched_rank_1 = rocsolver_sgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerqf_batched_full_rank = rocsolver_dgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerqf_batched_rank_0 = rocsolver_dgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerqf_batched_rank_1 = rocsolver_dgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerqf_batched_full_rank = rocsolver_cgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerqf_batched_rank_0 = rocsolver_cgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerqf_batched_rank_1 = rocsolver_cgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerqf_batched_full_rank = rocsolver_zgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerqf_batched_rank_0 = rocsolver_zgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerqf_batched_rank_1 = rocsolver_zgerqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerqf_strided_batched_full_rank = rocsolver_sgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerqf_strided_batched_rank_0 = rocsolver_sgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgerqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgerqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgerqf_strided_batched_rank_1 = rocsolver_sgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerqf_strided_batched_full_rank = rocsolver_dgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerqf_strided_batched_rank_0 = rocsolver_dgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgerqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgerqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgerqf_strided_batched_rank_1 = rocsolver_dgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerqf_strided_batched_full_rank = rocsolver_cgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerqf_strided_batched_rank_0 = rocsolver_cgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgerqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgerqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgerqf_strided_batched_rank_1 = rocsolver_cgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerqf_strided_batched_full_rank = rocsolver_zgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerqf_strided_batched_rank_0 = rocsolver_zgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgerqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgerqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgerqf_strided_batched_rank_1 = rocsolver_zgerqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqlf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeqlf_full_rank = rocsolver_sgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqlf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgeqlf_rank_0 = rocsolver_sgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqlf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgeqlf_rank_1 = rocsolver_sgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqlf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeqlf_full_rank = rocsolver_dgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqlf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgeqlf_rank_0 = rocsolver_dgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgeqlf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgeqlf_rank_1 = rocsolver_dgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqlf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeqlf_full_rank = rocsolver_cgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqlf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgeqlf_rank_0 = rocsolver_cgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgeqlf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgeqlf_rank_1 = rocsolver_cgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqlf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeqlf_full_rank = rocsolver_zgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqlf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgeqlf_rank_0 = rocsolver_zgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgeqlf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgeqlf_rank_1 = rocsolver_zgeqlf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgeqlf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqlf_batched_full_rank = rocsolver_sgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqlf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqlf_batched_rank_0 = rocsolver_sgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqlf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqlf_batched_rank_1 = rocsolver_sgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqlf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqlf_batched_full_rank = rocsolver_dgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqlf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqlf_batched_rank_0 = rocsolver_dgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqlf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqlf_batched_rank_1 = rocsolver_dgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqlf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqlf_batched_full_rank = rocsolver_cgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqlf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqlf_batched_rank_0 = rocsolver_cgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqlf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqlf_batched_rank_1 = rocsolver_cgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqlf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqlf_batched_full_rank = rocsolver_zgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqlf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqlf_batched_rank_0 = rocsolver_zgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqlf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqlf_batched_rank_1 = rocsolver_zgeqlf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqlf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqlf_strided_batched_full_rank = rocsolver_sgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqlf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqlf_strided_batched_rank_0 = rocsolver_sgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgeqlf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgeqlf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgeqlf_strided_batched_rank_1 = rocsolver_sgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqlf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqlf_strided_batched_full_rank = rocsolver_dgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqlf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqlf_strided_batched_rank_0 = rocsolver_dgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgeqlf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgeqlf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgeqlf_strided_batched_rank_1 = rocsolver_dgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqlf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqlf_strided_batched_full_rank = rocsolver_cgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqlf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqlf_strided_batched_rank_0 = rocsolver_cgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgeqlf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgeqlf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgeqlf_strided_batched_rank_1 = rocsolver_cgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqlf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqlf_strided_batched_full_rank = rocsolver_zgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqlf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqlf_strided_batched_rank_0 = rocsolver_zgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgeqlf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgeqlf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgeqlf_strided_batched_rank_1 = rocsolver_zgeqlf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgelqf_full_rank = rocsolver_sgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgelqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv ! rocsolver_sgelqf_rank_0 = rocsolver_sgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgelqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv ! rocsolver_sgelqf_rank_1 = rocsolver_sgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgelqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgelqf_full_rank = rocsolver_dgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgelqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv ! rocsolver_dgelqf_rank_0 = rocsolver_dgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_dgelqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv ! rocsolver_dgelqf_rank_1 = rocsolver_dgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgelqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgelqf_full_rank = rocsolver_cgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgelqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv ! rocsolver_cgelqf_rank_0 = rocsolver_cgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_cgelqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv ! rocsolver_cgelqf_rank_1 = rocsolver_cgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgelqf_full_rank(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgelqf_full_rank = rocsolver_zgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgelqf_rank_0(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv ! rocsolver_zgelqf_rank_0 = rocsolver_zgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_zgelqf_rank_1(handle,m,n,A,lda,ipiv) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv ! rocsolver_zgelqf_rank_1 = rocsolver_zgelqf_(handle,m,n,c_loc(A),lda,c_loc(ipiv)) end function function rocsolver_sgelqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelqf_batched_full_rank = rocsolver_sgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelqf_batched_rank_0 = rocsolver_sgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelqf_batched_rank_1 = rocsolver_sgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelqf_batched_full_rank = rocsolver_dgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelqf_batched_rank_0 = rocsolver_dgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelqf_batched_rank_1 = rocsolver_dgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelqf_batched_full_rank = rocsolver_cgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelqf_batched_rank_0 = rocsolver_cgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelqf_batched_rank_1 = rocsolver_cgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelqf_batched_full_rank(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelqf_batched_full_rank = rocsolver_zgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelqf_batched_rank_0(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelqf_batched_rank_0 = rocsolver_zgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelqf_batched_rank_1(handle,m,n,A,lda,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelqf_batched_rank_1 = rocsolver_zgelqf_batched_(handle,m,n,c_loc(A),lda,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelqf_strided_batched_full_rank = rocsolver_sgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelqf_strided_batched_rank_0 = rocsolver_sgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgelqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgelqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgelqf_strided_batched_rank_1 = rocsolver_sgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelqf_strided_batched_full_rank = rocsolver_dgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelqf_strided_batched_rank_0 = rocsolver_dgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_dgelqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgelqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgelqf_strided_batched_rank_1 = rocsolver_dgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelqf_strided_batched_full_rank = rocsolver_cgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelqf_strided_batched_rank_0 = rocsolver_cgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_cgelqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgelqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgelqf_strided_batched_rank_1 = rocsolver_cgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelqf_strided_batched_full_rank(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelqf_strided_batched_full_rank = rocsolver_zgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelqf_strided_batched_rank_0(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelqf_strided_batched_rank_0 = rocsolver_zgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_zgelqf_strided_batched_rank_1(handle,m,n,A,lda,strideA,ipiv,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgelqf_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgelqf_strided_batched_rank_1 = rocsolver_zgelqf_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,batch_count) end function function rocsolver_sgebd2_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup ! rocsolver_sgebd2_full_rank = rocsolver_sgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_sgebd2_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float),target :: tauq real(c_float),target :: taup ! rocsolver_sgebd2_rank_0 = rocsolver_sgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_sgebd2_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup ! rocsolver_sgebd2_rank_1 = rocsolver_sgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_dgebd2_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup ! rocsolver_dgebd2_full_rank = rocsolver_dgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_dgebd2_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double),target :: tauq real(c_double),target :: taup ! rocsolver_dgebd2_rank_0 = rocsolver_dgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_dgebd2_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup ! rocsolver_dgebd2_rank_1 = rocsolver_dgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_cgebd2_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup ! rocsolver_cgebd2_full_rank = rocsolver_cgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_cgebd2_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: tauq complex(c_float_complex),target :: taup ! rocsolver_cgebd2_rank_0 = rocsolver_cgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_cgebd2_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup ! rocsolver_cgebd2_rank_1 = rocsolver_cgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_zgebd2_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup ! rocsolver_zgebd2_full_rank = rocsolver_zgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_zgebd2_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: tauq complex(c_double_complex),target :: taup ! rocsolver_zgebd2_rank_0 = rocsolver_zgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_zgebd2_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup ! rocsolver_zgebd2_rank_1 = rocsolver_zgebd2_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_sgebd2_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebd2_batched_full_rank = rocsolver_sgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebd2_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float),target :: tauq integer(c_int64_t) :: strideQ real(c_float),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebd2_batched_rank_0 = rocsolver_sgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebd2_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebd2_batched_rank_1 = rocsolver_sgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebd2_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebd2_batched_full_rank = rocsolver_dgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebd2_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double),target :: tauq integer(c_int64_t) :: strideQ real(c_double),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebd2_batched_rank_0 = rocsolver_dgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebd2_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebd2_batched_rank_1 = rocsolver_dgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebd2_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebd2_batched_full_rank = rocsolver_cgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebd2_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebd2_batched_rank_0 = rocsolver_cgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebd2_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebd2_batched_rank_1 = rocsolver_cgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebd2_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebd2_batched_full_rank = rocsolver_zgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebd2_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebd2_batched_rank_0 = rocsolver_zgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebd2_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebd2_batched_rank_1 = rocsolver_zgebd2_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebd2_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebd2_strided_batched_full_rank = rocsolver_sgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebd2_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float),target :: tauq integer(c_int64_t) :: strideQ real(c_float),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebd2_strided_batched_rank_0 = rocsolver_sgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebd2_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebd2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebd2_strided_batched_rank_1 = rocsolver_sgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebd2_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebd2_strided_batched_full_rank = rocsolver_dgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebd2_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double),target :: tauq integer(c_int64_t) :: strideQ real(c_double),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebd2_strided_batched_rank_0 = rocsolver_dgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebd2_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebd2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebd2_strided_batched_rank_1 = rocsolver_dgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebd2_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebd2_strided_batched_full_rank = rocsolver_cgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebd2_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebd2_strided_batched_rank_0 = rocsolver_cgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebd2_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebd2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebd2_strided_batched_rank_1 = rocsolver_cgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebd2_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebd2_strided_batched_full_rank = rocsolver_zgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebd2_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebd2_strided_batched_rank_0 = rocsolver_zgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebd2_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebd2_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebd2_strided_batched_rank_1 = rocsolver_zgebd2_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup ! rocsolver_sgebrd_full_rank = rocsolver_sgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_sgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float),target :: tauq real(c_float),target :: taup ! rocsolver_sgebrd_rank_0 = rocsolver_sgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_sgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup ! rocsolver_sgebrd_rank_1 = rocsolver_sgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_dgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup ! rocsolver_dgebrd_full_rank = rocsolver_dgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_dgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double),target :: tauq real(c_double),target :: taup ! rocsolver_dgebrd_rank_0 = rocsolver_dgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_dgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup ! rocsolver_dgebrd_rank_1 = rocsolver_dgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_cgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup ! rocsolver_cgebrd_full_rank = rocsolver_cgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_cgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: tauq complex(c_float_complex),target :: taup ! rocsolver_cgebrd_rank_0 = rocsolver_cgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_cgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup ! rocsolver_cgebrd_rank_1 = rocsolver_cgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_zgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup ! rocsolver_zgebrd_full_rank = rocsolver_zgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_zgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: tauq complex(c_double_complex),target :: taup ! rocsolver_zgebrd_rank_0 = rocsolver_zgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_zgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup ! rocsolver_zgebrd_rank_1 = rocsolver_zgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup)) end function function rocsolver_sgebrd_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebrd_batched_full_rank = rocsolver_sgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebrd_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float),target :: tauq integer(c_int64_t) :: strideQ real(c_float),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebrd_batched_rank_0 = rocsolver_sgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebrd_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebrd_batched_rank_1 = rocsolver_sgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebrd_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebrd_batched_full_rank = rocsolver_dgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebrd_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double),target :: tauq integer(c_int64_t) :: strideQ real(c_double),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebrd_batched_rank_0 = rocsolver_dgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebrd_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebrd_batched_rank_1 = rocsolver_dgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebrd_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebrd_batched_full_rank = rocsolver_cgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebrd_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebrd_batched_rank_0 = rocsolver_cgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebrd_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebrd_batched_rank_1 = rocsolver_cgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebrd_batched_full_rank(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebrd_batched_full_rank = rocsolver_zgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebrd_batched_rank_0(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebrd_batched_rank_0 = rocsolver_zgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebrd_batched_rank_1(handle,m,n,A,lda,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebrd_batched_rank_1 = rocsolver_zgebrd_batched_(handle,m,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebrd_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebrd_strided_batched_full_rank = rocsolver_sgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebrd_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float),target :: tauq integer(c_int64_t) :: strideQ real(c_float),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebrd_strided_batched_rank_0 = rocsolver_sgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgebrd_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgebrd_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_float),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_sgebrd_strided_batched_rank_1 = rocsolver_sgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebrd_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebrd_strided_batched_full_rank = rocsolver_dgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebrd_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double),target :: tauq integer(c_int64_t) :: strideQ real(c_double),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebrd_strided_batched_rank_0 = rocsolver_dgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_dgebrd_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgebrd_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ real(c_double),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dgebrd_strided_batched_rank_1 = rocsolver_dgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebrd_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebrd_strided_batched_full_rank = rocsolver_cgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebrd_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebrd_strided_batched_rank_0 = rocsolver_cgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_cgebrd_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgebrd_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_float_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_cgebrd_strided_batched_rank_1 = rocsolver_cgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebrd_strided_batched_full_rank(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebrd_strided_batched_full_rank = rocsolver_zgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebrd_strided_batched_rank_0(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex),target :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebrd_strided_batched_rank_0 = rocsolver_zgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_zgebrd_strided_batched_rank_1(handle,m,n,A,lda,strideA,D,strideD,E,strideE,tauq,strideQ,taup,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgebrd_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex),target,dimension(:) :: tauq integer(c_int64_t) :: strideQ complex(c_double_complex),target,dimension(:) :: taup integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zgebrd_strided_batched_rank_1 = rocsolver_zgebrd_strided_batched_(handle,m,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,c_loc(tauq),strideQ,c_loc(taup),strideP,batch_count) end function function rocsolver_sgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_sgetrs_full_rank = rocsolver_sgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_sgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv real(c_float),target :: B integer(c_int) :: ldb ! rocsolver_sgetrs_rank_0 = rocsolver_sgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_sgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_sgetrs_rank_1 = rocsolver_sgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_dgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_dgetrs_full_rank = rocsolver_dgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_dgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv real(c_double),target :: B integer(c_int) :: ldb ! rocsolver_dgetrs_rank_0 = rocsolver_dgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_dgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_dgetrs_rank_1 = rocsolver_dgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_cgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_cgetrs_full_rank = rocsolver_cgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_cgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv complex(c_float_complex),target :: B integer(c_int) :: ldb ! rocsolver_cgetrs_rank_0 = rocsolver_cgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_cgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_cgetrs_rank_1 = rocsolver_cgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_zgetrs_full_rank(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_zgetrs_full_rank = rocsolver_zgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_zgetrs_rank_0(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv complex(c_double_complex),target :: B integer(c_int) :: ldb ! rocsolver_zgetrs_rank_0 = rocsolver_zgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_zgetrs_rank_1(handle,trans,n,nrhs,A,lda,ipiv,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_zgetrs_rank_1 = rocsolver_zgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb) end function function rocsolver_sgetrs_batched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_sgetrs_batched_full_rank = rocsolver_sgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_sgetrs_batched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_sgetrs_batched_rank_0 = rocsolver_sgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_sgetrs_batched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_sgetrs_batched_rank_1 = rocsolver_sgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_dgetrs_batched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dgetrs_batched_full_rank = rocsolver_dgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_dgetrs_batched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dgetrs_batched_rank_0 = rocsolver_dgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_dgetrs_batched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dgetrs_batched_rank_1 = rocsolver_dgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_cgetrs_batched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_cgetrs_batched_full_rank = rocsolver_cgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_cgetrs_batched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_cgetrs_batched_rank_0 = rocsolver_cgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_cgetrs_batched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_cgetrs_batched_rank_1 = rocsolver_cgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_zgetrs_batched_full_rank(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zgetrs_batched_full_rank = rocsolver_zgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_zgetrs_batched_rank_0(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zgetrs_batched_rank_0 = rocsolver_zgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_zgetrs_batched_rank_1(handle,trans,n,nrhs,A,lda,ipiv,strideP,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zgetrs_batched_rank_1 = rocsolver_zgetrs_batched_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,batch_count) end function function rocsolver_sgetrs_strided_batched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_sgetrs_strided_batched_full_rank = rocsolver_sgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_sgetrs_strided_batched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_sgetrs_strided_batched_rank_0 = rocsolver_sgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_sgetrs_strided_batched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_sgetrs_strided_batched_rank_1 = rocsolver_sgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dgetrs_strided_batched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dgetrs_strided_batched_full_rank = rocsolver_dgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dgetrs_strided_batched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dgetrs_strided_batched_rank_0 = rocsolver_dgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dgetrs_strided_batched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dgetrs_strided_batched_rank_1 = rocsolver_dgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_cgetrs_strided_batched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_cgetrs_strided_batched_full_rank = rocsolver_cgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_cgetrs_strided_batched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_cgetrs_strided_batched_rank_0 = rocsolver_cgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_cgetrs_strided_batched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_cgetrs_strided_batched_rank_1 = rocsolver_cgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zgetrs_strided_batched_full_rank(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zgetrs_strided_batched_full_rank = rocsolver_zgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zgetrs_strided_batched_rank_0(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zgetrs_strided_batched_rank_0 = rocsolver_zgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zgetrs_strided_batched_rank_1(handle,trans,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zgetrs_strided_batched_rank_1 = rocsolver_zgetrs_strided_batched_(handle,trans,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_sgesv_full_rank(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sgesv_full_rank = rocsolver_sgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_sgesv_rank_0(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sgesv_rank_0 = rocsolver_sgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_sgesv_rank_1(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sgesv_rank_1 = rocsolver_sgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_dgesv_full_rank(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dgesv_full_rank = rocsolver_dgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_dgesv_rank_0(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dgesv_rank_0 = rocsolver_dgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_dgesv_rank_1(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dgesv_rank_1 = rocsolver_dgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_cgesv_full_rank(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cgesv_full_rank = rocsolver_cgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_cgesv_rank_0(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cgesv_rank_0 = rocsolver_cgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_cgesv_rank_1(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cgesv_rank_1 = rocsolver_cgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_zgesv_full_rank(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zgesv_full_rank = rocsolver_zgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_zgesv_rank_0(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zgesv_rank_0 = rocsolver_zgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_zgesv_rank_1(handle,n,nrhs,A,lda,ipiv,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zgesv_rank_1 = rocsolver_zgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),c_loc(B),ldb,myInfo) end function function rocsolver_sgesv_batched_full_rank(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesv_batched_full_rank = rocsolver_sgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sgesv_batched_rank_0(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesv_batched_rank_0 = rocsolver_sgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sgesv_batched_rank_1(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesv_batched_rank_1 = rocsolver_sgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dgesv_batched_full_rank(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesv_batched_full_rank = rocsolver_dgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dgesv_batched_rank_0(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesv_batched_rank_0 = rocsolver_dgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dgesv_batched_rank_1(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesv_batched_rank_1 = rocsolver_dgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cgesv_batched_full_rank(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesv_batched_full_rank = rocsolver_cgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cgesv_batched_rank_0(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesv_batched_rank_0 = rocsolver_cgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cgesv_batched_rank_1(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesv_batched_rank_1 = rocsolver_cgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zgesv_batched_full_rank(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesv_batched_full_rank = rocsolver_zgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zgesv_batched_rank_0(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesv_batched_rank_0 = rocsolver_zgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zgesv_batched_rank_1(handle,n,nrhs,A,lda,ipiv,strideP,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesv_batched_rank_1 = rocsolver_zgesv_batched_(handle,n,nrhs,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sgesv_strided_batched_full_rank(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesv_strided_batched_full_rank = rocsolver_sgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sgesv_strided_batched_rank_0(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesv_strided_batched_rank_0 = rocsolver_sgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sgesv_strided_batched_rank_1(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesv_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesv_strided_batched_rank_1 = rocsolver_sgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dgesv_strided_batched_full_rank(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesv_strided_batched_full_rank = rocsolver_dgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dgesv_strided_batched_rank_0(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesv_strided_batched_rank_0 = rocsolver_dgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dgesv_strided_batched_rank_1(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesv_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesv_strided_batched_rank_1 = rocsolver_dgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cgesv_strided_batched_full_rank(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesv_strided_batched_full_rank = rocsolver_cgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cgesv_strided_batched_rank_0(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesv_strided_batched_rank_0 = rocsolver_cgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cgesv_strided_batched_rank_1(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesv_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesv_strided_batched_rank_1 = rocsolver_cgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zgesv_strided_batched_full_rank(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesv_strided_batched_full_rank = rocsolver_zgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zgesv_strided_batched_rank_0(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesv_strided_batched_rank_0 = rocsolver_zgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zgesv_strided_batched_rank_1(handle,n,nrhs,A,lda,strideA,ipiv,strideP,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesv_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesv_strided_batched_rank_1 = rocsolver_zgesv_strided_batched_(handle,n,nrhs,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sgetri_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetri_full_rank = rocsolver_sgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetri_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetri_rank_0 = rocsolver_sgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetri_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_sgetri_rank_1 = rocsolver_sgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetri_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetri_full_rank = rocsolver_dgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetri_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetri_rank_0 = rocsolver_dgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dgetri_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dgetri_rank_1 = rocsolver_dgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetri_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetri_full_rank = rocsolver_cgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetri_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetri_rank_0 = rocsolver_cgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_cgetri_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_cgetri_rank_1 = rocsolver_cgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetri_full_rank(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetri_full_rank = rocsolver_zgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetri_rank_0(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetri_rank_0 = rocsolver_zgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zgetri_rank_1(handle,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zgetri_rank_1 = rocsolver_zgetri_(handle,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_sgetri_batched_full_rank(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_batched_full_rank = rocsolver_sgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetri_batched_rank_0(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_batched_rank_0 = rocsolver_sgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetri_batched_rank_1(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_batched_rank_1 = rocsolver_sgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetri_batched_full_rank(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_batched_full_rank = rocsolver_dgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetri_batched_rank_0(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_batched_rank_0 = rocsolver_dgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetri_batched_rank_1(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_batched_rank_1 = rocsolver_dgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetri_batched_full_rank(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_batched_full_rank = rocsolver_cgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetri_batched_rank_0(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_batched_rank_0 = rocsolver_cgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetri_batched_rank_1(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_batched_rank_1 = rocsolver_cgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetri_batched_full_rank(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_batched_full_rank = rocsolver_zgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetri_batched_rank_0(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_batched_rank_0 = rocsolver_zgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetri_batched_rank_1(handle,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_batched_rank_1 = rocsolver_zgetri_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetri_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_strided_batched_full_rank = rocsolver_sgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetri_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_strided_batched_rank_0 = rocsolver_sgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetri_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_strided_batched_rank_1 = rocsolver_sgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetri_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_strided_batched_full_rank = rocsolver_dgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetri_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_strided_batched_rank_0 = rocsolver_dgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dgetri_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_strided_batched_rank_1 = rocsolver_dgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetri_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_strided_batched_full_rank = rocsolver_cgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetri_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_strided_batched_rank_0 = rocsolver_cgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_cgetri_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_strided_batched_rank_1 = rocsolver_cgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetri_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_strided_batched_full_rank = rocsolver_zgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetri_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_strided_batched_rank_0 = rocsolver_zgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zgetri_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_strided_batched_rank_1 = rocsolver_zgetri_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_sgetri_npvt_full_rank(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetri_npvt_full_rank = rocsolver_sgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetri_npvt_rank_0(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetri_npvt_rank_0 = rocsolver_sgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetri_npvt_rank_1(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_sgetri_npvt_rank_1 = rocsolver_sgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetri_npvt_full_rank(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetri_npvt_full_rank = rocsolver_dgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetri_npvt_rank_0(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetri_npvt_rank_0 = rocsolver_dgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_dgetri_npvt_rank_1(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dgetri_npvt_rank_1 = rocsolver_dgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetri_npvt_full_rank(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetri_npvt_full_rank = rocsolver_cgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetri_npvt_rank_0(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetri_npvt_rank_0 = rocsolver_cgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_cgetri_npvt_rank_1(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cgetri_npvt_rank_1 = rocsolver_cgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetri_npvt_full_rank(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetri_npvt_full_rank = rocsolver_zgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetri_npvt_rank_0(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetri_npvt_rank_0 = rocsolver_zgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_zgetri_npvt_rank_1(handle,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zgetri_npvt_rank_1 = rocsolver_zgetri_npvt_(handle,n,c_loc(A),lda,myInfo) end function function rocsolver_sgetri_npvt_batched_full_rank(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_batched_full_rank = rocsolver_sgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetri_npvt_batched_rank_0(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_batched_rank_0 = rocsolver_sgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetri_npvt_batched_rank_1(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_batched_rank_1 = rocsolver_sgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetri_npvt_batched_full_rank(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_batched_full_rank = rocsolver_dgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetri_npvt_batched_rank_0(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_batched_rank_0 = rocsolver_dgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dgetri_npvt_batched_rank_1(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_batched_rank_1 = rocsolver_dgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetri_npvt_batched_full_rank(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_batched_full_rank = rocsolver_cgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetri_npvt_batched_rank_0(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_batched_rank_0 = rocsolver_cgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cgetri_npvt_batched_rank_1(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_batched_rank_1 = rocsolver_cgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetri_npvt_batched_full_rank(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_batched_full_rank = rocsolver_zgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetri_npvt_batched_rank_0(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_batched_rank_0 = rocsolver_zgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zgetri_npvt_batched_rank_1(handle,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_batched_rank_1 = rocsolver_zgetri_npvt_batched_(handle,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_sgetri_npvt_strided_batched_full_rank(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_strided_batched_full_rank = rocsolver_sgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetri_npvt_strided_batched_rank_0(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_strided_batched_rank_0 = rocsolver_sgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgetri_npvt_strided_batched_rank_1(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_strided_batched_rank_1 = rocsolver_sgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetri_npvt_strided_batched_full_rank(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_strided_batched_full_rank = rocsolver_dgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetri_npvt_strided_batched_rank_0(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_strided_batched_rank_0 = rocsolver_dgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dgetri_npvt_strided_batched_rank_1(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_strided_batched_rank_1 = rocsolver_dgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetri_npvt_strided_batched_full_rank(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_strided_batched_full_rank = rocsolver_cgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetri_npvt_strided_batched_rank_0(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_strided_batched_rank_0 = rocsolver_cgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cgetri_npvt_strided_batched_rank_1(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_strided_batched_rank_1 = rocsolver_cgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetri_npvt_strided_batched_full_rank(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_strided_batched_full_rank = rocsolver_zgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetri_npvt_strided_batched_rank_0(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_strided_batched_rank_0 = rocsolver_zgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zgetri_npvt_strided_batched_rank_1(handle,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_strided_batched_rank_1 = rocsolver_zgetri_npvt_strided_batched_(handle,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgels_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sgels_full_rank = rocsolver_sgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_sgels_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sgels_rank_0 = rocsolver_sgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_sgels_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sgels_rank_1 = rocsolver_sgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_dgels_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dgels_full_rank = rocsolver_dgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_dgels_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dgels_rank_0 = rocsolver_dgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_dgels_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dgels_rank_1 = rocsolver_dgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_cgels_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cgels_full_rank = rocsolver_cgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_cgels_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cgels_rank_0 = rocsolver_cgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_cgels_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cgels_rank_1 = rocsolver_cgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_zgels_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zgels_full_rank = rocsolver_zgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_zgels_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zgels_rank_0 = rocsolver_zgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_zgels_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zgels_rank_1 = rocsolver_zgels_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_sgels_batched_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgels_batched_full_rank = rocsolver_sgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sgels_batched_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgels_batched_rank_0 = rocsolver_sgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sgels_batched_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgels_batched_rank_1 = rocsolver_sgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dgels_batched_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgels_batched_full_rank = rocsolver_dgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dgels_batched_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgels_batched_rank_0 = rocsolver_dgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dgels_batched_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgels_batched_rank_1 = rocsolver_dgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cgels_batched_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgels_batched_full_rank = rocsolver_cgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cgels_batched_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgels_batched_rank_0 = rocsolver_cgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cgels_batched_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgels_batched_rank_1 = rocsolver_cgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zgels_batched_full_rank(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgels_batched_full_rank = rocsolver_zgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zgels_batched_rank_0(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgels_batched_rank_0 = rocsolver_zgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zgels_batched_rank_1(handle,trans,m,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgels_batched_rank_1 = rocsolver_zgels_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sgels_strided_batched_full_rank(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgels_strided_batched_full_rank = rocsolver_sgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sgels_strided_batched_rank_0(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgels_strided_batched_rank_0 = rocsolver_sgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sgels_strided_batched_rank_1(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgels_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgels_strided_batched_rank_1 = rocsolver_sgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dgels_strided_batched_full_rank(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgels_strided_batched_full_rank = rocsolver_dgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dgels_strided_batched_rank_0(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgels_strided_batched_rank_0 = rocsolver_dgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dgels_strided_batched_rank_1(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgels_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgels_strided_batched_rank_1 = rocsolver_dgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cgels_strided_batched_full_rank(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgels_strided_batched_full_rank = rocsolver_cgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cgels_strided_batched_rank_0(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgels_strided_batched_rank_0 = rocsolver_cgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cgels_strided_batched_rank_1(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgels_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgels_strided_batched_rank_1 = rocsolver_cgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zgels_strided_batched_full_rank(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgels_strided_batched_full_rank = rocsolver_zgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zgels_strided_batched_rank_0(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgels_strided_batched_rank_0 = rocsolver_zgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zgels_strided_batched_rank_1(handle,trans,m,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgels_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgels_strided_batched_rank_1 = rocsolver_zgels_strided_batched_(handle,trans,m,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_spotf2_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotf2_full_rank = rocsolver_spotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotf2_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotf2_rank_0 = rocsolver_spotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotf2_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotf2_rank_1 = rocsolver_spotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotf2_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotf2_full_rank = rocsolver_dpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotf2_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotf2_rank_0 = rocsolver_dpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotf2_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotf2_rank_1 = rocsolver_dpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotf2_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotf2_full_rank = rocsolver_cpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotf2_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotf2_rank_0 = rocsolver_cpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotf2_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotf2_rank_1 = rocsolver_cpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotf2_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotf2_full_rank = rocsolver_zpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotf2_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotf2_rank_0 = rocsolver_zpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotf2_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotf2_rank_1 = rocsolver_zpotf2_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotf2_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotf2_batched_full_rank = rocsolver_spotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotf2_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotf2_batched_rank_0 = rocsolver_spotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotf2_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotf2_batched_rank_1 = rocsolver_spotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotf2_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotf2_batched_full_rank = rocsolver_dpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotf2_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotf2_batched_rank_0 = rocsolver_dpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotf2_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotf2_batched_rank_1 = rocsolver_dpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotf2_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotf2_batched_full_rank = rocsolver_cpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotf2_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotf2_batched_rank_0 = rocsolver_cpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotf2_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotf2_batched_rank_1 = rocsolver_cpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotf2_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotf2_batched_full_rank = rocsolver_zpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotf2_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotf2_batched_rank_0 = rocsolver_zpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotf2_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotf2_batched_rank_1 = rocsolver_zpotf2_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotf2_strided_batched_full_rank = rocsolver_spotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotf2_strided_batched_rank_0 = rocsolver_spotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotf2_strided_batched_rank_1 = rocsolver_spotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotf2_strided_batched_full_rank = rocsolver_dpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotf2_strided_batched_rank_0 = rocsolver_dpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotf2_strided_batched_rank_1 = rocsolver_dpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotf2_strided_batched_full_rank = rocsolver_cpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotf2_strided_batched_rank_0 = rocsolver_cpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotf2_strided_batched_rank_1 = rocsolver_cpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotf2_strided_batched_full_rank = rocsolver_zpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotf2_strided_batched_rank_0 = rocsolver_zpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotf2_strided_batched_rank_1 = rocsolver_zpotf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotrf_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotrf_full_rank = rocsolver_spotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotrf_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotrf_rank_0 = rocsolver_spotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotrf_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotrf_rank_1 = rocsolver_spotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotrf_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotrf_full_rank = rocsolver_dpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotrf_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotrf_rank_0 = rocsolver_dpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotrf_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotrf_rank_1 = rocsolver_dpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotrf_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotrf_full_rank = rocsolver_cpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotrf_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotrf_rank_0 = rocsolver_cpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotrf_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotrf_rank_1 = rocsolver_cpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotrf_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotrf_full_rank = rocsolver_zpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotrf_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotrf_rank_0 = rocsolver_zpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotrf_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotrf_rank_1 = rocsolver_zpotrf_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotrf_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotrf_batched_full_rank = rocsolver_spotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotrf_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotrf_batched_rank_0 = rocsolver_spotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotrf_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotrf_batched_rank_1 = rocsolver_spotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotrf_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotrf_batched_full_rank = rocsolver_dpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotrf_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotrf_batched_rank_0 = rocsolver_dpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotrf_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotrf_batched_rank_1 = rocsolver_dpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotrf_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotrf_batched_full_rank = rocsolver_cpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotrf_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotrf_batched_rank_0 = rocsolver_cpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotrf_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotrf_batched_rank_1 = rocsolver_cpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotrf_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotrf_batched_full_rank = rocsolver_zpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotrf_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotrf_batched_rank_0 = rocsolver_zpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotrf_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotrf_batched_rank_1 = rocsolver_zpotrf_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotrf_strided_batched_full_rank = rocsolver_spotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotrf_strided_batched_rank_0 = rocsolver_spotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotrf_strided_batched_rank_1 = rocsolver_spotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotrf_strided_batched_full_rank = rocsolver_dpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotrf_strided_batched_rank_0 = rocsolver_dpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotrf_strided_batched_rank_1 = rocsolver_dpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotrf_strided_batched_full_rank = rocsolver_cpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotrf_strided_batched_rank_0 = rocsolver_cpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotrf_strided_batched_rank_1 = rocsolver_cpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotrf_strided_batched_full_rank = rocsolver_zpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotrf_strided_batched_rank_0 = rocsolver_zpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotrf_strided_batched_rank_1 = rocsolver_zpotrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_spotrs_full_rank = rocsolver_spotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_spotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! rocsolver_spotrs_rank_0 = rocsolver_spotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_spotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_spotrs_rank_1 = rocsolver_spotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_dpotrs_full_rank = rocsolver_dpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! rocsolver_dpotrs_rank_0 = rocsolver_dpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_dpotrs_rank_1 = rocsolver_dpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_cpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_cpotrs_full_rank = rocsolver_cpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_cpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! rocsolver_cpotrs_rank_0 = rocsolver_cpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_cpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_cpotrs_rank_1 = rocsolver_cpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_zpotrs_full_rank = rocsolver_zpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! rocsolver_zpotrs_rank_0 = rocsolver_zpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_zpotrs_rank_1 = rocsolver_zpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_spotrs_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_spotrs_batched_full_rank = rocsolver_spotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_spotrs_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_spotrs_batched_rank_0 = rocsolver_spotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_spotrs_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_spotrs_batched_rank_1 = rocsolver_spotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dpotrs_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dpotrs_batched_full_rank = rocsolver_dpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dpotrs_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dpotrs_batched_rank_0 = rocsolver_dpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dpotrs_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dpotrs_batched_rank_1 = rocsolver_dpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_cpotrs_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_cpotrs_batched_full_rank = rocsolver_cpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_cpotrs_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_cpotrs_batched_rank_0 = rocsolver_cpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_cpotrs_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_cpotrs_batched_rank_1 = rocsolver_cpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zpotrs_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zpotrs_batched_full_rank = rocsolver_zpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zpotrs_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zpotrs_batched_rank_0 = rocsolver_zpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zpotrs_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zpotrs_batched_rank_1 = rocsolver_zpotrs_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_spotrs_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_spotrs_strided_batched_full_rank = rocsolver_spotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_spotrs_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_spotrs_strided_batched_rank_0 = rocsolver_spotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_spotrs_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_spotrs_strided_batched_rank_1 = rocsolver_spotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dpotrs_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dpotrs_strided_batched_full_rank = rocsolver_dpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dpotrs_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dpotrs_strided_batched_rank_0 = rocsolver_dpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dpotrs_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dpotrs_strided_batched_rank_1 = rocsolver_dpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_cpotrs_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_cpotrs_strided_batched_full_rank = rocsolver_cpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_cpotrs_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_cpotrs_strided_batched_rank_0 = rocsolver_cpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_cpotrs_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_cpotrs_strided_batched_rank_1 = rocsolver_cpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zpotrs_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zpotrs_strided_batched_full_rank = rocsolver_zpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zpotrs_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zpotrs_strided_batched_rank_0 = rocsolver_zpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zpotrs_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotrs_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zpotrs_strided_batched_rank_1 = rocsolver_zpotrs_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_sposv_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sposv_full_rank = rocsolver_sposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_sposv_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sposv_rank_0 = rocsolver_sposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_sposv_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_sposv_rank_1 = rocsolver_sposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_dposv_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dposv_full_rank = rocsolver_dposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_dposv_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dposv_rank_0 = rocsolver_dposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_dposv_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_dposv_rank_1 = rocsolver_dposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_cposv_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cposv_full_rank = rocsolver_cposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_cposv_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cposv_rank_0 = rocsolver_cposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_cposv_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_cposv_rank_1 = rocsolver_cposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_zposv_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zposv_full_rank = rocsolver_zposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_zposv_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zposv_rank_0 = rocsolver_zposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_zposv_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo ! rocsolver_zposv_rank_1 = rocsolver_zposv_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo) end function function rocsolver_sposv_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sposv_batched_full_rank = rocsolver_sposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sposv_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sposv_batched_rank_0 = rocsolver_sposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sposv_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sposv_batched_rank_1 = rocsolver_sposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dposv_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dposv_batched_full_rank = rocsolver_dposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dposv_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dposv_batched_rank_0 = rocsolver_dposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_dposv_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dposv_batched_rank_1 = rocsolver_dposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cposv_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cposv_batched_full_rank = rocsolver_cposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cposv_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cposv_batched_rank_0 = rocsolver_cposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_cposv_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cposv_batched_rank_1 = rocsolver_cposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zposv_batched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zposv_batched_full_rank = rocsolver_zposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zposv_batched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zposv_batched_rank_0 = rocsolver_zposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_zposv_batched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zposv_batched_rank_1 = rocsolver_zposv_batched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,myInfo,batch_count) end function function rocsolver_sposv_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sposv_strided_batched_full_rank = rocsolver_sposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sposv_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sposv_strided_batched_rank_0 = rocsolver_sposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_sposv_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sposv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sposv_strided_batched_rank_1 = rocsolver_sposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dposv_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dposv_strided_batched_full_rank = rocsolver_dposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dposv_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dposv_strided_batched_rank_0 = rocsolver_dposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_dposv_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dposv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dposv_strided_batched_rank_1 = rocsolver_dposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cposv_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cposv_strided_batched_full_rank = rocsolver_cposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cposv_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cposv_strided_batched_rank_0 = rocsolver_cposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_cposv_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cposv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cposv_strided_batched_rank_1 = rocsolver_cposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zposv_strided_batched_full_rank(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zposv_strided_batched_full_rank = rocsolver_zposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zposv_strided_batched_rank_0(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zposv_strided_batched_rank_0 = rocsolver_zposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_zposv_strided_batched_rank_1(handle,uplo,n,nrhs,A,lda,strideA,B,ldb,strideB,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zposv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zposv_strided_batched_rank_1 = rocsolver_zposv_strided_batched_(handle,uplo,n,nrhs,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,myInfo,batch_count) end function function rocsolver_spotri_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotri_full_rank = rocsolver_spotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotri_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotri_rank_0 = rocsolver_spotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotri_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_spotri_rank_1 = rocsolver_spotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotri_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotri_full_rank = rocsolver_dpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotri_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotri_rank_0 = rocsolver_dpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_dpotri_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dpotri_rank_1 = rocsolver_dpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotri_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotri_full_rank = rocsolver_cpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotri_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotri_rank_0 = rocsolver_cpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_cpotri_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_cpotri_rank_1 = rocsolver_cpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotri_full_rank(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotri_full_rank = rocsolver_zpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotri_rank_0(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotri_rank_0 = rocsolver_zpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_zpotri_rank_1(handle,uplo,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_zpotri_rank_1 = rocsolver_zpotri_(handle,uplo,n,c_loc(A),lda,myInfo) end function function rocsolver_spotri_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotri_batched_full_rank = rocsolver_spotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotri_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotri_batched_rank_0 = rocsolver_spotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotri_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotri_batched_rank_1 = rocsolver_spotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotri_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotri_batched_full_rank = rocsolver_dpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotri_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotri_batched_rank_0 = rocsolver_dpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dpotri_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotri_batched_rank_1 = rocsolver_dpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotri_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotri_batched_full_rank = rocsolver_cpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotri_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotri_batched_rank_0 = rocsolver_cpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_cpotri_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotri_batched_rank_1 = rocsolver_cpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotri_batched_full_rank(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotri_batched_full_rank = rocsolver_zpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotri_batched_rank_0(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotri_batched_rank_0 = rocsolver_zpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_zpotri_batched_rank_1(handle,uplo,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotri_batched_rank_1 = rocsolver_zpotri_batched_(handle,uplo,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_spotri_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotri_strided_batched_full_rank = rocsolver_spotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotri_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotri_strided_batched_rank_0 = rocsolver_spotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_spotri_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_spotri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_spotri_strided_batched_rank_1 = rocsolver_spotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotri_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotri_strided_batched_full_rank = rocsolver_dpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotri_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotri_strided_batched_rank_0 = rocsolver_dpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dpotri_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dpotri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dpotri_strided_batched_rank_1 = rocsolver_dpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotri_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotri_strided_batched_full_rank = rocsolver_cpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotri_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotri_strided_batched_rank_0 = rocsolver_cpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_cpotri_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cpotri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cpotri_strided_batched_rank_1 = rocsolver_cpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotri_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotri_strided_batched_full_rank = rocsolver_zpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotri_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotri_strided_batched_rank_0 = rocsolver_zpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_zpotri_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zpotri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zpotri_strided_batched_rank_1 = rocsolver_zpotri_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_sgesvd_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S real(c_float),target,dimension(:,:) :: U integer(c_int) :: ldu real(c_float),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_sgesvd_full_rank = rocsolver_sgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_sgesvd_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: S real(c_float),target :: U integer(c_int) :: ldu real(c_float),target :: V integer(c_int) :: ldv real(c_float),target :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_sgesvd_rank_0 = rocsolver_sgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_sgesvd_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S real(c_float),target,dimension(:) :: U integer(c_int) :: ldu real(c_float),target,dimension(:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_sgesvd_rank_1 = rocsolver_sgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_dgesvd_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S real(c_double),target,dimension(:,:) :: U integer(c_int) :: ldu real(c_double),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_dgesvd_full_rank = rocsolver_dgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_dgesvd_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: S real(c_double),target :: U integer(c_int) :: ldu real(c_double),target :: V integer(c_int) :: ldv real(c_double),target :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_dgesvd_rank_0 = rocsolver_dgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_dgesvd_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S real(c_double),target,dimension(:) :: U integer(c_int) :: ldu real(c_double),target,dimension(:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_dgesvd_rank_1 = rocsolver_dgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_cgesvd_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S complex(c_float_complex),target,dimension(:,:) :: U integer(c_int) :: ldu complex(c_float_complex),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_cgesvd_full_rank = rocsolver_cgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_cgesvd_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: S complex(c_float_complex),target :: U integer(c_int) :: ldu complex(c_float_complex),target :: V integer(c_int) :: ldv real(c_float),target :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_cgesvd_rank_0 = rocsolver_cgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_cgesvd_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S complex(c_float_complex),target,dimension(:) :: U integer(c_int) :: ldu complex(c_float_complex),target,dimension(:) :: V integer(c_int) :: ldv real(c_float),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_cgesvd_rank_1 = rocsolver_cgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_zgesvd_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S complex(c_double_complex),target,dimension(:,:) :: U integer(c_int) :: ldu complex(c_double_complex),target,dimension(:,:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_zgesvd_full_rank = rocsolver_zgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_zgesvd_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: S complex(c_double_complex),target :: U integer(c_int) :: ldu complex(c_double_complex),target :: V integer(c_int) :: ldv real(c_double),target :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_zgesvd_rank_0 = rocsolver_zgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_zgesvd_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,U,ldu,V,ldv,E,fast_alg,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S complex(c_double_complex),target,dimension(:) :: U integer(c_int) :: ldu complex(c_double_complex),target,dimension(:) :: V integer(c_int) :: ldv real(c_double),target,dimension(:) :: E integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo ! rocsolver_zgesvd_rank_1 = rocsolver_zgesvd_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),c_loc(U),ldu,c_loc(V),ldv,c_loc(E),fast_alg,myInfo) end function function rocsolver_sgesvd_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_float),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_float),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesvd_batched_full_rank = rocsolver_sgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_sgesvd_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: S integer(c_int64_t) :: strideS real(c_float),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_float),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesvd_batched_rank_0 = rocsolver_sgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_sgesvd_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_float),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_float),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesvd_batched_rank_1 = rocsolver_sgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_dgesvd_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_double),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_double),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesvd_batched_full_rank = rocsolver_dgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_dgesvd_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: S integer(c_int64_t) :: strideS real(c_double),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_double),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesvd_batched_rank_0 = rocsolver_dgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_dgesvd_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_double),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_double),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesvd_batched_rank_1 = rocsolver_dgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_cgesvd_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_float_complex),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_float_complex),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesvd_batched_full_rank = rocsolver_cgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_cgesvd_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: S integer(c_int64_t) :: strideS complex(c_float_complex),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_float_complex),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesvd_batched_rank_0 = rocsolver_cgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_cgesvd_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_float_complex),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_float_complex),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesvd_batched_rank_1 = rocsolver_cgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_zgesvd_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_double_complex),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_double_complex),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesvd_batched_full_rank = rocsolver_zgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_zgesvd_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: S integer(c_int64_t) :: strideS complex(c_double_complex),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_double_complex),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesvd_batched_rank_0 = rocsolver_zgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_zgesvd_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_double_complex),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_double_complex),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesvd_batched_rank_1 = rocsolver_zgesvd_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_sgesvd_strided_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_float),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_float),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesvd_strided_batched_full_rank = rocsolver_sgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_sgesvd_strided_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: S integer(c_int64_t) :: strideS real(c_float),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_float),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesvd_strided_batched_rank_0 = rocsolver_sgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_sgesvd_strided_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgesvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_float),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_float),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgesvd_strided_batched_rank_1 = rocsolver_sgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_dgesvd_strided_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_double),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_double),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesvd_strided_batched_full_rank = rocsolver_dgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_dgesvd_strided_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: S integer(c_int64_t) :: strideS real(c_double),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_double),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesvd_strided_batched_rank_0 = rocsolver_dgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_dgesvd_strided_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgesvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS real(c_double),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU real(c_double),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgesvd_strided_batched_rank_1 = rocsolver_dgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_cgesvd_strided_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_float_complex),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_float_complex),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesvd_strided_batched_full_rank = rocsolver_cgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_cgesvd_strided_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: S integer(c_int64_t) :: strideS complex(c_float_complex),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_float_complex),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesvd_strided_batched_rank_0 = rocsolver_cgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_cgesvd_strided_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgesvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_float_complex),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_float_complex),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgesvd_strided_batched_rank_1 = rocsolver_cgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_zgesvd_strided_batched_full_rank(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_double_complex),target,dimension(:,:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_double_complex),target,dimension(:,:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesvd_strided_batched_full_rank = rocsolver_zgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_zgesvd_strided_batched_rank_0(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: S integer(c_int64_t) :: strideS complex(c_double_complex),target :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_double_complex),target :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesvd_strided_batched_rank_0 = rocsolver_zgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_zgesvd_strided_batched_rank_1(handle,left_svect,right_svect,m,n,A,lda,strideA,S,strideS,U,ldu,strideU,V,ldv,strideV,E,strideE,fast_alg,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgesvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_svect_all)) :: left_svect integer(kind(rocblas_svect_all)) :: right_svect integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: S integer(c_int64_t) :: strideS complex(c_double_complex),target,dimension(:) :: U integer(c_int) :: ldu integer(c_int64_t) :: strideU complex(c_double_complex),target,dimension(:) :: V integer(c_int) :: ldv integer(c_int64_t) :: strideV real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(kind(rocblas_outofplace)) :: fast_alg integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgesvd_strided_batched_rank_1 = rocsolver_zgesvd_strided_batched_(handle,left_svect,right_svect,m,n,c_loc(A),lda,strideA,c_loc(S),strideS,c_loc(U),ldu,strideU,c_loc(V),ldv,strideV,c_loc(E),strideE,fast_alg,myInfo,batch_count) end function function rocsolver_ssytd2_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau ! rocsolver_ssytd2_full_rank = rocsolver_ssytd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_ssytd2_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float) :: tau ! rocsolver_ssytd2_rank_0 = rocsolver_ssytd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_ssytd2_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau ! rocsolver_ssytd2_rank_1 = rocsolver_ssytd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_dsytd2_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau ! rocsolver_dsytd2_full_rank = rocsolver_dsytd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_dsytd2_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double) :: tau ! rocsolver_dsytd2_rank_0 = rocsolver_dsytd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_dsytd2_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau ! rocsolver_dsytd2_rank_1 = rocsolver_dsytd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_chetd2_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau ! rocsolver_chetd2_full_rank = rocsolver_chetd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_chetd2_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex) :: tau ! rocsolver_chetd2_rank_0 = rocsolver_chetd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_chetd2_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau ! rocsolver_chetd2_rank_1 = rocsolver_chetd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_zhetd2_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau ! rocsolver_zhetd2_full_rank = rocsolver_zhetd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_zhetd2_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex) :: tau ! rocsolver_zhetd2_rank_0 = rocsolver_zhetd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_zhetd2_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau ! rocsolver_zhetd2_rank_1 = rocsolver_zhetd2_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_ssytd2_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytd2_batched_full_rank = rocsolver_ssytd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytd2_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytd2_batched_rank_0 = rocsolver_ssytd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytd2_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytd2_batched_rank_1 = rocsolver_ssytd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytd2_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytd2_batched_full_rank = rocsolver_dsytd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytd2_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytd2_batched_rank_0 = rocsolver_dsytd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytd2_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytd2_batched_rank_1 = rocsolver_dsytd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetd2_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetd2_batched_full_rank = rocsolver_chetd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetd2_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetd2_batched_rank_0 = rocsolver_chetd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetd2_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetd2_batched_rank_1 = rocsolver_chetd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetd2_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetd2_batched_full_rank = rocsolver_zhetd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetd2_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetd2_batched_rank_0 = rocsolver_zhetd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetd2_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetd2_batched_rank_1 = rocsolver_zhetd2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytd2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytd2_strided_batched_full_rank = rocsolver_ssytd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytd2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytd2_strided_batched_rank_0 = rocsolver_ssytd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytd2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytd2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytd2_strided_batched_rank_1 = rocsolver_ssytd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytd2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytd2_strided_batched_full_rank = rocsolver_dsytd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytd2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytd2_strided_batched_rank_0 = rocsolver_dsytd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytd2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytd2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytd2_strided_batched_rank_1 = rocsolver_dsytd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetd2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetd2_strided_batched_full_rank = rocsolver_chetd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetd2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetd2_strided_batched_rank_0 = rocsolver_chetd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetd2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetd2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetd2_strided_batched_rank_1 = rocsolver_chetd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetd2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetd2_strided_batched_full_rank = rocsolver_zhetd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetd2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetd2_strided_batched_rank_0 = rocsolver_zhetd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetd2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetd2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetd2_strided_batched_rank_1 = rocsolver_zhetd2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytrd_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau ! rocsolver_ssytrd_full_rank = rocsolver_ssytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_ssytrd_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float) :: tau ! rocsolver_ssytrd_rank_0 = rocsolver_ssytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_ssytrd_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau ! rocsolver_ssytrd_rank_1 = rocsolver_ssytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_dsytrd_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau ! rocsolver_dsytrd_full_rank = rocsolver_dsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_dsytrd_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double) :: tau ! rocsolver_dsytrd_rank_0 = rocsolver_dsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_dsytrd_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau ! rocsolver_dsytrd_rank_1 = rocsolver_dsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_chetrd_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau ! rocsolver_chetrd_full_rank = rocsolver_chetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_chetrd_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex) :: tau ! rocsolver_chetrd_rank_0 = rocsolver_chetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_chetrd_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau ! rocsolver_chetrd_rank_1 = rocsolver_chetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_zhetrd_full_rank(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau ! rocsolver_zhetrd_full_rank = rocsolver_zhetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_zhetrd_rank_0(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex) :: tau ! rocsolver_zhetrd_rank_0 = rocsolver_zhetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_zhetrd_rank_1(handle,uplo,n,A,lda,D,E,tau) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau ! rocsolver_zhetrd_rank_1 = rocsolver_zhetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau) end function function rocsolver_ssytrd_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytrd_batched_full_rank = rocsolver_ssytrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytrd_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytrd_batched_rank_0 = rocsolver_ssytrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytrd_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytrd_batched_rank_1 = rocsolver_ssytrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytrd_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytrd_batched_full_rank = rocsolver_dsytrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytrd_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytrd_batched_rank_0 = rocsolver_dsytrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytrd_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytrd_batched_rank_1 = rocsolver_dsytrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetrd_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetrd_batched_full_rank = rocsolver_chetrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetrd_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetrd_batched_rank_0 = rocsolver_chetrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetrd_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetrd_batched_rank_1 = rocsolver_chetrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetrd_batched_full_rank(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetrd_batched_full_rank = rocsolver_zhetrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetrd_batched_rank_0(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetrd_batched_rank_0 = rocsolver_zhetrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetrd_batched_rank_1(handle,uplo,n,A,lda,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetrd_batched_rank_1 = rocsolver_zhetrd_batched_(handle,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytrd_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytrd_strided_batched_full_rank = rocsolver_ssytrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytrd_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytrd_strided_batched_rank_0 = rocsolver_ssytrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssytrd_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_float) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_ssytrd_strided_batched_rank_1 = rocsolver_ssytrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytrd_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytrd_strided_batched_full_rank = rocsolver_dsytrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytrd_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytrd_strided_batched_rank_0 = rocsolver_dsytrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_dsytrd_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE real(c_double) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_dsytrd_strided_batched_rank_1 = rocsolver_dsytrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetrd_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetrd_strided_batched_full_rank = rocsolver_chetrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetrd_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetrd_strided_batched_rank_0 = rocsolver_chetrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_chetrd_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chetrd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_float_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_chetrd_strided_batched_rank_1 = rocsolver_chetrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetrd_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetrd_strided_batched_full_rank = rocsolver_zhetrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetrd_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetrd_strided_batched_rank_0 = rocsolver_zhetrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_zhetrd_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,D,strideD,E,strideE,tau,strideP,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhetrd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE complex(c_double_complex) :: tau integer(c_int64_t) :: strideP integer(c_int) :: batch_count ! rocsolver_zhetrd_strided_batched_rank_1 = rocsolver_zhetrd_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,tau,strideP,batch_count) end function function rocsolver_ssygs2_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_ssygs2_full_rank = rocsolver_ssygs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_ssygs2_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! rocsolver_ssygs2_rank_0 = rocsolver_ssygs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_ssygs2_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_ssygs2_rank_1 = rocsolver_ssygs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dsygs2_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_dsygs2_full_rank = rocsolver_dsygs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dsygs2_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! rocsolver_dsygs2_rank_0 = rocsolver_dsygs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dsygs2_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_dsygs2_rank_1 = rocsolver_dsygs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_chegs2_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_chegs2_full_rank = rocsolver_chegs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_chegs2_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! rocsolver_chegs2_rank_0 = rocsolver_chegs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_chegs2_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_chegs2_rank_1 = rocsolver_chegs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zhegs2_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_zhegs2_full_rank = rocsolver_zhegs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zhegs2_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! rocsolver_zhegs2_rank_0 = rocsolver_zhegs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zhegs2_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_zhegs2_rank_1 = rocsolver_zhegs2_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_ssygs2_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_ssygs2_batched_full_rank = rocsolver_ssygs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_ssygs2_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_ssygs2_batched_rank_0 = rocsolver_ssygs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_ssygs2_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_ssygs2_batched_rank_1 = rocsolver_ssygs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dsygs2_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dsygs2_batched_full_rank = rocsolver_dsygs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dsygs2_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dsygs2_batched_rank_0 = rocsolver_dsygs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dsygs2_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dsygs2_batched_rank_1 = rocsolver_dsygs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_chegs2_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_chegs2_batched_full_rank = rocsolver_chegs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_chegs2_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_chegs2_batched_rank_0 = rocsolver_chegs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_chegs2_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_chegs2_batched_rank_1 = rocsolver_chegs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zhegs2_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zhegs2_batched_full_rank = rocsolver_zhegs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zhegs2_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zhegs2_batched_rank_0 = rocsolver_zhegs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zhegs2_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zhegs2_batched_rank_1 = rocsolver_zhegs2_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_ssygs2_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_ssygs2_strided_batched_full_rank = rocsolver_ssygs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_ssygs2_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_ssygs2_strided_batched_rank_0 = rocsolver_ssygs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_ssygs2_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygs2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_ssygs2_strided_batched_rank_1 = rocsolver_ssygs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dsygs2_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dsygs2_strided_batched_full_rank = rocsolver_dsygs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dsygs2_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dsygs2_strided_batched_rank_0 = rocsolver_dsygs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dsygs2_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygs2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dsygs2_strided_batched_rank_1 = rocsolver_dsygs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_chegs2_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_chegs2_strided_batched_full_rank = rocsolver_chegs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_chegs2_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_chegs2_strided_batched_rank_0 = rocsolver_chegs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_chegs2_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegs2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_chegs2_strided_batched_rank_1 = rocsolver_chegs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zhegs2_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zhegs2_strided_batched_full_rank = rocsolver_zhegs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zhegs2_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zhegs2_strided_batched_rank_0 = rocsolver_zhegs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zhegs2_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegs2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zhegs2_strided_batched_rank_1 = rocsolver_zhegs2_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_ssygst_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_ssygst_full_rank = rocsolver_ssygst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_ssygst_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb ! rocsolver_ssygst_rank_0 = rocsolver_ssygst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_ssygst_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_ssygst_rank_1 = rocsolver_ssygst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dsygst_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_dsygst_full_rank = rocsolver_dsygst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dsygst_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb ! rocsolver_dsygst_rank_0 = rocsolver_dsygst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_dsygst_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_dsygst_rank_1 = rocsolver_dsygst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_chegst_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_chegst_full_rank = rocsolver_chegst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_chegst_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb ! rocsolver_chegst_rank_0 = rocsolver_chegst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_chegst_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_chegst_rank_1 = rocsolver_chegst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zhegst_full_rank(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb ! rocsolver_zhegst_full_rank = rocsolver_zhegst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zhegst_rank_0(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb ! rocsolver_zhegst_rank_0 = rocsolver_zhegst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_zhegst_rank_1(handle,itype,uplo,n,A,lda,B,ldb) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb ! rocsolver_zhegst_rank_1 = rocsolver_zhegst_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb) end function function rocsolver_ssygst_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_ssygst_batched_full_rank = rocsolver_ssygst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_ssygst_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_ssygst_batched_rank_0 = rocsolver_ssygst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_ssygst_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_ssygst_batched_rank_1 = rocsolver_ssygst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dsygst_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dsygst_batched_full_rank = rocsolver_dsygst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dsygst_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dsygst_batched_rank_0 = rocsolver_dsygst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_dsygst_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_dsygst_batched_rank_1 = rocsolver_dsygst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_chegst_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_chegst_batched_full_rank = rocsolver_chegst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_chegst_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_chegst_batched_rank_0 = rocsolver_chegst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_chegst_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_chegst_batched_rank_1 = rocsolver_chegst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zhegst_batched_full_rank(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zhegst_batched_full_rank = rocsolver_zhegst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zhegst_batched_rank_0(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zhegst_batched_rank_0 = rocsolver_zhegst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_zhegst_batched_rank_1(handle,itype,uplo,n,A,lda,B,ldb,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: batch_count ! rocsolver_zhegst_batched_rank_1 = rocsolver_zhegst_batched_(handle,itype,uplo,n,c_loc(A),lda,c_loc(B),ldb,batch_count) end function function rocsolver_ssygst_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_ssygst_strided_batched_full_rank = rocsolver_ssygst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_ssygst_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_ssygst_strided_batched_rank_0 = rocsolver_ssygst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_ssygst_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygst_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_ssygst_strided_batched_rank_1 = rocsolver_ssygst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dsygst_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dsygst_strided_batched_full_rank = rocsolver_dsygst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dsygst_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dsygst_strided_batched_rank_0 = rocsolver_dsygst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_dsygst_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygst_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_dsygst_strided_batched_rank_1 = rocsolver_dsygst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_chegst_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_chegst_strided_batched_full_rank = rocsolver_chegst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_chegst_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_chegst_strided_batched_rank_0 = rocsolver_chegst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_chegst_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegst_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_chegst_strided_batched_rank_1 = rocsolver_chegst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zhegst_strided_batched_full_rank(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zhegst_strided_batched_full_rank = rocsolver_zhegst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zhegst_strided_batched_rank_0(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zhegst_strided_batched_rank_0 = rocsolver_zhegst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_zhegst_strided_batched_rank_1(handle,itype,uplo,n,A,lda,strideA,B,ldb,strideB,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegst_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB integer(c_int) :: batch_count ! rocsolver_zhegst_strided_batched_rank_1 = rocsolver_zhegst_strided_batched_(handle,itype,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,batch_count) end function function rocsolver_ssyev_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssyev_full_rank = rocsolver_ssyev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssyev_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_ssyev_rank_0 = rocsolver_ssyev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssyev_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssyev_rank_1 = rocsolver_ssyev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsyev_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsyev_full_rank = rocsolver_dsyev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsyev_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_dsyev_rank_0 = rocsolver_dsyev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsyev_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsyev_rank_1 = rocsolver_dsyev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_cheev_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_cheev_full_rank = rocsolver_cheev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_cheev_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_cheev_rank_0 = rocsolver_cheev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_cheev_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_cheev_rank_1 = rocsolver_cheev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zheev_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zheev_full_rank = rocsolver_zheev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zheev_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_zheev_rank_0 = rocsolver_zheev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zheev_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zheev_rank_1 = rocsolver_zheev_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssyev_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyev_batched_full_rank = rocsolver_ssyev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyev_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyev_batched_rank_0 = rocsolver_ssyev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyev_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyev_batched_rank_1 = rocsolver_ssyev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyev_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyev_batched_full_rank = rocsolver_dsyev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyev_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyev_batched_rank_0 = rocsolver_dsyev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyev_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyev_batched_rank_1 = rocsolver_dsyev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheev_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheev_batched_full_rank = rocsolver_cheev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheev_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheev_batched_rank_0 = rocsolver_cheev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheev_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheev_batched_rank_1 = rocsolver_cheev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheev_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheev_batched_full_rank = rocsolver_zheev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheev_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheev_batched_rank_0 = rocsolver_zheev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheev_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheev_batched_rank_1 = rocsolver_zheev_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyev_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyev_strided_batched_full_rank = rocsolver_ssyev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyev_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyev_strided_batched_rank_0 = rocsolver_ssyev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyev_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyev_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyev_strided_batched_rank_1 = rocsolver_ssyev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyev_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyev_strided_batched_full_rank = rocsolver_dsyev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyev_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyev_strided_batched_rank_0 = rocsolver_dsyev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyev_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyev_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyev_strided_batched_rank_1 = rocsolver_dsyev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheev_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheev_strided_batched_full_rank = rocsolver_cheev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheev_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheev_strided_batched_rank_0 = rocsolver_cheev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheev_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheev_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheev_strided_batched_rank_1 = rocsolver_cheev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheev_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheev_strided_batched_full_rank = rocsolver_zheev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheev_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheev_strided_batched_rank_0 = rocsolver_zheev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheev_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheev_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheev_strided_batched_rank_1 = rocsolver_zheev_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyevd_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssyevd_full_rank = rocsolver_ssyevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssyevd_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_ssyevd_rank_0 = rocsolver_ssyevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssyevd_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssyevd_rank_1 = rocsolver_ssyevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsyevd_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsyevd_full_rank = rocsolver_dsyevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsyevd_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_dsyevd_rank_0 = rocsolver_dsyevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsyevd_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsyevd_rank_1 = rocsolver_dsyevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_cheevd_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_cheevd_full_rank = rocsolver_cheevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_cheevd_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_cheevd_rank_0 = rocsolver_cheevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_cheevd_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_cheevd_rank_1 = rocsolver_cheevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zheevd_full_rank(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zheevd_full_rank = rocsolver_zheevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zheevd_rank_0(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_zheevd_rank_0 = rocsolver_zheevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zheevd_rank_1(handle,evect,uplo,n,A,lda,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zheevd_rank_1 = rocsolver_zheevd_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssyevd_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyevd_batched_full_rank = rocsolver_ssyevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyevd_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyevd_batched_rank_0 = rocsolver_ssyevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyevd_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyevd_batched_rank_1 = rocsolver_ssyevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyevd_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyevd_batched_full_rank = rocsolver_dsyevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyevd_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyevd_batched_rank_0 = rocsolver_dsyevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyevd_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyevd_batched_rank_1 = rocsolver_dsyevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheevd_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheevd_batched_full_rank = rocsolver_cheevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheevd_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheevd_batched_rank_0 = rocsolver_cheevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheevd_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheevd_batched_rank_1 = rocsolver_cheevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheevd_batched_full_rank(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheevd_batched_full_rank = rocsolver_zheevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheevd_batched_rank_0(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheevd_batched_rank_0 = rocsolver_zheevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheevd_batched_rank_1(handle,evect,uplo,n,A,lda,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheevd_batched_rank_1 = rocsolver_zheevd_batched_(handle,evect,uplo,n,c_loc(A),lda,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyevd_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyevd_strided_batched_full_rank = rocsolver_ssyevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyevd_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyevd_strided_batched_rank_0 = rocsolver_ssyevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssyevd_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssyevd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssyevd_strided_batched_rank_1 = rocsolver_ssyevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyevd_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyevd_strided_batched_full_rank = rocsolver_dsyevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyevd_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyevd_strided_batched_rank_0 = rocsolver_dsyevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsyevd_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsyevd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsyevd_strided_batched_rank_1 = rocsolver_dsyevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheevd_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheevd_strided_batched_full_rank = rocsolver_cheevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheevd_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheevd_strided_batched_rank_0 = rocsolver_cheevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_cheevd_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cheevd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cheevd_strided_batched_rank_1 = rocsolver_cheevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheevd_strided_batched_full_rank(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheevd_strided_batched_full_rank = rocsolver_zheevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheevd_strided_batched_rank_0(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheevd_strided_batched_rank_0 = rocsolver_zheevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zheevd_strided_batched_rank_1(handle,evect,uplo,n,A,lda,strideA,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zheevd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zheevd_strided_batched_rank_1 = rocsolver_zheevd_strided_batched_(handle,evect,uplo,n,c_loc(A),lda,strideA,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygv_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssygv_full_rank = rocsolver_ssygv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssygv_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_ssygv_rank_0 = rocsolver_ssygv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssygv_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssygv_rank_1 = rocsolver_ssygv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsygv_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsygv_full_rank = rocsolver_dsygv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsygv_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_dsygv_rank_0 = rocsolver_dsygv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsygv_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsygv_rank_1 = rocsolver_dsygv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_chegv_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_chegv_full_rank = rocsolver_chegv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_chegv_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_chegv_rank_0 = rocsolver_chegv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_chegv_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_chegv_rank_1 = rocsolver_chegv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zhegv_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zhegv_full_rank = rocsolver_zhegv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zhegv_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_zhegv_rank_0 = rocsolver_zhegv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zhegv_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zhegv_rank_1 = rocsolver_zhegv_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssygv_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygv_batched_full_rank = rocsolver_ssygv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygv_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygv_batched_rank_0 = rocsolver_ssygv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygv_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygv_batched_rank_1 = rocsolver_ssygv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygv_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygv_batched_full_rank = rocsolver_dsygv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygv_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygv_batched_rank_0 = rocsolver_dsygv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygv_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygv_batched_rank_1 = rocsolver_dsygv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegv_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegv_batched_full_rank = rocsolver_chegv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegv_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegv_batched_rank_0 = rocsolver_chegv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegv_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegv_batched_rank_1 = rocsolver_chegv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegv_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegv_batched_full_rank = rocsolver_zhegv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegv_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegv_batched_rank_0 = rocsolver_zhegv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegv_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegv_batched_rank_1 = rocsolver_zhegv_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygv_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygv_strided_batched_full_rank = rocsolver_ssygv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygv_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygv_strided_batched_rank_0 = rocsolver_ssygv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygv_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygv_strided_batched_rank_1 = rocsolver_ssygv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygv_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygv_strided_batched_full_rank = rocsolver_dsygv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygv_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygv_strided_batched_rank_0 = rocsolver_dsygv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygv_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygv_strided_batched_rank_1 = rocsolver_dsygv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegv_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegv_strided_batched_full_rank = rocsolver_chegv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegv_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegv_strided_batched_rank_0 = rocsolver_chegv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegv_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegv_strided_batched_rank_1 = rocsolver_chegv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegv_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegv_strided_batched_full_rank = rocsolver_zhegv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegv_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegv_strided_batched_rank_0 = rocsolver_zhegv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegv_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegv_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegv_strided_batched_rank_1 = rocsolver_zhegv_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygvd_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssygvd_full_rank = rocsolver_ssygvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssygvd_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_ssygvd_rank_0 = rocsolver_ssygvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssygvd_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_ssygvd_rank_1 = rocsolver_ssygvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsygvd_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsygvd_full_rank = rocsolver_dsygvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsygvd_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_dsygvd_rank_0 = rocsolver_dsygvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_dsygvd_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_dsygvd_rank_1 = rocsolver_dsygvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_chegvd_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_chegvd_full_rank = rocsolver_chegvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_chegvd_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float),target :: D real(c_float),target :: E integer(c_int) :: myInfo ! rocsolver_chegvd_rank_0 = rocsolver_chegvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_chegvd_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_chegvd_rank_1 = rocsolver_chegvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zhegvd_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zhegvd_full_rank = rocsolver_zhegvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zhegvd_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double),target :: D real(c_double),target :: E integer(c_int) :: myInfo ! rocsolver_zhegvd_rank_0 = rocsolver_zhegvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_zhegvd_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,E,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E integer(c_int) :: myInfo ! rocsolver_zhegvd_rank_1 = rocsolver_zhegvd_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),c_loc(E),myInfo) end function function rocsolver_ssygvd_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygvd_batched_full_rank = rocsolver_ssygvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygvd_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygvd_batched_rank_0 = rocsolver_ssygvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygvd_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygvd_batched_rank_1 = rocsolver_ssygvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygvd_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygvd_batched_full_rank = rocsolver_dsygvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygvd_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygvd_batched_rank_0 = rocsolver_dsygvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygvd_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygvd_batched_rank_1 = rocsolver_dsygvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegvd_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegvd_batched_full_rank = rocsolver_chegvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegvd_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegvd_batched_rank_0 = rocsolver_chegvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegvd_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegvd_batched_rank_1 = rocsolver_chegvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegvd_batched_full_rank(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegvd_batched_full_rank = rocsolver_zhegvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegvd_batched_rank_0(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegvd_batched_rank_0 = rocsolver_zhegvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegvd_batched_rank_1(handle,itype,evect,uplo,n,A,lda,B,ldb,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegvd_batched_rank_1 = rocsolver_zhegvd_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygvd_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygvd_strided_batched_full_rank = rocsolver_ssygvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygvd_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygvd_strided_batched_rank_0 = rocsolver_ssygvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_ssygvd_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssygvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssygvd_strided_batched_rank_1 = rocsolver_ssygvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygvd_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygvd_strided_batched_full_rank = rocsolver_dsygvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygvd_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygvd_strided_batched_rank_0 = rocsolver_dsygvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_dsygvd_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsygvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsygvd_strided_batched_rank_1 = rocsolver_dsygvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegvd_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegvd_strided_batched_full_rank = rocsolver_chegvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegvd_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target :: D integer(c_int64_t) :: strideD real(c_float),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegvd_strided_batched_rank_0 = rocsolver_chegvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_chegvd_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_chegvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_float),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_float),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_chegvd_strided_batched_rank_1 = rocsolver_chegvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegvd_strided_batched_full_rank(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegvd_strided_batched_full_rank = rocsolver_zhegvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegvd_strided_batched_rank_0(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target :: D integer(c_int64_t) :: strideD real(c_double),target :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegvd_strided_batched_rank_0 = rocsolver_zhegvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_zhegvd_strided_batched_rank_1(handle,itype,evect,uplo,n,A,lda,strideA,B,ldb,strideB,D,strideD,E,strideE,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zhegvd_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_eform_ax)) :: itype integer(kind(rocblas_evect_original)) :: evect integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int64_t) :: strideB real(c_double),target,dimension(:) :: D integer(c_int64_t) :: strideD real(c_double),target,dimension(:) :: E integer(c_int64_t) :: strideE integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zhegvd_strided_batched_rank_1 = rocsolver_zhegvd_strided_batched_(handle,itype,evect,uplo,n,c_loc(A),lda,strideA,c_loc(B),ldb,strideB,c_loc(D),strideD,c_loc(E),strideE,myInfo,batch_count) end function function rocsolver_sgetri_outofplace_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sgetri_outofplace_full_rank = rocsolver_sgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_sgetri_outofplace_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sgetri_outofplace_rank_0 = rocsolver_sgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_sgetri_outofplace_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sgetri_outofplace_rank_1 = rocsolver_sgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_dgetri_outofplace_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dgetri_outofplace_full_rank = rocsolver_dgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_dgetri_outofplace_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dgetri_outofplace_rank_0 = rocsolver_dgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_dgetri_outofplace_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dgetri_outofplace_rank_1 = rocsolver_dgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_cgetri_outofplace_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cgetri_outofplace_full_rank = rocsolver_cgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_cgetri_outofplace_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cgetri_outofplace_rank_0 = rocsolver_cgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_cgetri_outofplace_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cgetri_outofplace_rank_1 = rocsolver_cgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_zgetri_outofplace_full_rank(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zgetri_outofplace_full_rank = rocsolver_zgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_zgetri_outofplace_rank_0(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zgetri_outofplace_rank_0 = rocsolver_zgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_zgetri_outofplace_rank_1(handle,n,A,lda,ipiv,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zgetri_outofplace_rank_1 = rocsolver_zgetri_outofplace_(handle,n,c_loc(A),lda,c_loc(ipiv),c_loc(C),ldc,myInfo) end function function rocsolver_sgetri_outofplace_batched_full_rank(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_outofplace_batched_full_rank = rocsolver_sgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_sgetri_outofplace_batched_rank_0(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_outofplace_batched_rank_0 = rocsolver_sgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_sgetri_outofplace_batched_rank_1(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_outofplace_batched_rank_1 = rocsolver_sgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_dgetri_outofplace_batched_full_rank(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_outofplace_batched_full_rank = rocsolver_dgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_dgetri_outofplace_batched_rank_0(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_outofplace_batched_rank_0 = rocsolver_dgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_dgetri_outofplace_batched_rank_1(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_outofplace_batched_rank_1 = rocsolver_dgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_cgetri_outofplace_batched_full_rank(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_outofplace_batched_full_rank = rocsolver_cgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_cgetri_outofplace_batched_rank_0(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_outofplace_batched_rank_0 = rocsolver_cgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_cgetri_outofplace_batched_rank_1(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_outofplace_batched_rank_1 = rocsolver_cgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_zgetri_outofplace_batched_full_rank(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_outofplace_batched_full_rank = rocsolver_zgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_zgetri_outofplace_batched_rank_0(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_outofplace_batched_rank_0 = rocsolver_zgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_zgetri_outofplace_batched_rank_1(handle,n,A,lda,ipiv,strideP,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_outofplace_batched_rank_1 = rocsolver_zgetri_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(ipiv),strideP,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_sgetri_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_outofplace_strided_batched_full_rank = rocsolver_sgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_sgetri_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_outofplace_strided_batched_rank_0 = rocsolver_sgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_sgetri_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_outofplace_strided_batched_rank_1 = rocsolver_sgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_dgetri_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_outofplace_strided_batched_full_rank = rocsolver_dgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_dgetri_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_outofplace_strided_batched_rank_0 = rocsolver_dgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_dgetri_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_outofplace_strided_batched_rank_1 = rocsolver_dgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_cgetri_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_outofplace_strided_batched_full_rank = rocsolver_cgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_cgetri_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_outofplace_strided_batched_rank_0 = rocsolver_cgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_cgetri_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_outofplace_strided_batched_rank_1 = rocsolver_cgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_zgetri_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_outofplace_strided_batched_full_rank = rocsolver_zgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_zgetri_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_outofplace_strided_batched_rank_0 = rocsolver_zgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_zgetri_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,ipiv,strideP,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_outofplace_strided_batched_rank_1 = rocsolver_zgetri_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_sgetri_npvt_outofplace_full_rank(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sgetri_npvt_outofplace_full_rank = rocsolver_sgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_sgetri_npvt_outofplace_rank_0(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sgetri_npvt_outofplace_rank_0 = rocsolver_sgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_sgetri_npvt_outofplace_rank_1(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_sgetri_npvt_outofplace_rank_1 = rocsolver_sgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_dgetri_npvt_outofplace_full_rank(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dgetri_npvt_outofplace_full_rank = rocsolver_dgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_dgetri_npvt_outofplace_rank_0(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dgetri_npvt_outofplace_rank_0 = rocsolver_dgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_dgetri_npvt_outofplace_rank_1(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_dgetri_npvt_outofplace_rank_1 = rocsolver_dgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_cgetri_npvt_outofplace_full_rank(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cgetri_npvt_outofplace_full_rank = rocsolver_cgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_cgetri_npvt_outofplace_rank_0(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cgetri_npvt_outofplace_rank_0 = rocsolver_cgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_cgetri_npvt_outofplace_rank_1(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_cgetri_npvt_outofplace_rank_1 = rocsolver_cgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_zgetri_npvt_outofplace_full_rank(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zgetri_npvt_outofplace_full_rank = rocsolver_zgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_zgetri_npvt_outofplace_rank_0(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zgetri_npvt_outofplace_rank_0 = rocsolver_zgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_zgetri_npvt_outofplace_rank_1(handle,n,A,lda,C,ldc,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo ! rocsolver_zgetri_npvt_outofplace_rank_1 = rocsolver_zgetri_npvt_outofplace_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo) end function function rocsolver_sgetri_npvt_outofplace_batched_full_rank(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_outofplace_batched_full_rank = rocsolver_sgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_sgetri_npvt_outofplace_batched_rank_0(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_outofplace_batched_rank_0 = rocsolver_sgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_sgetri_npvt_outofplace_batched_rank_1(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_outofplace_batched_rank_1 = rocsolver_sgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_dgetri_npvt_outofplace_batched_full_rank(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_outofplace_batched_full_rank = rocsolver_dgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_dgetri_npvt_outofplace_batched_rank_0(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_outofplace_batched_rank_0 = rocsolver_dgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_dgetri_npvt_outofplace_batched_rank_1(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_outofplace_batched_rank_1 = rocsolver_dgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_cgetri_npvt_outofplace_batched_full_rank(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_outofplace_batched_full_rank = rocsolver_cgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_cgetri_npvt_outofplace_batched_rank_0(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_outofplace_batched_rank_0 = rocsolver_cgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_cgetri_npvt_outofplace_batched_rank_1(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_outofplace_batched_rank_1 = rocsolver_cgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_zgetri_npvt_outofplace_batched_full_rank(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_outofplace_batched_full_rank = rocsolver_zgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_zgetri_npvt_outofplace_batched_rank_0(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_outofplace_batched_rank_0 = rocsolver_zgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_zgetri_npvt_outofplace_batched_rank_1(handle,n,A,lda,C,ldc,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_outofplace_batched_rank_1 = rocsolver_zgetri_npvt_outofplace_batched_(handle,n,c_loc(A),lda,c_loc(C),ldc,myInfo,batch_count) end function function rocsolver_sgetri_npvt_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_outofplace_strided_batched_full_rank = rocsolver_sgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_sgetri_npvt_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_outofplace_strided_batched_rank_0 = rocsolver_sgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_sgetri_npvt_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_sgetri_npvt_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_sgetri_npvt_outofplace_strided_batched_rank_1 = rocsolver_sgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_dgetri_npvt_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_outofplace_strided_batched_full_rank = rocsolver_dgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_dgetri_npvt_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_outofplace_strided_batched_rank_0 = rocsolver_dgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_dgetri_npvt_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dgetri_npvt_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dgetri_npvt_outofplace_strided_batched_rank_1 = rocsolver_dgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_cgetri_npvt_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_outofplace_strided_batched_full_rank = rocsolver_cgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_cgetri_npvt_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_outofplace_strided_batched_rank_0 = rocsolver_cgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_cgetri_npvt_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_cgetri_npvt_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_cgetri_npvt_outofplace_strided_batched_rank_1 = rocsolver_cgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_zgetri_npvt_outofplace_strided_batched_full_rank(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_strided_batched_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_outofplace_strided_batched_full_rank = rocsolver_zgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_zgetri_npvt_outofplace_strided_batched_rank_0(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_strided_batched_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_outofplace_strided_batched_rank_0 = rocsolver_zgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_zgetri_npvt_outofplace_strided_batched_rank_1(handle,n,A,lda,strideA,C,ldc,strideC,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zgetri_npvt_outofplace_strided_batched_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int64_t) :: strideC integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zgetri_npvt_outofplace_strided_batched_rank_1 = rocsolver_zgetri_npvt_outofplace_strided_batched_(handle,n,c_loc(A),lda,strideA,c_loc(C),ldc,strideC,myInfo,batch_count) end function function rocsolver_strtri_full_rank(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_strtri_full_rank = rocsolver_strtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_strtri_rank_0(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_strtri_rank_0 = rocsolver_strtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_strtri_rank_1(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_strtri_rank_1 = rocsolver_strtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_dtrtri_full_rank(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dtrtri_full_rank = rocsolver_dtrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_dtrtri_rank_0(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dtrtri_rank_0 = rocsolver_dtrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_dtrtri_rank_1(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_dtrtri_rank_1 = rocsolver_dtrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_ctrtri_full_rank(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_ctrtri_full_rank = rocsolver_ctrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_ctrtri_rank_0(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_ctrtri_rank_0 = rocsolver_ctrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_ctrtri_rank_1(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_ctrtri_rank_1 = rocsolver_ctrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_ztrtri_full_rank(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_ztrtri_full_rank = rocsolver_ztrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_ztrtri_rank_0(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_ztrtri_rank_0 = rocsolver_ztrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_ztrtri_rank_1(handle,uplo,diag,n,A,lda,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo ! rocsolver_ztrtri_rank_1 = rocsolver_ztrtri_(handle,uplo,diag,n,c_loc(A),lda,myInfo) end function function rocsolver_strtri_batched_full_rank(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_strtri_batched_full_rank = rocsolver_strtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_strtri_batched_rank_0(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_strtri_batched_rank_0 = rocsolver_strtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_strtri_batched_rank_1(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_strtri_batched_rank_1 = rocsolver_strtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dtrtri_batched_full_rank(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dtrtri_batched_full_rank = rocsolver_dtrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dtrtri_batched_rank_0(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dtrtri_batched_rank_0 = rocsolver_dtrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_dtrtri_batched_rank_1(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dtrtri_batched_rank_1 = rocsolver_dtrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_ctrtri_batched_full_rank(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ctrtri_batched_full_rank = rocsolver_ctrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_ctrtri_batched_rank_0(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ctrtri_batched_rank_0 = rocsolver_ctrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_ctrtri_batched_rank_1(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ctrtri_batched_rank_1 = rocsolver_ctrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_ztrtri_batched_full_rank(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ztrtri_batched_full_rank = rocsolver_ztrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_ztrtri_batched_rank_0(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ztrtri_batched_rank_0 = rocsolver_ztrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_ztrtri_batched_rank_1(handle,uplo,diag,n,A,lda,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ztrtri_batched_rank_1 = rocsolver_ztrtri_batched_(handle,uplo,diag,n,c_loc(A),lda,myInfo,batch_count) end function function rocsolver_strtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_strtri_strided_batched_full_rank = rocsolver_strtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_strtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_strtri_strided_batched_rank_0 = rocsolver_strtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_strtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_strtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_strtri_strided_batched_rank_1 = rocsolver_strtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dtrtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dtrtri_strided_batched_full_rank = rocsolver_dtrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dtrtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dtrtri_strided_batched_rank_0 = rocsolver_dtrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_dtrtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dtrtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dtrtri_strided_batched_rank_1 = rocsolver_dtrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ctrtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ctrtri_strided_batched_full_rank = rocsolver_ctrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ctrtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ctrtri_strided_batched_rank_0 = rocsolver_ctrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ctrtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ctrtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ctrtri_strided_batched_rank_1 = rocsolver_ctrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ztrtri_strided_batched_full_rank(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ztrtri_strided_batched_full_rank = rocsolver_ztrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ztrtri_strided_batched_rank_0(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ztrtri_strided_batched_rank_0 = rocsolver_ztrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ztrtri_strided_batched_rank_1(handle,uplo,diag,n,A,lda,strideA,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ztrtri_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(kind(rocblas_diagonal_non_unit)) :: diag integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ztrtri_strided_batched_rank_1 = rocsolver_ztrtri_strided_batched_(handle,uplo,diag,n,c_loc(A),lda,strideA,myInfo,batch_count) end function function rocsolver_ssytf2_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_ssytf2_full_rank = rocsolver_ssytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_ssytf2_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_ssytf2_rank_0 = rocsolver_ssytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_ssytf2_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_ssytf2_rank_1 = rocsolver_ssytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dsytf2_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dsytf2_full_rank = rocsolver_dsytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dsytf2_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_dsytf2_rank_0 = rocsolver_dsytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dsytf2_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dsytf2_rank_1 = rocsolver_dsytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_csytf2_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_csytf2_full_rank = rocsolver_csytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_csytf2_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_csytf2_rank_0 = rocsolver_csytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_csytf2_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_csytf2_rank_1 = rocsolver_csytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zsytf2_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zsytf2_full_rank = rocsolver_zsytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zsytf2_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_zsytf2_rank_0 = rocsolver_zsytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zsytf2_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zsytf2_rank_1 = rocsolver_zsytf2_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_ssytf2_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytf2_batched_full_rank = rocsolver_ssytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytf2_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytf2_batched_rank_0 = rocsolver_ssytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytf2_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytf2_batched_rank_1 = rocsolver_ssytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytf2_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytf2_batched_full_rank = rocsolver_dsytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytf2_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytf2_batched_rank_0 = rocsolver_dsytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytf2_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytf2_batched_rank_1 = rocsolver_dsytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytf2_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytf2_batched_full_rank = rocsolver_csytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytf2_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytf2_batched_rank_0 = rocsolver_csytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytf2_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytf2_batched_rank_1 = rocsolver_csytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytf2_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytf2_batched_full_rank = rocsolver_zsytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytf2_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytf2_batched_rank_0 = rocsolver_zsytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytf2_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytf2_batched_rank_1 = rocsolver_zsytf2_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytf2_strided_batched_full_rank = rocsolver_ssytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytf2_strided_batched_rank_0 = rocsolver_ssytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytf2_strided_batched_rank_1 = rocsolver_ssytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytf2_strided_batched_full_rank = rocsolver_dsytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytf2_strided_batched_rank_0 = rocsolver_dsytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytf2_strided_batched_rank_1 = rocsolver_dsytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytf2_strided_batched_full_rank = rocsolver_csytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytf2_strided_batched_rank_0 = rocsolver_csytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytf2_strided_batched_rank_1 = rocsolver_csytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytf2_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytf2_strided_batched_full_rank = rocsolver_zsytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytf2_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytf2_strided_batched_rank_0 = rocsolver_zsytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytf2_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytf2_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytf2_strided_batched_rank_1 = rocsolver_zsytf2_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytrf_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_ssytrf_full_rank = rocsolver_ssytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_ssytrf_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_ssytrf_rank_0 = rocsolver_ssytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_ssytrf_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_ssytrf_rank_1 = rocsolver_ssytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dsytrf_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dsytrf_full_rank = rocsolver_dsytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dsytrf_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_dsytrf_rank_0 = rocsolver_dsytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_dsytrf_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_dsytrf_rank_1 = rocsolver_dsytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_csytrf_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_csytrf_full_rank = rocsolver_csytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_csytrf_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_csytrf_rank_0 = rocsolver_csytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_csytrf_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_csytrf_rank_1 = rocsolver_csytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zsytrf_full_rank(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zsytrf_full_rank = rocsolver_zsytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zsytrf_rank_0(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int) :: myInfo ! rocsolver_zsytrf_rank_0 = rocsolver_zsytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_zsytrf_rank_1(handle,uplo,n,A,lda,ipiv,myInfo) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int) :: myInfo ! rocsolver_zsytrf_rank_1 = rocsolver_zsytrf_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),myInfo) end function function rocsolver_ssytrf_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytrf_batched_full_rank = rocsolver_ssytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytrf_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytrf_batched_rank_0 = rocsolver_ssytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytrf_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytrf_batched_rank_1 = rocsolver_ssytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytrf_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytrf_batched_full_rank = rocsolver_dsytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytrf_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytrf_batched_rank_0 = rocsolver_dsytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytrf_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytrf_batched_rank_1 = rocsolver_dsytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytrf_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytrf_batched_full_rank = rocsolver_csytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytrf_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytrf_batched_rank_0 = rocsolver_csytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytrf_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytrf_batched_rank_1 = rocsolver_csytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytrf_batched_full_rank(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytrf_batched_full_rank = rocsolver_zsytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytrf_batched_rank_0(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytrf_batched_rank_0 = rocsolver_zsytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytrf_batched_rank_1(handle,uplo,n,A,lda,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytrf_batched_rank_1 = rocsolver_zsytrf_batched_(handle,uplo,n,c_loc(A),lda,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytrf_strided_batched_full_rank = rocsolver_ssytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytrf_strided_batched_rank_0 = rocsolver_ssytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_ssytrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_ssytrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_ssytrf_strided_batched_rank_1 = rocsolver_ssytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytrf_strided_batched_full_rank = rocsolver_dsytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytrf_strided_batched_rank_0 = rocsolver_dsytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_dsytrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_dsytrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_dsytrf_strided_batched_rank_1 = rocsolver_dsytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytrf_strided_batched_full_rank = rocsolver_csytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytrf_strided_batched_rank_0 = rocsolver_csytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_csytrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_csytrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_csytrf_strided_batched_rank_1 = rocsolver_csytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytrf_strided_batched_full_rank(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_strided_batched_full_rank type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytrf_strided_batched_full_rank = rocsolver_zsytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytrf_strided_batched_rank_0(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_strided_batched_rank_0 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytrf_strided_batched_rank_0 = rocsolver_zsytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function function rocsolver_zsytrf_strided_batched_rank_1(handle,uplo,n,A,lda,strideA,ipiv,strideP,myInfo,batch_count) use iso_c_binding use hipfort_rocsolver_enums use hipfort_rocblas_enums implicit none integer(kind(rocblas_status_success)) :: rocsolver_zsytrf_strided_batched_rank_1 type(c_ptr) :: handle integer(kind(rocblas_fill_upper)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int64_t) :: strideA integer(c_int),target,dimension(:) :: ipiv integer(c_int64_t) :: strideP integer(c_int) :: myInfo integer(c_int) :: batch_count ! rocsolver_zsytrf_strided_batched_rank_1 = rocsolver_zsytrf_strided_batched_(handle,uplo,n,c_loc(A),lda,strideA,c_loc(ipiv),strideP,myInfo,batch_count) end function #endif end module hipfort_rocsolver hipfort-7.2.4/lib/hipfort/hipfort_hiprand_enums.F900000664000175000017500000000606215207260635022465 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hiprand_enums implicit none enum, bind(c) enumerator :: HIPRAND_STATUS_SUCCESS = 0 enumerator :: HIPRAND_STATUS_VERSION_MISMATCH = 100 enumerator :: HIPRAND_STATUS_NOT_INITIALIZED = 101 enumerator :: HIPRAND_STATUS_ALLOCATION_FAILED = 102 enumerator :: HIPRAND_STATUS_TYPE_ERROR = 103 enumerator :: HIPRAND_STATUS_OUT_OF_RANGE = 104 enumerator :: HIPRAND_STATUS_LENGTH_NOT_MULTIPLE = 105 enumerator :: HIPRAND_STATUS_DOUBLE_PRECISION_REQUIRED = 106 enumerator :: HIPRAND_STATUS_LAUNCH_FAILURE = 201 enumerator :: HIPRAND_STATUS_PREEXISTING_FAILURE = 202 enumerator :: HIPRAND_STATUS_INITIALIZATION_FAILED = 203 enumerator :: HIPRAND_STATUS_ARCH_MISMATCH = 204 enumerator :: HIPRAND_STATUS_INTERNAL_ERROR = 999 enumerator :: HIPRAND_STATUS_NOT_IMPLEMENTED = 1000 end enum enum, bind(c) enumerator :: HIPRAND_RNG_TEST = 0 enumerator :: HIPRAND_RNG_PSEUDO_DEFAULT = 400 enumerator :: HIPRAND_RNG_PSEUDO_XORWOW = 401 enumerator :: HIPRAND_RNG_PSEUDO_MRG32K3A = 402 enumerator :: HIPRAND_RNG_PSEUDO_MTGP32 = 403 enumerator :: HIPRAND_RNG_PSEUDO_MT19937 = 404 enumerator :: HIPRAND_RNG_PSEUDO_PHILOX4_32_10 = 405 enumerator :: HIPRAND_RNG_QUASI_DEFAULT = 500 enumerator :: HIPRAND_RNG_QUASI_SOBOL32 = 501 enumerator :: HIPRAND_RNG_QUASI_SCRAMBLED_SOBOL32 = 502 enumerator :: HIPRAND_RNG_QUASI_SOBOL64 = 503 enumerator :: HIPRAND_RNG_QUASI_SCRAMBLED_SOBOL64 = 504 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_hiprand_enumshipfort-7.2.4/lib/hipfort/hipfort_hipsolver.F900000664000175000017500000211742015207260635021647 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipsolver use hipfort_hipsolver_enums implicit none interface hipsolverCreate #ifdef USE_CUDA_NAMES function hipsolverCreate_(handle) bind(c, name="cusolverCreate") #else function hipsolverCreate_(handle) bind(c, name="hipsolverCreate") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCreate_ type(c_ptr) :: handle end function end interface interface hipsolverDnCreate #ifdef USE_CUDA_NAMES function hipsolverDnCreate_(handle) bind(c, name="cusolverDnCreate") #else function hipsolverDnCreate_(handle) bind(c, name="hipsolverDnCreate") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnCreate_ type(c_ptr) :: handle end function end interface interface hipsolverDestroy #ifdef USE_CUDA_NAMES function hipsolverDestroy_(handle) bind(c, name="cusolverDestroy") #else function hipsolverDestroy_(handle) bind(c, name="hipsolverDestroy") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDestroy_ type(c_ptr),value :: handle end function end interface interface hipsolverDnDestroy #ifdef USE_CUDA_NAMES function hipsolverDnDestroy_(handle) bind(c, name="cusolverDnDestroy") #else function hipsolverDnDestroy_(handle) bind(c, name="hipsolverDnDestroy") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnDestroy_ type(c_ptr),value :: handle end function end interface interface hipsolverSetStream #ifdef USE_CUDA_NAMES function hipsolverSetStream_(handle,streamId) bind(c, name="cusolverSetStream") #else function hipsolverSetStream_(handle,streamId) bind(c, name="hipsolverSetStream") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSetStream_ type(c_ptr),value :: handle type(c_ptr),value :: streamId end function end interface interface hipsolverDnSetStream #ifdef USE_CUDA_NAMES function hipsolverDnSetStream_(handle,streamId) bind(c, name="cusolverDnSetStream") #else function hipsolverDnSetStream_(handle,streamId) bind(c, name="hipsolverDnSetStream") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnSetStream_ type(c_ptr),value :: handle type(c_ptr),value :: streamId end function end interface interface hipsolverGetStream #ifdef USE_CUDA_NAMES function hipsolverGetStream_(handle,streamId) bind(c, name="cusolverGetStream") #else function hipsolverGetStream_(handle,streamId) bind(c, name="hipsolverGetStream") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverGetStream_ type(c_ptr),value :: handle type(c_ptr) :: streamId end function end interface interface hipsolverDnGetStream #ifdef USE_CUDA_NAMES function hipsolverDnGetStream_(handle,streamId) bind(c, name="cusolverDnGetStream") #else function hipsolverDnGetStream_(handle,streamId) bind(c, name="hipsolverDnGetStream") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnGetStream_ type(c_ptr),value :: handle type(c_ptr) :: streamId end function end interface interface hipsolverSetDeterministicMode #ifdef USE_CUDA_NAMES function hipsolverSetDeterministicMode_(handle,mode) bind(c, name="cusolverSetDeterministicMode") #else function hipsolverSetDeterministicMode_(handle,mode) bind(c, name="hipsolverSetDeterministicMode") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSetDeterministicMode_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_DETERMINISTIC_RESULTS)),value :: mode end function end interface interface hipsolverGetDeterministicMode #ifdef USE_CUDA_NAMES function hipsolverGetDeterministicMode_(handle,mode) bind(c, name="cusolverGetDeterministicMode") #else function hipsolverGetDeterministicMode_(handle,mode) bind(c, name="hipsolverGetDeterministicMode") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverGetDeterministicMode_ type(c_ptr),value :: handle type(c_ptr),value :: mode end function end interface interface hipsolverSorgbr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSorgbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverSorgbr_bufferSize") #else function hipsolverSorgbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverSorgbr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSorgbr_bufferSize_full_rank,& hipsolverSorgbr_bufferSize_rank_0,& hipsolverSorgbr_bufferSize_rank_1 #endif end interface interface hipsolverDorgbr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDorgbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverDorgbr_bufferSize") #else function hipsolverDorgbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverDorgbr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDorgbr_bufferSize_full_rank,& hipsolverDorgbr_bufferSize_rank_0,& hipsolverDorgbr_bufferSize_rank_1 #endif end interface interface hipsolverCungbr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCungbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverCungbr_bufferSize") #else function hipsolverCungbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverCungbr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCungbr_bufferSize_full_rank,& hipsolverCungbr_bufferSize_rank_0,& hipsolverCungbr_bufferSize_rank_1 #endif end interface interface hipsolverZungbr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZungbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverZungbr_bufferSize") #else function hipsolverZungbr_bufferSize_(handle,side,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverZungbr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZungbr_bufferSize_full_rank,& hipsolverZungbr_bufferSize_rank_0,& hipsolverZungbr_bufferSize_rank_1 #endif end interface interface hipsolverSorgbr #ifdef USE_CUDA_NAMES function hipsolverSorgbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverSorgbr") #else function hipsolverSorgbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverSorgbr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSorgbr_full_rank,& hipsolverSorgbr_rank_0,& hipsolverSorgbr_rank_1 #endif end interface interface hipsolverDorgbr #ifdef USE_CUDA_NAMES function hipsolverDorgbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverDorgbr") #else function hipsolverDorgbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverDorgbr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDorgbr_full_rank,& hipsolverDorgbr_rank_0,& hipsolverDorgbr_rank_1 #endif end interface interface hipsolverCungbr #ifdef USE_CUDA_NAMES function hipsolverCungbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverCungbr") #else function hipsolverCungbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverCungbr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCungbr_full_rank,& hipsolverCungbr_rank_0,& hipsolverCungbr_rank_1 #endif end interface interface hipsolverZungbr #ifdef USE_CUDA_NAMES function hipsolverZungbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverZungbr") #else function hipsolverZungbr_(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverZungbr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZungbr_full_rank,& hipsolverZungbr_rank_0,& hipsolverZungbr_rank_1 #endif end interface interface hipsolverSorgqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSorgqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverSorgqr_bufferSize") #else function hipsolverSorgqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverSorgqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSorgqr_bufferSize_full_rank,& hipsolverSorgqr_bufferSize_rank_0,& hipsolverSorgqr_bufferSize_rank_1 #endif end interface interface hipsolverDorgqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDorgqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverDorgqr_bufferSize") #else function hipsolverDorgqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverDorgqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDorgqr_bufferSize_full_rank,& hipsolverDorgqr_bufferSize_rank_0,& hipsolverDorgqr_bufferSize_rank_1 #endif end interface interface hipsolverCungqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCungqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverCungqr_bufferSize") #else function hipsolverCungqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverCungqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCungqr_bufferSize_full_rank,& hipsolverCungqr_bufferSize_rank_0,& hipsolverCungqr_bufferSize_rank_1 #endif end interface interface hipsolverZungqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZungqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="cusolverZungqr_bufferSize") #else function hipsolverZungqr_bufferSize_(handle,m,n,k,A,lda,tau,lwork) bind(c, name="hipsolverZungqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZungqr_bufferSize_full_rank,& hipsolverZungqr_bufferSize_rank_0,& hipsolverZungqr_bufferSize_rank_1 #endif end interface interface hipsolverSorgqr #ifdef USE_CUDA_NAMES function hipsolverSorgqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverSorgqr") #else function hipsolverSorgqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverSorgqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSorgqr_full_rank,& hipsolverSorgqr_rank_0,& hipsolverSorgqr_rank_1 #endif end interface interface hipsolverDorgqr #ifdef USE_CUDA_NAMES function hipsolverDorgqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverDorgqr") #else function hipsolverDorgqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverDorgqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDorgqr_full_rank,& hipsolverDorgqr_rank_0,& hipsolverDorgqr_rank_1 #endif end interface interface hipsolverCungqr #ifdef USE_CUDA_NAMES function hipsolverCungqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverCungqr") #else function hipsolverCungqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverCungqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCungqr_full_rank,& hipsolverCungqr_rank_0,& hipsolverCungqr_rank_1 #endif end interface interface hipsolverZungqr #ifdef USE_CUDA_NAMES function hipsolverZungqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverZungqr") #else function hipsolverZungqr_(handle,m,n,k,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverZungqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZungqr_full_rank,& hipsolverZungqr_rank_0,& hipsolverZungqr_rank_1 #endif end interface interface hipsolverSorgtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSorgtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="cusolverSorgtr_bufferSize") #else function hipsolverSorgtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="hipsolverSorgtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSorgtr_bufferSize_full_rank,& hipsolverSorgtr_bufferSize_rank_0,& hipsolverSorgtr_bufferSize_rank_1 #endif end interface interface hipsolverDorgtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDorgtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="cusolverDorgtr_bufferSize") #else function hipsolverDorgtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="hipsolverDorgtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDorgtr_bufferSize_full_rank,& hipsolverDorgtr_bufferSize_rank_0,& hipsolverDorgtr_bufferSize_rank_1 #endif end interface interface hipsolverCungtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCungtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="cusolverCungtr_bufferSize") #else function hipsolverCungtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="hipsolverCungtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCungtr_bufferSize_full_rank,& hipsolverCungtr_bufferSize_rank_0,& hipsolverCungtr_bufferSize_rank_1 #endif end interface interface hipsolverZungtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZungtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="cusolverZungtr_bufferSize") #else function hipsolverZungtr_bufferSize_(handle,uplo,n,A,lda,tau,lwork) bind(c, name="hipsolverZungtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZungtr_bufferSize_full_rank,& hipsolverZungtr_bufferSize_rank_0,& hipsolverZungtr_bufferSize_rank_1 #endif end interface interface hipsolverSorgtr #ifdef USE_CUDA_NAMES function hipsolverSorgtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverSorgtr") #else function hipsolverSorgtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverSorgtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSorgtr_full_rank,& hipsolverSorgtr_rank_0,& hipsolverSorgtr_rank_1 #endif end interface interface hipsolverDorgtr #ifdef USE_CUDA_NAMES function hipsolverDorgtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverDorgtr") #else function hipsolverDorgtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverDorgtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDorgtr_full_rank,& hipsolverDorgtr_rank_0,& hipsolverDorgtr_rank_1 #endif end interface interface hipsolverCungtr #ifdef USE_CUDA_NAMES function hipsolverCungtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverCungtr") #else function hipsolverCungtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverCungtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCungtr_full_rank,& hipsolverCungtr_rank_0,& hipsolverCungtr_rank_1 #endif end interface interface hipsolverZungtr #ifdef USE_CUDA_NAMES function hipsolverZungtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverZungtr") #else function hipsolverZungtr_(handle,uplo,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverZungtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZungtr_full_rank,& hipsolverZungtr_rank_0,& hipsolverZungtr_rank_1 #endif end interface interface hipsolverSormqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSormqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverSormqr_bufferSize") #else function hipsolverSormqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverSormqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSormqr_bufferSize_full_rank,& hipsolverSormqr_bufferSize_rank_0,& hipsolverSormqr_bufferSize_rank_1 #endif end interface interface hipsolverDormqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDormqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverDormqr_bufferSize") #else function hipsolverDormqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverDormqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDormqr_bufferSize_full_rank,& hipsolverDormqr_bufferSize_rank_0,& hipsolverDormqr_bufferSize_rank_1 #endif end interface interface hipsolverCunmqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCunmqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverCunmqr_bufferSize") #else function hipsolverCunmqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverCunmqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCunmqr_bufferSize_full_rank,& hipsolverCunmqr_bufferSize_rank_0,& hipsolverCunmqr_bufferSize_rank_1 #endif end interface interface hipsolverZunmqr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZunmqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverZunmqr_bufferSize") #else function hipsolverZunmqr_bufferSize_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverZunmqr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZunmqr_bufferSize_full_rank,& hipsolverZunmqr_bufferSize_rank_0,& hipsolverZunmqr_bufferSize_rank_1 #endif end interface interface hipsolverSormqr #ifdef USE_CUDA_NAMES function hipsolverSormqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverSormqr") #else function hipsolverSormqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverSormqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSormqr_full_rank,& hipsolverSormqr_rank_0,& hipsolverSormqr_rank_1 #endif end interface interface hipsolverDormqr #ifdef USE_CUDA_NAMES function hipsolverDormqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverDormqr") #else function hipsolverDormqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverDormqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDormqr_full_rank,& hipsolverDormqr_rank_0,& hipsolverDormqr_rank_1 #endif end interface interface hipsolverCunmqr #ifdef USE_CUDA_NAMES function hipsolverCunmqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverCunmqr") #else function hipsolverCunmqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverCunmqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCunmqr_full_rank,& hipsolverCunmqr_rank_0,& hipsolverCunmqr_rank_1 #endif end interface interface hipsolverZunmqr #ifdef USE_CUDA_NAMES function hipsolverZunmqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverZunmqr") #else function hipsolverZunmqr_(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverZunmqr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZunmqr_full_rank,& hipsolverZunmqr_rank_0,& hipsolverZunmqr_rank_1 #endif end interface interface hipsolverSormtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSormtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverSormtr_bufferSize") #else function hipsolverSormtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverSormtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSormtr_bufferSize_full_rank,& hipsolverSormtr_bufferSize_rank_0,& hipsolverSormtr_bufferSize_rank_1 #endif end interface interface hipsolverDormtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDormtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverDormtr_bufferSize") #else function hipsolverDormtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverDormtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDormtr_bufferSize_full_rank,& hipsolverDormtr_bufferSize_rank_0,& hipsolverDormtr_bufferSize_rank_1 #endif end interface interface hipsolverCunmtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCunmtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverCunmtr_bufferSize") #else function hipsolverCunmtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverCunmtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCunmtr_bufferSize_full_rank,& hipsolverCunmtr_bufferSize_rank_0,& hipsolverCunmtr_bufferSize_rank_1 #endif end interface interface hipsolverZunmtr_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZunmtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="cusolverZunmtr_bufferSize") #else function hipsolverZunmtr_bufferSize_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) bind(c, name="hipsolverZunmtr_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZunmtr_bufferSize_full_rank,& hipsolverZunmtr_bufferSize_rank_0,& hipsolverZunmtr_bufferSize_rank_1 #endif end interface interface hipsolverSormtr #ifdef USE_CUDA_NAMES function hipsolverSormtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverSormtr") #else function hipsolverSormtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverSormtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSormtr_full_rank,& hipsolverSormtr_rank_0,& hipsolverSormtr_rank_1 #endif end interface interface hipsolverDormtr #ifdef USE_CUDA_NAMES function hipsolverDormtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverDormtr") #else function hipsolverDormtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverDormtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDormtr_full_rank,& hipsolverDormtr_rank_0,& hipsolverDormtr_rank_1 #endif end interface interface hipsolverCunmtr #ifdef USE_CUDA_NAMES function hipsolverCunmtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverCunmtr") #else function hipsolverCunmtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverCunmtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCunmtr_full_rank,& hipsolverCunmtr_rank_0,& hipsolverCunmtr_rank_1 #endif end interface interface hipsolverZunmtr #ifdef USE_CUDA_NAMES function hipsolverZunmtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="cusolverZunmtr") #else function hipsolverZunmtr_(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) bind(c, name="hipsolverZunmtr") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_SIDE_LEFT)),value :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: C integer(c_int),value :: ldc type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZunmtr_full_rank,& hipsolverZunmtr_rank_0,& hipsolverZunmtr_rank_1 #endif end interface interface hipsolverSgebrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="cusolverSgebrd_bufferSize") #else function hipsolverSgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="hipsolverSgebrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgebrd_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int) :: lwork end function end interface interface hipsolverDgebrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="cusolverDgebrd_bufferSize") #else function hipsolverDgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="hipsolverDgebrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgebrd_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int) :: lwork end function end interface interface hipsolverCgebrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="cusolverCgebrd_bufferSize") #else function hipsolverCgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="hipsolverCgebrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgebrd_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int) :: lwork end function end interface interface hipsolverZgebrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="cusolverZgebrd_bufferSize") #else function hipsolverZgebrd_bufferSize_(handle,m,n,lwork) bind(c, name="hipsolverZgebrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgebrd_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n integer(c_int) :: lwork end function end interface interface hipsolverSgebrd #ifdef USE_CUDA_NAMES function hipsolverSgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="cusolverSgebrd") #else function hipsolverSgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="hipsolverSgebrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgebrd_full_rank,& hipsolverSgebrd_rank_0,& hipsolverSgebrd_rank_1 #endif end interface interface hipsolverDgebrd #ifdef USE_CUDA_NAMES function hipsolverDgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="cusolverDgebrd") #else function hipsolverDgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="hipsolverDgebrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgebrd_full_rank,& hipsolverDgebrd_rank_0,& hipsolverDgebrd_rank_1 #endif end interface interface hipsolverCgebrd #ifdef USE_CUDA_NAMES function hipsolverCgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="cusolverCgebrd") #else function hipsolverCgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="hipsolverCgebrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgebrd_full_rank,& hipsolverCgebrd_rank_0,& hipsolverCgebrd_rank_1 #endif end interface interface hipsolverZgebrd #ifdef USE_CUDA_NAMES function hipsolverZgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="cusolverZgebrd") #else function hipsolverZgebrd_(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) bind(c, name="hipsolverZgebrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgebrd_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E type(c_ptr),value :: tauq type(c_ptr),value :: taup type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgebrd_full_rank,& hipsolverZgebrd_rank_0,& hipsolverZgebrd_rank_1 #endif end interface interface hipsolverSgeqrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverSgeqrf_bufferSize") #else function hipsolverSgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverSgeqrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgeqrf_bufferSize_full_rank,& hipsolverSgeqrf_bufferSize_rank_0,& hipsolverSgeqrf_bufferSize_rank_1 #endif end interface interface hipsolverDgeqrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverDgeqrf_bufferSize") #else function hipsolverDgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverDgeqrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgeqrf_bufferSize_full_rank,& hipsolverDgeqrf_bufferSize_rank_0,& hipsolverDgeqrf_bufferSize_rank_1 #endif end interface interface hipsolverCgeqrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverCgeqrf_bufferSize") #else function hipsolverCgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverCgeqrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgeqrf_bufferSize_full_rank,& hipsolverCgeqrf_bufferSize_rank_0,& hipsolverCgeqrf_bufferSize_rank_1 #endif end interface interface hipsolverZgeqrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverZgeqrf_bufferSize") #else function hipsolverZgeqrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverZgeqrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgeqrf_bufferSize_full_rank,& hipsolverZgeqrf_bufferSize_rank_0,& hipsolverZgeqrf_bufferSize_rank_1 #endif end interface interface hipsolverSgeqrf #ifdef USE_CUDA_NAMES function hipsolverSgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverSgeqrf") #else function hipsolverSgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverSgeqrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgeqrf_full_rank,& hipsolverSgeqrf_rank_0,& hipsolverSgeqrf_rank_1 #endif end interface interface hipsolverDgeqrf #ifdef USE_CUDA_NAMES function hipsolverDgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverDgeqrf") #else function hipsolverDgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverDgeqrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgeqrf_full_rank,& hipsolverDgeqrf_rank_0,& hipsolverDgeqrf_rank_1 #endif end interface interface hipsolverCgeqrf #ifdef USE_CUDA_NAMES function hipsolverCgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverCgeqrf") #else function hipsolverCgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverCgeqrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_float_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgeqrf_full_rank,& hipsolverCgeqrf_rank_0,& hipsolverCgeqrf_rank_1 #endif end interface interface hipsolverZgeqrf #ifdef USE_CUDA_NAMES function hipsolverZgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="cusolverZgeqrf") #else function hipsolverZgeqrf_(handle,m,n,A,lda,tau,work,lwork,devInfo) bind(c, name="hipsolverZgeqrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda complex(c_double_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgeqrf_full_rank,& hipsolverZgeqrf_rank_0,& hipsolverZgeqrf_rank_1 #endif end interface interface hipsolverSSgesv_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSSgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="cusolverSSgesv_bufferSize") #else function hipsolverSSgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="hipsolverSSgesv_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(c_size_t) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSSgesv_bufferSize_full_rank,& hipsolverSSgesv_bufferSize_rank_0,& hipsolverSSgesv_bufferSize_rank_1 #endif end interface interface hipsolverDDgesv_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDDgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="cusolverDDgesv_bufferSize") #else function hipsolverDDgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="hipsolverDDgesv_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(c_size_t) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDDgesv_bufferSize_full_rank,& hipsolverDDgesv_bufferSize_rank_0,& hipsolverDDgesv_bufferSize_rank_1 #endif end interface interface hipsolverCCgesv_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCCgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="cusolverCCgesv_bufferSize") #else function hipsolverCCgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="hipsolverCCgesv_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(c_size_t) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCCgesv_bufferSize_full_rank,& hipsolverCCgesv_bufferSize_rank_0,& hipsolverCCgesv_bufferSize_rank_1 #endif end interface interface hipsolverZZgesv_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZZgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="cusolverZZgesv_bufferSize") #else function hipsolverZZgesv_bufferSize_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) bind(c, name="hipsolverZZgesv_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(c_size_t) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZZgesv_bufferSize_full_rank,& hipsolverZZgesv_bufferSize_rank_0,& hipsolverZZgesv_bufferSize_rank_1 #endif end interface interface hipsolverSSgesv #ifdef USE_CUDA_NAMES function hipsolverSSgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="cusolverSSgesv") #else function hipsolverSSgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="hipsolverSSgesv") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: work integer(c_size_t),value :: lwork type(c_ptr),value :: niters integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSSgesv_full_rank,& hipsolverSSgesv_rank_0,& hipsolverSSgesv_rank_1 #endif end interface interface hipsolverDDgesv #ifdef USE_CUDA_NAMES function hipsolverDDgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="cusolverDDgesv") #else function hipsolverDDgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="hipsolverDDgesv") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: work integer(c_size_t),value :: lwork type(c_ptr),value :: niters integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDDgesv_full_rank,& hipsolverDDgesv_rank_0,& hipsolverDDgesv_rank_1 #endif end interface interface hipsolverCCgesv #ifdef USE_CUDA_NAMES function hipsolverCCgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="cusolverCCgesv") #else function hipsolverCCgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="hipsolverCCgesv") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: work integer(c_size_t),value :: lwork type(c_ptr),value :: niters integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCCgesv_full_rank,& hipsolverCCgesv_rank_0,& hipsolverCCgesv_rank_1 #endif end interface interface hipsolverZZgesv #ifdef USE_CUDA_NAMES function hipsolverZZgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="cusolverZZgesv") #else function hipsolverZZgesv_(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) bind(c, name="hipsolverZZgesv") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx type(c_ptr),value :: work integer(c_size_t),value :: lwork type(c_ptr),value :: niters integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZZgesv_full_rank,& hipsolverZZgesv_rank_0,& hipsolverZZgesv_rank_1 #endif end interface interface hipsolverSgetrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverSgetrf_bufferSize") #else function hipsolverSgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverSgetrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgetrf_bufferSize_full_rank,& hipsolverSgetrf_bufferSize_rank_0,& hipsolverSgetrf_bufferSize_rank_1 #endif end interface interface hipsolverDgetrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverDgetrf_bufferSize") #else function hipsolverDgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverDgetrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgetrf_bufferSize_full_rank,& hipsolverDgetrf_bufferSize_rank_0,& hipsolverDgetrf_bufferSize_rank_1 #endif end interface interface hipsolverCgetrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverCgetrf_bufferSize") #else function hipsolverCgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverCgetrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgetrf_bufferSize_full_rank,& hipsolverCgetrf_bufferSize_rank_0,& hipsolverCgetrf_bufferSize_rank_1 #endif end interface interface hipsolverZgetrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="cusolverZgetrf_bufferSize") #else function hipsolverZgetrf_bufferSize_(handle,m,n,A,lda,lwork) bind(c, name="hipsolverZgetrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgetrf_bufferSize_full_rank,& hipsolverZgetrf_bufferSize_rank_0,& hipsolverZgetrf_bufferSize_rank_1 #endif end interface interface hipsolverSgetrf #ifdef USE_CUDA_NAMES function hipsolverSgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="cusolverSgetrf") #else function hipsolverSgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="hipsolverSgetrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork type(c_ptr),value :: devIpiv integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgetrf_full_rank,& hipsolverSgetrf_rank_0,& hipsolverSgetrf_rank_1 #endif end interface interface hipsolverDgetrf #ifdef USE_CUDA_NAMES function hipsolverDgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="cusolverDgetrf") #else function hipsolverDgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="hipsolverDgetrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork type(c_ptr),value :: devIpiv integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgetrf_full_rank,& hipsolverDgetrf_rank_0,& hipsolverDgetrf_rank_1 #endif end interface interface hipsolverCgetrf #ifdef USE_CUDA_NAMES function hipsolverCgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="cusolverCgetrf") #else function hipsolverCgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="hipsolverCgetrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork type(c_ptr),value :: devIpiv integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgetrf_full_rank,& hipsolverCgetrf_rank_0,& hipsolverCgetrf_rank_1 #endif end interface interface hipsolverZgetrf #ifdef USE_CUDA_NAMES function hipsolverZgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="cusolverZgetrf") #else function hipsolverZgetrf_(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) bind(c, name="hipsolverZgetrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork type(c_ptr),value :: devIpiv integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgetrf_full_rank,& hipsolverZgetrf_rank_0,& hipsolverZgetrf_rank_1 #endif end interface interface hipsolverSgetrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="cusolverSgetrs_bufferSize") #else function hipsolverSgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="hipsolverSgetrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgetrs_bufferSize_full_rank,& hipsolverSgetrs_bufferSize_rank_0,& hipsolverSgetrs_bufferSize_rank_1 #endif end interface interface hipsolverDgetrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="cusolverDgetrs_bufferSize") #else function hipsolverDgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="hipsolverDgetrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgetrs_bufferSize_full_rank,& hipsolverDgetrs_bufferSize_rank_0,& hipsolverDgetrs_bufferSize_rank_1 #endif end interface interface hipsolverCgetrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="cusolverCgetrs_bufferSize") #else function hipsolverCgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="hipsolverCgetrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgetrs_bufferSize_full_rank,& hipsolverCgetrs_bufferSize_rank_0,& hipsolverCgetrs_bufferSize_rank_1 #endif end interface interface hipsolverZgetrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="cusolverZgetrs_bufferSize") #else function hipsolverZgetrs_bufferSize_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) bind(c, name="hipsolverZgetrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgetrs_bufferSize_full_rank,& hipsolverZgetrs_bufferSize_rank_0,& hipsolverZgetrs_bufferSize_rank_1 #endif end interface interface hipsolverSgetrs #ifdef USE_CUDA_NAMES function hipsolverSgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="cusolverSgetrs") #else function hipsolverSgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverSgetrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSgetrs_full_rank,& hipsolverSgetrs_rank_0,& hipsolverSgetrs_rank_1 #endif end interface interface hipsolverDgetrs #ifdef USE_CUDA_NAMES function hipsolverDgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="cusolverDgetrs") #else function hipsolverDgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverDgetrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDgetrs_full_rank,& hipsolverDgetrs_rank_0,& hipsolverDgetrs_rank_1 #endif end interface interface hipsolverCgetrs #ifdef USE_CUDA_NAMES function hipsolverCgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="cusolverCgetrs") #else function hipsolverCgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverCgetrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCgetrs_full_rank,& hipsolverCgetrs_rank_0,& hipsolverCgetrs_rank_1 #endif end interface interface hipsolverZgetrs #ifdef USE_CUDA_NAMES function hipsolverZgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="cusolverZgetrs") #else function hipsolverZgetrs_(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverZgetrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_OP_N)),value :: trans integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: devIpiv type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZgetrs_full_rank,& hipsolverZgetrs_rank_0,& hipsolverZgetrs_rank_1 #endif end interface interface hipsolverSpotrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverSpotrf_bufferSize") #else function hipsolverSpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverSpotrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrf_bufferSize_full_rank,& hipsolverSpotrf_bufferSize_rank_0,& hipsolverSpotrf_bufferSize_rank_1 #endif end interface interface hipsolverDpotrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverDpotrf_bufferSize") #else function hipsolverDpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverDpotrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrf_bufferSize_full_rank,& hipsolverDpotrf_bufferSize_rank_0,& hipsolverDpotrf_bufferSize_rank_1 #endif end interface interface hipsolverCpotrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverCpotrf_bufferSize") #else function hipsolverCpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverCpotrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrf_bufferSize_full_rank,& hipsolverCpotrf_bufferSize_rank_0,& hipsolverCpotrf_bufferSize_rank_1 #endif end interface interface hipsolverZpotrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverZpotrf_bufferSize") #else function hipsolverZpotrf_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverZpotrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrf_bufferSize_full_rank,& hipsolverZpotrf_bufferSize_rank_0,& hipsolverZpotrf_bufferSize_rank_1 #endif end interface interface hipsolverSpotrf #ifdef USE_CUDA_NAMES function hipsolverSpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverSpotrf") #else function hipsolverSpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverSpotrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrf_full_rank,& hipsolverSpotrf_rank_0,& hipsolverSpotrf_rank_1 #endif end interface interface hipsolverDpotrf #ifdef USE_CUDA_NAMES function hipsolverDpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverDpotrf") #else function hipsolverDpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverDpotrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrf_full_rank,& hipsolverDpotrf_rank_0,& hipsolverDpotrf_rank_1 #endif end interface interface hipsolverCpotrf #ifdef USE_CUDA_NAMES function hipsolverCpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverCpotrf") #else function hipsolverCpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverCpotrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrf_full_rank,& hipsolverCpotrf_rank_0,& hipsolverCpotrf_rank_1 #endif end interface interface hipsolverZpotrf #ifdef USE_CUDA_NAMES function hipsolverZpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverZpotrf") #else function hipsolverZpotrf_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverZpotrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrf_full_rank,& hipsolverZpotrf_rank_0,& hipsolverZpotrf_rank_1 #endif end interface interface hipsolverSpotrfBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="cusolverSpotrfBatched_bufferSize") #else function hipsolverSpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="hipsolverSpotrfBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrfBatched_bufferSize_full_rank,& hipsolverSpotrfBatched_bufferSize_rank_0,& hipsolverSpotrfBatched_bufferSize_rank_1 #endif end interface interface hipsolverDpotrfBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="cusolverDpotrfBatched_bufferSize") #else function hipsolverDpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="hipsolverDpotrfBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrfBatched_bufferSize_full_rank,& hipsolverDpotrfBatched_bufferSize_rank_0,& hipsolverDpotrfBatched_bufferSize_rank_1 #endif end interface interface hipsolverCpotrfBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="cusolverCpotrfBatched_bufferSize") #else function hipsolverCpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="hipsolverCpotrfBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrfBatched_bufferSize_full_rank,& hipsolverCpotrfBatched_bufferSize_rank_0,& hipsolverCpotrfBatched_bufferSize_rank_1 #endif end interface interface hipsolverZpotrfBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="cusolverZpotrfBatched_bufferSize") #else function hipsolverZpotrfBatched_bufferSize_(handle,uplo,n,A,lda,lwork,batch_count) bind(c, name="hipsolverZpotrfBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrfBatched_bufferSize_full_rank,& hipsolverZpotrfBatched_bufferSize_rank_0,& hipsolverZpotrfBatched_bufferSize_rank_1 #endif end interface interface hipsolverSpotrfBatched #ifdef USE_CUDA_NAMES function hipsolverSpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="cusolverSpotrfBatched") #else function hipsolverSpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="hipsolverSpotrfBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrfBatched_full_rank,& hipsolverSpotrfBatched_rank_0,& hipsolverSpotrfBatched_rank_1 #endif end interface interface hipsolverDpotrfBatched #ifdef USE_CUDA_NAMES function hipsolverDpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="cusolverDpotrfBatched") #else function hipsolverDpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="hipsolverDpotrfBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrfBatched_full_rank,& hipsolverDpotrfBatched_rank_0,& hipsolverDpotrfBatched_rank_1 #endif end interface interface hipsolverCpotrfBatched #ifdef USE_CUDA_NAMES function hipsolverCpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="cusolverCpotrfBatched") #else function hipsolverCpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="hipsolverCpotrfBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrfBatched_full_rank,& hipsolverCpotrfBatched_rank_0,& hipsolverCpotrfBatched_rank_1 #endif end interface interface hipsolverZpotrfBatched #ifdef USE_CUDA_NAMES function hipsolverZpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="cusolverZpotrfBatched") #else function hipsolverZpotrfBatched_(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) bind(c, name="hipsolverZpotrfBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrfBatched_full_rank,& hipsolverZpotrfBatched_rank_0,& hipsolverZpotrfBatched_rank_1 #endif end interface interface hipsolverSpotri_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverSpotri_bufferSize") #else function hipsolverSpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverSpotri_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotri_bufferSize_full_rank,& hipsolverSpotri_bufferSize_rank_0,& hipsolverSpotri_bufferSize_rank_1 #endif end interface interface hipsolverDpotri_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverDpotri_bufferSize") #else function hipsolverDpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverDpotri_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotri_bufferSize_full_rank,& hipsolverDpotri_bufferSize_rank_0,& hipsolverDpotri_bufferSize_rank_1 #endif end interface interface hipsolverCpotri_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverCpotri_bufferSize") #else function hipsolverCpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverCpotri_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotri_bufferSize_full_rank,& hipsolverCpotri_bufferSize_rank_0,& hipsolverCpotri_bufferSize_rank_1 #endif end interface interface hipsolverZpotri_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="cusolverZpotri_bufferSize") #else function hipsolverZpotri_bufferSize_(handle,uplo,n,A,lda,lwork) bind(c, name="hipsolverZpotri_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotri_bufferSize_full_rank,& hipsolverZpotri_bufferSize_rank_0,& hipsolverZpotri_bufferSize_rank_1 #endif end interface interface hipsolverSpotri #ifdef USE_CUDA_NAMES function hipsolverSpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverSpotri") #else function hipsolverSpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverSpotri") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotri_full_rank,& hipsolverSpotri_rank_0,& hipsolverSpotri_rank_1 #endif end interface interface hipsolverDpotri #ifdef USE_CUDA_NAMES function hipsolverDpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverDpotri") #else function hipsolverDpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverDpotri") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotri_full_rank,& hipsolverDpotri_rank_0,& hipsolverDpotri_rank_1 #endif end interface interface hipsolverCpotri #ifdef USE_CUDA_NAMES function hipsolverCpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverCpotri") #else function hipsolverCpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverCpotri") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotri_full_rank,& hipsolverCpotri_rank_0,& hipsolverCpotri_rank_1 #endif end interface interface hipsolverZpotri #ifdef USE_CUDA_NAMES function hipsolverZpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="cusolverZpotri") #else function hipsolverZpotri_(handle,uplo,n,A,lda,work,lwork,devInfo) bind(c, name="hipsolverZpotri") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotri_full_rank,& hipsolverZpotri_rank_0,& hipsolverZpotri_rank_1 #endif end interface interface hipsolverSpotrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="cusolverSpotrs_bufferSize") #else function hipsolverSpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="hipsolverSpotrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrs_bufferSize_full_rank,& hipsolverSpotrs_bufferSize_rank_0,& hipsolverSpotrs_bufferSize_rank_1 #endif end interface interface hipsolverDpotrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="cusolverDpotrs_bufferSize") #else function hipsolverDpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="hipsolverDpotrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrs_bufferSize_full_rank,& hipsolverDpotrs_bufferSize_rank_0,& hipsolverDpotrs_bufferSize_rank_1 #endif end interface interface hipsolverCpotrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="cusolverCpotrs_bufferSize") #else function hipsolverCpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="hipsolverCpotrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrs_bufferSize_full_rank,& hipsolverCpotrs_bufferSize_rank_0,& hipsolverCpotrs_bufferSize_rank_1 #endif end interface interface hipsolverZpotrs_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="cusolverZpotrs_bufferSize") #else function hipsolverZpotrs_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) bind(c, name="hipsolverZpotrs_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrs_bufferSize_full_rank,& hipsolverZpotrs_bufferSize_rank_0,& hipsolverZpotrs_bufferSize_rank_1 #endif end interface interface hipsolverSpotrs #ifdef USE_CUDA_NAMES function hipsolverSpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="cusolverSpotrs") #else function hipsolverSpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverSpotrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrs_full_rank,& hipsolverSpotrs_rank_0,& hipsolverSpotrs_rank_1 #endif end interface interface hipsolverDpotrs #ifdef USE_CUDA_NAMES function hipsolverDpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="cusolverDpotrs") #else function hipsolverDpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverDpotrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrs_full_rank,& hipsolverDpotrs_rank_0,& hipsolverDpotrs_rank_1 #endif end interface interface hipsolverCpotrs #ifdef USE_CUDA_NAMES function hipsolverCpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="cusolverCpotrs") #else function hipsolverCpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverCpotrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrs_full_rank,& hipsolverCpotrs_rank_0,& hipsolverCpotrs_rank_1 #endif end interface interface hipsolverZpotrs #ifdef USE_CUDA_NAMES function hipsolverZpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="cusolverZpotrs") #else function hipsolverZpotrs_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) bind(c, name="hipsolverZpotrs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrs_full_rank,& hipsolverZpotrs_rank_0,& hipsolverZpotrs_rank_1 #endif end interface interface hipsolverSpotrsBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="cusolverSpotrsBatched_bufferSize") #else function hipsolverSpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="hipsolverSpotrsBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrsBatched_bufferSize_full_rank,& hipsolverSpotrsBatched_bufferSize_rank_0,& hipsolverSpotrsBatched_bufferSize_rank_1 #endif end interface interface hipsolverDpotrsBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="cusolverDpotrsBatched_bufferSize") #else function hipsolverDpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="hipsolverDpotrsBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrsBatched_bufferSize_full_rank,& hipsolverDpotrsBatched_bufferSize_rank_0,& hipsolverDpotrsBatched_bufferSize_rank_1 #endif end interface interface hipsolverCpotrsBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="cusolverCpotrsBatched_bufferSize") #else function hipsolverCpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="hipsolverCpotrsBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrsBatched_bufferSize_full_rank,& hipsolverCpotrsBatched_bufferSize_rank_0,& hipsolverCpotrsBatched_bufferSize_rank_1 #endif end interface interface hipsolverZpotrsBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="cusolverZpotrsBatched_bufferSize") #else function hipsolverZpotrsBatched_bufferSize_(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) bind(c, name="hipsolverZpotrsBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb integer(c_int) :: lwork integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrsBatched_bufferSize_full_rank,& hipsolverZpotrsBatched_bufferSize_rank_0,& hipsolverZpotrsBatched_bufferSize_rank_1 #endif end interface interface hipsolverSpotrsBatched #ifdef USE_CUDA_NAMES function hipsolverSpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="cusolverSpotrsBatched") #else function hipsolverSpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="hipsolverSpotrsBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSpotrsBatched_full_rank,& hipsolverSpotrsBatched_rank_0,& hipsolverSpotrsBatched_rank_1 #endif end interface interface hipsolverDpotrsBatched #ifdef USE_CUDA_NAMES function hipsolverDpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="cusolverDpotrsBatched") #else function hipsolverDpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="hipsolverDpotrsBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDpotrsBatched_full_rank,& hipsolverDpotrsBatched_rank_0,& hipsolverDpotrsBatched_rank_1 #endif end interface interface hipsolverCpotrsBatched #ifdef USE_CUDA_NAMES function hipsolverCpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="cusolverCpotrsBatched") #else function hipsolverCpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="hipsolverCpotrsBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCpotrsBatched_full_rank,& hipsolverCpotrsBatched_rank_0,& hipsolverCpotrsBatched_rank_1 #endif end interface interface hipsolverZpotrsBatched #ifdef USE_CUDA_NAMES function hipsolverZpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="cusolverZpotrsBatched") #else function hipsolverZpotrsBatched_(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) bind(c, name="hipsolverZpotrsBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n integer(c_int),value :: nrhs type(c_ptr) :: A integer(c_int),value :: lda type(c_ptr) :: B integer(c_int),value :: ldb type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo integer(c_int),value :: batch_count end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZpotrsBatched_full_rank,& hipsolverZpotrsBatched_rank_0,& hipsolverZpotrsBatched_rank_1 #endif end interface interface hipsolverSsyevd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsyevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="cusolverSsyevd_bufferSize") #else function hipsolverSsyevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="hipsolverSsyevd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsyevd_bufferSize_full_rank,& hipsolverSsyevd_bufferSize_rank_0,& hipsolverSsyevd_bufferSize_rank_1 #endif end interface interface hipsolverDsyevd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsyevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="cusolverDsyevd_bufferSize") #else function hipsolverDsyevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="hipsolverDsyevd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsyevd_bufferSize_full_rank,& hipsolverDsyevd_bufferSize_rank_0,& hipsolverDsyevd_bufferSize_rank_1 #endif end interface interface hipsolverCheevd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCheevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="cusolverCheevd_bufferSize") #else function hipsolverCheevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="hipsolverCheevd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCheevd_bufferSize_full_rank,& hipsolverCheevd_bufferSize_rank_0,& hipsolverCheevd_bufferSize_rank_1 #endif end interface interface hipsolverZheevd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZheevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="cusolverZheevd_bufferSize") #else function hipsolverZheevd_bufferSize_(handle,jobz,uplo,n,A,lda,D,lwork) bind(c, name="hipsolverZheevd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZheevd_bufferSize_full_rank,& hipsolverZheevd_bufferSize_rank_0,& hipsolverZheevd_bufferSize_rank_1 #endif end interface interface hipsolverSsyevd #ifdef USE_CUDA_NAMES function hipsolverSsyevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="cusolverSsyevd") #else function hipsolverSsyevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="hipsolverSsyevd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsyevd_full_rank,& hipsolverSsyevd_rank_0,& hipsolverSsyevd_rank_1 #endif end interface interface hipsolverDsyevd #ifdef USE_CUDA_NAMES function hipsolverDsyevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="cusolverDsyevd") #else function hipsolverDsyevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="hipsolverDsyevd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsyevd_full_rank,& hipsolverDsyevd_rank_0,& hipsolverDsyevd_rank_1 #endif end interface interface hipsolverCheevd #ifdef USE_CUDA_NAMES function hipsolverCheevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="cusolverCheevd") #else function hipsolverCheevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="hipsolverCheevd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCheevd_full_rank,& hipsolverCheevd_rank_0,& hipsolverCheevd_rank_1 #endif end interface interface hipsolverZheevd #ifdef USE_CUDA_NAMES function hipsolverZheevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="cusolverZheevd") #else function hipsolverZheevd_(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) bind(c, name="hipsolverZheevd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZheevd_full_rank,& hipsolverZheevd_rank_0,& hipsolverZheevd_rank_1 #endif end interface interface hipsolverSsygvd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsygvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="cusolverSsygvd_bufferSize") #else function hipsolverSsygvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="hipsolverSsygvd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsygvd_bufferSize_full_rank,& hipsolverSsygvd_bufferSize_rank_0,& hipsolverSsygvd_bufferSize_rank_1 #endif end interface interface hipsolverDsygvd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsygvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="cusolverDsygvd_bufferSize") #else function hipsolverDsygvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="hipsolverDsygvd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsygvd_bufferSize_full_rank,& hipsolverDsygvd_bufferSize_rank_0,& hipsolverDsygvd_bufferSize_rank_1 #endif end interface interface hipsolverChegvd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverChegvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="cusolverChegvd_bufferSize") #else function hipsolverChegvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="hipsolverChegvd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverChegvd_bufferSize_full_rank,& hipsolverChegvd_bufferSize_rank_0,& hipsolverChegvd_bufferSize_rank_1 #endif end interface interface hipsolverZhegvd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZhegvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="cusolverZhegvd_bufferSize") #else function hipsolverZhegvd_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) bind(c, name="hipsolverZhegvd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZhegvd_bufferSize_full_rank,& hipsolverZhegvd_bufferSize_rank_0,& hipsolverZhegvd_bufferSize_rank_1 #endif end interface interface hipsolverSsygvd #ifdef USE_CUDA_NAMES function hipsolverSsygvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="cusolverSsygvd") #else function hipsolverSsygvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="hipsolverSsygvd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsygvd_full_rank,& hipsolverSsygvd_rank_0,& hipsolverSsygvd_rank_1 #endif end interface interface hipsolverDsygvd #ifdef USE_CUDA_NAMES function hipsolverDsygvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="cusolverDsygvd") #else function hipsolverDsygvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="hipsolverDsygvd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsygvd_full_rank,& hipsolverDsygvd_rank_0,& hipsolverDsygvd_rank_1 #endif end interface interface hipsolverChegvd #ifdef USE_CUDA_NAMES function hipsolverChegvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="cusolverChegvd") #else function hipsolverChegvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="hipsolverChegvd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverChegvd_full_rank,& hipsolverChegvd_rank_0,& hipsolverChegvd_rank_1 #endif end interface interface hipsolverZhegvd #ifdef USE_CUDA_NAMES function hipsolverZhegvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="cusolverZhegvd") #else function hipsolverZhegvd_(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) bind(c, name="hipsolverZhegvd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: D type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZhegvd_full_rank,& hipsolverZhegvd_rank_0,& hipsolverZhegvd_rank_1 #endif end interface interface hipsolverSsytrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsytrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="cusolverSsytrd_bufferSize") #else function hipsolverSsytrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="hipsolverSsytrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_float) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsytrd_bufferSize_full_rank,& hipsolverSsytrd_bufferSize_rank_0,& hipsolverSsytrd_bufferSize_rank_1 #endif end interface interface hipsolverDsytrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsytrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="cusolverDsytrd_bufferSize") #else function hipsolverDsytrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="hipsolverDsytrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_double) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsytrd_bufferSize_full_rank,& hipsolverDsytrd_bufferSize_rank_0,& hipsolverDsytrd_bufferSize_rank_1 #endif end interface interface hipsolverChetrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverChetrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="cusolverChetrd_bufferSize") #else function hipsolverChetrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="hipsolverChetrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_float_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverChetrd_bufferSize_full_rank,& hipsolverChetrd_bufferSize_rank_0,& hipsolverChetrd_bufferSize_rank_1 #endif end interface interface hipsolverZhetrd_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZhetrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="cusolverZhetrd_bufferSize") #else function hipsolverZhetrd_bufferSize_(handle,uplo,n,A,lda,D,E,tau,lwork) bind(c, name="hipsolverZhetrd_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_double_complex) :: tau integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZhetrd_bufferSize_full_rank,& hipsolverZhetrd_bufferSize_rank_0,& hipsolverZhetrd_bufferSize_rank_1 #endif end interface interface hipsolverSsytrd #ifdef USE_CUDA_NAMES function hipsolverSsytrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="cusolverSsytrd") #else function hipsolverSsytrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="hipsolverSsytrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_float) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsytrd_full_rank,& hipsolverSsytrd_rank_0,& hipsolverSsytrd_rank_1 #endif end interface interface hipsolverDsytrd #ifdef USE_CUDA_NAMES function hipsolverDsytrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="cusolverDsytrd") #else function hipsolverDsytrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="hipsolverDsytrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E real(c_double) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsytrd_full_rank,& hipsolverDsytrd_rank_0,& hipsolverDsytrd_rank_1 #endif end interface interface hipsolverChetrd #ifdef USE_CUDA_NAMES function hipsolverChetrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="cusolverChetrd") #else function hipsolverChetrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="hipsolverChetrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_float_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverChetrd_full_rank,& hipsolverChetrd_rank_0,& hipsolverChetrd_rank_1 #endif end interface interface hipsolverZhetrd #ifdef USE_CUDA_NAMES function hipsolverZhetrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="cusolverZhetrd") #else function hipsolverZhetrd_(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) bind(c, name="hipsolverZhetrd") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: D type(c_ptr),value :: E complex(c_double_complex) :: tau type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZhetrd_full_rank,& hipsolverZhetrd_rank_0,& hipsolverZhetrd_rank_1 #endif end interface interface hipsolverSsytrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="cusolverSsytrf_bufferSize") #else function hipsolverSsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="hipsolverSsytrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsytrf_bufferSize_full_rank,& hipsolverSsytrf_bufferSize_rank_0,& hipsolverSsytrf_bufferSize_rank_1 #endif end interface interface hipsolverDsytrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="cusolverDsytrf_bufferSize") #else function hipsolverDsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="hipsolverDsytrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsytrf_bufferSize_full_rank,& hipsolverDsytrf_bufferSize_rank_0,& hipsolverDsytrf_bufferSize_rank_1 #endif end interface interface hipsolverCsytrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="cusolverCsytrf_bufferSize") #else function hipsolverCsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="hipsolverCsytrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCsytrf_bufferSize_full_rank,& hipsolverCsytrf_bufferSize_rank_0,& hipsolverCsytrf_bufferSize_rank_1 #endif end interface interface hipsolverZsytrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="cusolverZsytrf_bufferSize") #else function hipsolverZsytrf_bufferSize_(handle,n,A,lda,lwork) bind(c, name="hipsolverZsytrf_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_bufferSize_ type(c_ptr),value :: handle integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int) :: lwork end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZsytrf_bufferSize_full_rank,& hipsolverZsytrf_bufferSize_rank_0,& hipsolverZsytrf_bufferSize_rank_1 #endif end interface interface hipsolverSsytrf #ifdef USE_CUDA_NAMES function hipsolverSsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="cusolverSsytrf") #else function hipsolverSsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="hipsolverSsytrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverSsytrf_full_rank,& hipsolverSsytrf_rank_0,& hipsolverSsytrf_rank_1 #endif end interface interface hipsolverDsytrf #ifdef USE_CUDA_NAMES function hipsolverDsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="cusolverDsytrf") #else function hipsolverDsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="hipsolverDsytrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverDsytrf_full_rank,& hipsolverDsytrf_rank_0,& hipsolverDsytrf_rank_1 #endif end interface interface hipsolverCsytrf #ifdef USE_CUDA_NAMES function hipsolverCsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="cusolverCsytrf") #else function hipsolverCsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="hipsolverCsytrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverCsytrf_full_rank,& hipsolverCsytrf_rank_0,& hipsolverCsytrf_rank_1 #endif end interface interface hipsolverZsytrf #ifdef USE_CUDA_NAMES function hipsolverZsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="cusolverZsytrf") #else function hipsolverZsytrf_(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) bind(c, name="hipsolverZsytrf") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: ipiv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipsolverZsytrf_full_rank,& hipsolverZsytrf_rank_0,& hipsolverZsytrf_rank_1 #endif end interface interface hipsolverSsyevdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsyevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverSsyevdx_bufferSize") #else function hipsolverSsyevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverSsyevdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverDdyevdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDdyevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverDdyevdx_bufferSize") #else function hipsolverDdyevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverDdyevdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDdyevdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverCheevdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCheevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverCheevdx_bufferSize") #else function hipsolverCheevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverCheevdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverZheevdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZheevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverZheevdx_bufferSize") #else function hipsolverZheevdx_bufferSize_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverZheevdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverSsyevdx_ #ifdef USE_CUDA_NAMES function hipsolverSsyevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverSsyevdx") #else function hipsolverSsyevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverSsyevdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverDdyevdx #ifdef USE_CUDA_NAMES function hipsolverDdyevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverDdyevdx") #else function hipsolverDdyevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverDdyevdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDdyevdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverCheevdx #ifdef USE_CUDA_NAMES function hipsolverCheevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverCheevdx") #else function hipsolverCheevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverCheevdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverZheevdx #ifdef USE_CUDA_NAMES function hipsolverZheevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverZheevdx") #else function hipsolverZheevdx_(handle,jobz,eigrange,uplo,n,A,lda,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverZheevdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverSsygvdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsygvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverSsygvdx_bufferSize") #else function hipsolverSsygvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverSsygvdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverDsygvdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsygvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverDsygvdx_bufferSize") #else function hipsolverDsygvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverDsygvdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverChegvdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverChegvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverChegvdx_bufferSize") #else function hipsolverChegvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverChegvdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverZhegvdx_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZhegvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="cusolverZhegvdx_bufferSize") #else function hipsolverZhegvdx_bufferSize_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,lwork) bind(c, name="hipsolverZhegvdx_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvdx_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W integer(c_int) :: lwork end function end interface interface hipsolverSsygvdx #ifdef USE_CUDA_NAMES function hipsolverSsygvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverSsygvdx") #else function hipsolverSsygvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverSsygvdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverDsygvdx #ifdef USE_CUDA_NAMES function hipsolverDsygvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverDsygvdx") #else function hipsolverDsygvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverDsygvdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverChegvdx #ifdef USE_CUDA_NAMES function hipsolverChegvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverChegvdx") #else function hipsolverChegvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverChegvdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float),value :: vl real(c_float),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverZhegvdx #ifdef USE_CUDA_NAMES function hipsolverZhegvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="cusolverZhegvdx") #else function hipsolverZhegvdx_(handle,itype,jobz,eigrange,uplo,n,A,lda,B,ldb,vl,vu,il,iu,nev,W,work,lwork,devInfo) bind(c, name="hipsolverZhegvdx") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvdx_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_EIG_RANGE_ALL)),value :: eigrange integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double),value :: vl real(c_double),value :: vu integer(c_int),value :: il integer(c_int),value :: iu integer(c_int) :: nev type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo end function end interface interface hipsolverSgesvdj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="cusolverSgesvdj_bufferSize") #else function hipsolverSgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="hipsolverSgesvdj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgesvdj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverDgesvdj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="cusolverDgesvdj_bufferSize") #else function hipsolverDgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="hipsolverDgesvdj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgesvdj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverCgesvdj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="cusolverCgesvdj_bufferSize") #else function hipsolverCgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="hipsolverCgesvdj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgesvdj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverZgesvdj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="cusolverZgesvdj_bufferSize") #else function hipsolverZgesvdj_bufferSize_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,lwork,params) bind(c, name="hipsolverZgesvdj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgesvdj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverSgesvdj #ifdef USE_CUDA_NAMES function hipsolverSgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="cusolverSgesvdj") #else function hipsolverSgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="hipsolverSgesvdj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgesvdj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverDgesvdj #ifdef USE_CUDA_NAMES function hipsolverDgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="cusolverDgesvdj") #else function hipsolverDgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="hipsolverDgesvdj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgesvdj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverCgesvdj #ifdef USE_CUDA_NAMES function hipsolverCgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="cusolverCgesvdj") #else function hipsolverCgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="hipsolverCgesvdj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgesvdj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverZgesvdj #ifdef USE_CUDA_NAMES function hipsolverZgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="cusolverZgesvdj") #else function hipsolverZgesvdj_(handle,jobz,econ,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params) bind(c, name="hipsolverZgesvdj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgesvdj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: econ integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverSgesvdjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="cusolverSgesvdjBatched_bufferSize") #else function hipsolverSgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="hipsolverSgesvdjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgesvdjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverDgesvdjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="cusolverDgesvdjBatched_bufferSize") #else function hipsolverDgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="hipsolverDgesvdjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgesvdjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverCgesvdjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="cusolverCgesvdjBatched_bufferSize") #else function hipsolverCgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="hipsolverCgesvdjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgesvdjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverZgesvdjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="cusolverZgesvdjBatched_bufferSize") #else function hipsolverZgesvdjBatched_bufferSize_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,lwork,params,batch_count) bind(c, name="hipsolverZgesvdjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgesvdjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverSgesvdjBatched #ifdef USE_CUDA_NAMES function hipsolverSgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverSgesvdjBatched") #else function hipsolverSgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverSgesvdjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgesvdjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverDgesvdjBatched #ifdef USE_CUDA_NAMES function hipsolverDgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverDgesvdjBatched") #else function hipsolverDgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverDgesvdjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgesvdjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverCgesvdjBatched #ifdef USE_CUDA_NAMES function hipsolverCgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverCgesvdjBatched") #else function hipsolverCgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverCgesvdjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgesvdjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverZgesvdjBatched #ifdef USE_CUDA_NAMES function hipsolverZgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverZgesvdjBatched") #else function hipsolverZgesvdjBatched_(handle,jobz,m,n,A,lda,S,U,ldu,V,ldv,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverZgesvdjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgesvdjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: S type(c_ptr),value :: U integer(c_int),value :: ldu type(c_ptr),value :: V integer(c_int),value :: ldv type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverSsyevj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsyevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="cusolverSsyevj_bufferSize") #else function hipsolverSsyevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="hipsolverSsyevj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverDsyevj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsyevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="cusolverDsyevj_bufferSize") #else function hipsolverDsyevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="hipsolverDsyevj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverCheevj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCheevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="cusolverCheevj_bufferSize") #else function hipsolverCheevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="hipsolverCheevj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverZheevj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZheevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="cusolverZheevj_bufferSize") #else function hipsolverZheevj_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params) bind(c, name="hipsolverZheevj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverSsyevj #ifdef USE_CUDA_NAMES function hipsolverSsyevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="cusolverSsyevj") #else function hipsolverSsyevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="hipsolverSsyevj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverDsyevj #ifdef USE_CUDA_NAMES function hipsolverDsyevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="cusolverDsyevj") #else function hipsolverDsyevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="hipsolverDsyevj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverCheevj #ifdef USE_CUDA_NAMES function hipsolverCheevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="cusolverCheevj") #else function hipsolverCheevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="hipsolverCheevj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverZheevj #ifdef USE_CUDA_NAMES function hipsolverZheevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="cusolverZheevj") #else function hipsolverZheevj_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params) bind(c, name="hipsolverZheevj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverSsyevjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsyevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="cusolverSsyevjBatched_bufferSize") #else function hipsolverSsyevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="hipsolverSsyevjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverDsyevjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsyevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="cusolverDsyevjBatched_bufferSize") #else function hipsolverDsyevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="hipsolverDsyevjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverCheevjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverCheevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="cusolverCheevjBatched_bufferSize") #else function hipsolverCheevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="hipsolverCheevjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverZheevjBatched_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZheevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="cusolverZheevjBatched_bufferSize") #else function hipsolverZheevjBatched_bufferSize_(handle,jobz,uplo,n,A,lda,W,lwork,params,batch_count) bind(c, name="hipsolverZheevjBatched_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevjBatched_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverSsyevjBatched #ifdef USE_CUDA_NAMES function hipsolverSsyevjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverSsyevjBatched") #else function hipsolverSsyevjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverSsyevjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverDsyevjjBatched #ifdef USE_CUDA_NAMES function hipsolverDsyevjjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverDsyevjjBatched") #else function hipsolverDsyevjjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverDsyevjjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevjjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverCheevjBatched #ifdef USE_CUDA_NAMES function hipsolverCheevjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverCheevjBatched") #else function hipsolverCheevjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverCheevjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverZheevjBatched #ifdef USE_CUDA_NAMES function hipsolverZheevjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="cusolverZheevjBatched") #else function hipsolverZheevjBatched_(handle,jobz,uplo,n,A,lda,W,work,lwork,devInfo,params,batch_count) bind(c, name="hipsolverZheevjBatched") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevjBatched_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params integer(c_int),value :: batch_count end function end interface interface hipsolverSsygvj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverSsygvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="cusolverSsygvj_bufferSize") #else function hipsolverSsygvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="hipsolverSsygvj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverDsygvj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDsygvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="cusolverDsygvj_bufferSize") #else function hipsolverDsygvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="hipsolverDsygvj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverChegvj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverChegvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="cusolverChegvj_bufferSize") #else function hipsolverChegvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="hipsolverChegvj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverZhegvj_bufferSize #ifdef USE_CUDA_NAMES function hipsolverZhegvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="cusolverZhegvj_bufferSize") #else function hipsolverZhegvj_bufferSize_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,lwork,params) bind(c, name="hipsolverZhegvj_bufferSize") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvj_bufferSize_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W integer(c_int) :: lwork type(c_ptr),value :: params end function end interface interface hipsolverSsygvj #ifdef USE_CUDA_NAMES function hipsolverSsygvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="cusolverSsygvj") #else function hipsolverSsygvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="hipsolverSsygvj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverDsygvj #ifdef USE_CUDA_NAMES function hipsolverDsygvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="cusolverDsygvj") #else function hipsolverDsygvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="hipsolverDsygvj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverChegvj #ifdef USE_CUDA_NAMES function hipsolverChegvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="cusolverChegvj") #else function hipsolverChegvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="hipsolverChegvj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverZhegvj #ifdef USE_CUDA_NAMES function hipsolverZhegvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="cusolverZhegvj") #else function hipsolverZhegvj_(handle,itype,jobz,uplo,n,A,lda,B,ldb,W,work,lwork,devInfo,params) bind(c, name="hipsolverZhegvj") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvj_ type(c_ptr),value :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)),value :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)),value :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)),value :: uplo integer(c_int),value :: n type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: W type(c_ptr),value :: work integer(c_int),value :: lwork integer(c_int) :: devInfo type(c_ptr),value :: params end function end interface interface hipsolverDnCreateParams #ifdef USE_CUDA_NAMES function hipsolverDnCreateParams_(params) bind(c, name="cusolverDnCreateParams") #else function hipsolverDnCreateParams_(params) bind(c, name="hipsolverDnCreateParams") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnCreateParams_ type(c_ptr) :: params end function end interface interface hipsolverDnDestroyParams #ifdef USE_CUDA_NAMES function hipsolverDnDestroyParams_(params) bind(c, name="cusolverDnDestroyParams") #else function hipsolverDnDestroyParams_(params) bind(c, name="hipsolverDnDestroyParams") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnDestroyParams_ type(c_ptr),value :: params end function end interface interface hipsolverDnSetAdvOptions #ifdef USE_CUDA_NAMES function hipsolverDnSetAdvOptions_(params,func,alg) bind(c, name="cusolverDnSetAdvOptions") #else function hipsolverDnSetAdvOptions_(params,func,alg) bind(c, name="hipsolverDnSetAdvOptions") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnSetAdvOptions_ type(c_ptr),value :: params integer(kind(HIPSOLVERDN_GETRF)),value :: func integer(kind(HIPSOLVER_ALG_0)),value :: alg end function end interface interface hipsolverDnXgetrf_bufferSize #ifdef USE_CUDA_NAMES function hipsolverDnXgetrf_bufferSize_(handle,params,m,n,dataTypeA,A,lda,computeType,lworkOnDevice,lworkOnHost) bind(c, name="cusolverDnXgetrf_bufferSize") #else function hipsolverDnXgetrf_bufferSize_(handle,params,m,n,dataTypeA,A,lda,computeType,lworkOnDevice,lworkOnHost) bind(c, name="hipsolverDnXgetrf_bufferSize") #endif use iso_c_binding use hipfort_enums use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXgetrf_bufferSize_ type(c_ptr),value :: handle type(c_ptr),value :: params integer(c_int64_t),value :: m integer(c_int64_t),value :: n integer(kind(HIP_R_32F)),value :: dataTypeA type(c_ptr),value :: A integer(c_int64_t),value :: lda integer(kind(HIP_R_32F)),value :: computeType integer(c_size_t) :: lworkOnDevice integer(c_size_t) :: lworkOnHost end function end interface interface hipsolverDnXgetrf #ifdef USE_CUDA_NAMES function hipsolverDnXgetrf_(handle,params,m,n,dataTypeA,A,lda,devIpiv,computeType,workOnDevice,lworkOnDevice,workOnHost,lworkOnHost,devInfo) bind(c, name="cusolverDnXgetrf") #else function hipsolverDnXgetrf_(handle,params,m,n,dataTypeA,A,lda,devIpiv,computeType,workOnDevice,lworkOnDevice,workOnHost,lworkOnHost,devInfo) bind(c, name="hipsolverDnXgetrf") #endif use iso_c_binding use hipfort_enums use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXgetrf_ type(c_ptr),value :: handle type(c_ptr),value :: params integer(c_int64_t),value :: m integer(c_int64_t),value :: n integer(kind(HIP_R_32F)),value :: dataTypeA type(c_ptr),value :: A integer(c_int64_t),value :: lda type(c_ptr),value :: devIpiv integer(kind(HIP_R_32F)),value :: computeType type(c_ptr),value :: workOnDevice integer(c_size_t) :: lworkOnDevice type(c_ptr),value :: workOnHost integer(c_size_t) :: lworkOnHost integer(c_int) :: devInfo end function end interface interface hipsolverDnXgetrs #ifdef USE_CUDA_NAMES function hipsolverDnXgetrs_(handle,params,trans,n,nrhs,dataTypeA,A,lda,devIpiv,dataTypeB,B,ldb,devInfo) bind(c, name="cusolverDnXgetrs") #else function hipsolverDnXgetrs_(handle,params,trans,n,nrhs,dataTypeA,A,lda,devIpiv,dataTypeB,B,ldb,devInfo) bind(c, name="hipsolverDnXgetrs") #endif use iso_c_binding use hipfort_enums use hipfort_hipblas_enums use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXgetrs_ type(c_ptr),value :: handle type(c_ptr),value :: params integer(kind(HIPBLAS_OP_N)),value :: trans integer(c_int64_t),value :: n integer(c_int64_t),value :: nrhs integer(kind(HIP_R_32F)),value :: dataTypeA type(c_ptr),value :: A integer(c_int64_t),value :: lda type(c_ptr),value :: devIpiv integer(kind(HIP_R_32F)),value :: dataTypeB type(c_ptr),value :: B integer(c_int64_t),value :: ldb integer(c_int) :: devInfo end function end interface interface hipsolverSpCreate #ifdef USE_CUDA_NAMES function hipsolverSpCreate_(handle) bind(c, name="cusolverSpCreate") #else function hipsolverSpCreate_(handle) bind(c, name="hipsolverSpCreate") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpCreate_ type(c_ptr) :: handle end function end interface interface hipsolverSpDestroy #ifdef USE_CUDA_NAMES function hipsolverSpDestroy_(handle) bind(c, name="cusolverSpDestroy") #else function hipsolverSpDestroy_(handle) bind(c, name="hipsolverSpDestroy") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpDestroy_ type(c_ptr),value :: handle end function end interface interface hipsolverSpSetStream #ifdef USE_CUDA_NAMES function hipsolverSpSetStream_(handle,streamId) bind(c, name="cusolverSpSetStream") #else function hipsolverSpSetStream_(handle,streamId) bind(c, name="hipsolverSpSetStream") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpSetStream_ type(c_ptr),value :: handle type(c_ptr),value :: streamId end function end interface interface hipsolverSpScsrlsvchol #ifdef USE_CUDA_NAMES function hipsolverSpScsrlsvchol_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpScsrlsvchol") #else function hipsolverSpScsrlsvchol_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpScsrlsvchol") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpScsrlsvchol_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: b real(c_float),value :: tolerance integer(c_int),value :: reorder type(c_ptr),value :: x integer(c_int) :: singularity end function end interface interface hipsolverSpDcsrlsvchol #ifdef USE_CUDA_NAMES function hipsolverSpDcsrlsvchol_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpDcsrlsvchol") #else function hipsolverSpDcsrlsvchol_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpDcsrlsvchol") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpDcsrlsvchol_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: b real(c_double),value :: tolerance integer(c_int),value :: reorder type(c_ptr),value :: x integer(c_int) :: singularity end function end interface interface hipsolverSpScsrlsvcholHost #ifdef USE_CUDA_NAMES function hipsolverSpScsrlsvcholHost_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpScsrlsvcholHost") #else function hipsolverSpScsrlsvcholHost_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpScsrlsvcholHost") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpScsrlsvcholHost_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: b real(c_float),value :: tolerance integer(c_int),value :: reorder type(c_ptr),value :: x integer(c_int) :: singularity end function end interface interface hipsolverSpDscrlsvcholHost #ifdef USE_CUDA_NAMES function hipsolverSpDscrlsvcholHost_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpDscrlsvcholHost") #else function hipsolverSpDscrlsvcholHost_(handle,n,nnzA,descrA,csrVal,csrRowPtr,csrColInd,b,tolerance,reorder,x,singularity) bind(c, name="hipsolverSpDscrlsvcholHost") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpDscrlsvcholHost_ type(c_ptr),value :: handle integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: descrA type(c_ptr),value :: csrVal type(c_ptr),value :: csrRowPtr type(c_ptr),value :: csrColInd type(c_ptr),value :: b real(c_double),value :: tolerance integer(c_int),value :: reorder type(c_ptr),value :: x integer(c_int) :: singularity end function end interface interface hipsolverRfCreate #ifdef USE_CUDA_NAMES function hipsolverRfCreate_(handle) bind(c, name="cusolverRfCreate") #else function hipsolverRfCreate_(handle) bind(c, name="hipsolverRfCreate") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfCreate_ type(c_ptr) :: handle end function end interface interface hipsolverRfDestroy #ifdef USE_CUDA_NAMES function hipsolverRfDestroy_(handle) bind(c, name="cusolverRfDestroy") #else function hipsolverRfDestroy_(handle) bind(c, name="hipsolverRfDestroy") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfDestroy_ type(c_ptr),value :: handle end function end interface interface hipsolverRfSetupDevice #ifdef USE_CUDA_NAMES function hipsolverRfSetupDevice_(n,nnzA,csrRowPtrA,csrColIndA,csrValA,nnzL,csrRowPtrL,csrColIndL,csrValL,nnzU,csrRowPtrU,csrColIndU,csrValU,P,Q,handle) bind(c, name="hipsolverRfSetupDevice") #else function hipsolverRfSetupDevice_(n,nnzA,csrRowPtrA,csrColIndA,csrValA,nnzL,csrRowPtrL,csrColIndL,csrValL,nnzU,csrRowPtrU,csrColIndU,csrValU,P,Q,handle) bind(c, name="hipsolverRfSetupDevice") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSetupDevice_ integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrValA integer(c_int),value :: nnzL type(c_ptr),value :: csrRowPtrL type(c_ptr),value :: csrColIndL type(c_ptr),value :: csrValL integer(c_int),value :: nnzU type(c_ptr),value :: csrRowPtrU type(c_ptr),value :: csrColIndU type(c_ptr),value :: csrValU type(c_ptr),value :: P type(c_ptr),value :: Q type(c_ptr),value :: handle end function end interface interface hipsolverRfSetupHost #ifdef USE_CUDA_NAMES function hipsolverRfSetupHost_(n,nnzA,h_csrRowPtrA,h_csrColIndA,h_csrValA,nnzL,h_csrRowPtrL,h_csrColIndL,h_csrValL,nnzU,h_csrRowPtrU,h_csrColIndU,h_csrValU,h_P,h_Q,handle) bind(c, name="hipsolverRfSetupHost") #else function hipsolverRfSetupHost_(n,nnzA,h_csrRowPtrA,h_csrColIndA,h_csrValA,nnzL,h_csrRowPtrL,h_csrColIndL,h_csrValL,nnzU,h_csrRowPtrU,h_csrColIndU,h_csrValU,h_P,h_Q,handle) bind(c, name="hipsolverRfSetupHost") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSetupHost_ integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: h_csrRowPtrA type(c_ptr),value :: h_csrColIndA type(c_ptr),value :: h_csrValA integer(c_int),value :: nnzL type(c_ptr),value :: h_csrRowPtrL type(c_ptr),value :: h_csrColIndL type(c_ptr),value :: h_csrValL integer(c_int),value :: nnzU type(c_ptr),value :: h_csrRowPtrU type(c_ptr),value :: h_csrColIndU type(c_ptr),value :: h_csrValU type(c_ptr),value :: h_P type(c_ptr),value :: h_Q type(c_ptr),value :: handle end function end interface interface hipsolverRfAccessBundledFactorsDevice #ifdef USE_CUDA_NAMES function hipsolverRfAccessBundledFactorsDevice_(handle,nnzM,Mp,Mi,Mx) bind(c, name="hipsolverRfAccessBundledFactorsDevice") #else function hipsolverRfAccessBundledFactorsDevice_(handle,nnzM,Mp,Mi,Mx) bind(c, name="hipsolverRfAccessBundledFactorsDevice") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfAccessBundledFactorsDevice_ type(c_ptr),value :: handle integer(c_int) :: nnzM type(c_ptr),value :: Mp type(c_ptr),value :: Mi type(c_ptr),value :: Mx end function end interface interface hipsolverRfAnalyze #ifdef USE_CUDA_NAMES function hipsolverRfAnalyze_(handle) bind(c, name="cusolverRfAnalyze") #else function hipsolverRfAnalyze_(handle) bind(c, name="hipsolverRfAnalyze") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfAnalyze_ type(c_ptr),value :: handle end function end interface interface hipsolverRfExtractBundledFactorsHost #ifdef USE_CUDA_NAMES function hipsolverRfExtractBundledFactorsHost_(handle,h_nnzM,h_Mp,h_Mi,h_Mx) bind(c, name="hipsolverRfExtractBundledFactorsHost") #else function hipsolverRfExtractBundledFactorsHost_(handle,h_nnzM,h_Mp,h_Mi,h_Mx) bind(c, name="hipsolverRfExtractBundledFactorsHost") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfExtractBundledFactorsHost_ type(c_ptr),value :: handle integer(c_int) :: h_nnzM type(c_ptr),value :: h_Mp type(c_ptr),value :: h_Mi type(c_ptr),value :: h_Mx end function end interface interface hipsolverRfExtractSplitFactorsHost #ifdef USE_CUDA_NAMES function hipsolverRfExtractSplitFactorsHost_(handle,h_nnzL,h_Lp,h_Li,h_Lx,h_nnzU,h_Up,h_Ui,h_Ux) bind(c, name="hipsolverRfExtractSplitFactorsHost") #else function hipsolverRfExtractSplitFactorsHost_(handle,h_nnzL,h_Lp,h_Li,h_Lx,h_nnzU,h_Up,h_Ui,h_Ux) bind(c, name="hipsolverRfExtractSplitFactorsHost") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfExtractSplitFactorsHost_ type(c_ptr),value :: handle integer(c_int) :: h_nnzL type(c_ptr),value :: h_Lp type(c_ptr),value :: h_Li type(c_ptr),value :: h_Lx integer(c_int) :: h_nnzU type(c_ptr),value :: h_Up type(c_ptr),value :: h_Ui type(c_ptr),value :: h_Ux end function end interface interface hipsolverRfGet_Algs #ifdef USE_CUDA_NAMES function hipsolverRfGet_Algs_(handle,fact_alg,solve_alg) bind(c, name="cusolverRfGet_Algs") #else function hipsolverRfGet_Algs_(handle,fact_alg,solve_alg) bind(c, name="hipsolverRfGet_Algs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfGet_Algs_ type(c_ptr),value :: handle type(c_ptr),value :: fact_alg type(c_ptr),value :: solve_alg end function end interface interface hipsolverRfGetMatrixFormat #ifdef USE_CUDA_NAMES function hipsolverRfGetMatrixFormat_(handle,matformat,diag) bind(c, name="cusolverRfGetMatrixFormat") #else function hipsolverRfGetMatrixFormat_(handle,matformat,diag) bind(c, name="hipsolverRfGetMatrixFormat") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfGetMatrixFormat_ type(c_ptr),value :: handle type(c_ptr),value :: matformat type(c_ptr),value :: diag end function end interface interface hipsolverRfGetNumericBoostReport #ifdef USE_CUDA_NAMES function hipsolverRfGetNumericBoostReport_(handle,report) bind(c, name="cusolverRfGetNumericBoostReport") #else function hipsolverRfGetNumericBoostReport_(handle,report) bind(c, name="hipsolverRfGetNumericBoostReport") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfGetNumericBoostReport_ type(c_ptr),value :: handle type(c_ptr),value :: report end function end interface interface hipsolverRfGetNumericProperties #ifdef USE_CUDA_NAMES function hipsolverRfGetNumericProperties_(handle,zero,boost) bind(c, name="cusolverRfGetNumericProperties") #else function hipsolverRfGetNumericProperties_(handle,zero,boost) bind(c, name="hipsolverRfGetNumericProperties") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfGetNumericProperties_ type(c_ptr),value :: handle real(c_double) :: zero real(c_double) :: boost end function end interface interface hipsolverRfGetResetValuesFastMode #ifdef USE_CUDA_NAMES function hipsolverRfGetResetValuesFastMode_(handle,fastmode) bind(c, name="cusolverRfGetResetValuesFastMode") #else function hipsolverRfGetResetValuesFastMode_(handle,fastmode) bind(c, name="hipsolverRfGetResetValuesFastMode") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfGetResetValuesFastMode_ type(c_ptr),value :: handle type(c_ptr),value :: fastmode end function end interface interface hipsolverRfRefactor #ifdef USE_CUDA_NAMES function hipsolverRfRefactor_(handle) bind(c, name="cusolverRfRefactor") #else function hipsolverRfRefactor_(handle) bind(c, name="hipsolverRfRefactor") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfRefactor_ type(c_ptr),value :: handle end function end interface interface hipsolverRfResetValues #ifdef USE_CUDA_NAMES function hipsolverRfResetValues_(n,nnzA,csrRowPtrA,csrColIndA,csrValA,P,Q,handle) bind(c, name="hipsolverRfResetValues") #else function hipsolverRfResetValues_(n,nnzA,csrRowPtrA,csrColIndA,csrValA,P,Q,handle) bind(c, name="hipsolverRfResetValues") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfResetValues_ integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrValA type(c_ptr),value :: P type(c_ptr),value :: Q type(c_ptr),value :: handle end function end interface interface hipsolverRfSetAlgs #ifdef USE_CUDA_NAMES function hipsolverRfSetAlgs_(handle,fact_alg,solve_alg) bind(c, name="cusolverRfSetAlgs") #else function hipsolverRfSetAlgs_(handle,fact_alg,solve_alg) bind(c, name="hipsolverRfSetAlgs") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSetAlgs_ type(c_ptr),value :: handle integer(kind(HIPSOLVERRF_FACTORIZATION_ALG0)),value :: fact_alg integer(kind(HIPSOLVERRF_TRIANGULAR_SOLVE_ALG1)),value :: solve_alg end function end interface interface hipsolverRfSetMatrixFormat #ifdef USE_CUDA_NAMES function hipsolverRfSetMatrixFormat_(handle,matformat,diag) bind(c, name="cusolverRfSetMatrixFormat") #else function hipsolverRfSetMatrixFormat_(handle,matformat,diag) bind(c, name="hipsolverRfSetMatrixFormat") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSetMatrixFormat_ type(c_ptr),value :: handle integer(kind(HIPSOLVERRF_MATRIX_FORMAT_CSR)),value :: matformat integer(kind(HIPSOLVERRF_UNIT_DIAGONAL_STORED_L)),value :: diag end function end interface interface hipsolverRfSetNumericProperties #ifdef USE_CUDA_NAMES function hipsolverRfSetNumericProperties_(handle,zero,boost) bind(c, name="cusolverRfSetNumericProperties") #else function hipsolverRfSetNumericProperties_(handle,zero,boost) bind(c, name="hipsolverRfSetNumericProperties") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSetNumericProperties_ type(c_ptr),value :: handle real(c_double),value :: zero real(c_double),value :: boost end function end interface interface hipsolverRfSetResetValuesFastMode #ifdef USE_CUDA_NAMES function hipsolverRfSetResetValuesFastMode_(handle,fastmode) bind(c, name="cusolverRfSetResetValuesFastMode") #else function hipsolverRfSetResetValuesFastMode_(handle,fastmode) bind(c, name="hipsolverRfSetResetValuesFastMode") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSetResetValuesFastMode_ type(c_ptr),value :: handle integer(kind(HIPSOLVERRF_RESET_VALUES_FAST_MODE_OFF)),value :: fastmode end function end interface interface hipsolverRfSolve #ifdef USE_CUDA_NAMES function hipsolverRfSolve_(handle,P,Q,nrhs,Temp,ldt,XF,ldxf) bind(c, name="hipsolverRfSolve") #else function hipsolverRfSolve_(handle,P,Q,nrhs,Temp,ldt,XF,ldxf) bind(c, name="hipsolverRfSolve") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfSolve_ type(c_ptr),value :: handle type(c_ptr),value :: P type(c_ptr),value :: Q integer(c_int),value :: nrhs type(c_ptr),value :: Temp integer(c_int),value :: ldt type(c_ptr),value :: XF integer(c_int),value :: ldxf end function end interface interface hipsolverRfBatchSetupHost #ifdef USE_CUDA_NAMES function hipsolverRfBatchSetupHost_(batchSize,n,nnzA,h_csrRowPtrA,h_csrColIndA,h_csrValA_array,nnzL,h_csrRowPtrL,h_csrColIndL,h_csrValL,nnzU,h_csrRowPtrU,h_csrColIndU,h_csrValU,h_P,h_Q,handle) bind(c, name="hipsolverRfBatchSetupHost") #else function hipsolverRfBatchSetupHost_(batchSize,n,nnzA,h_csrRowPtrA,h_csrColIndA,h_csrValA_array,nnzL,h_csrRowPtrL,h_csrColIndL,h_csrValL,nnzU,h_csrRowPtrU,h_csrColIndU,h_csrValU,h_P,h_Q,handle) bind(c, name="hipsolverRfBatchSetupHost") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfBatchSetupHost_ integer(c_int),value :: batchSize integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: h_csrRowPtrA type(c_ptr),value :: h_csrColIndA type(c_ptr),value :: h_csrValA_array integer(c_int),value :: nnzL type(c_ptr),value :: h_csrRowPtrL type(c_ptr),value :: h_csrColIndL type(c_ptr),value :: h_csrValL integer(c_int),value :: nnzU type(c_ptr),value :: h_csrRowPtrU type(c_ptr),value :: h_csrColIndU type(c_ptr),value :: h_csrValU type(c_ptr),value :: h_P type(c_ptr),value :: h_Q type(c_ptr),value :: handle end function end interface interface hipsolverRfBatchAnalyze #ifdef USE_CUDA_NAMES function hipsolverRfBatchAnalyze_(handle) bind(c, name="cusolverRfBatchAnalyze") #else function hipsolverRfBatchAnalyze_(handle) bind(c, name="hipsolverRfBatchAnalyze") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfBatchAnalyze_ type(c_ptr),value :: handle end function end interface interface hipsolverRfBatchRefactor #ifdef USE_CUDA_NAMES function hipsolverRfBatchRefactor_(handle) bind(c, name="cusolverRfBatchRefactor") #else function hipsolverRfBatchRefactor_(handle) bind(c, name="hipsolverRfBatchRefactor") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfBatchRefactor_ type(c_ptr),value :: handle end function end interface interface hipsolverRfBatchResetValues #ifdef USE_CUDA_NAMES function hipsolverRfBatchResetValues_(batchSize,n,nnzA,csrRowPtrA,csrColIndA,csrValA_array,P,Q,handle) bind(c, name="hipsolverRfBatchResetValues") #else function hipsolverRfBatchResetValues_(batchSize,n,nnzA,csrRowPtrA,csrColIndA,csrValA_array,P,Q,handle) bind(c, name="hipsolverRfBatchResetValues") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfBatchResetValues_ integer(c_int),value :: batchSize integer(c_int),value :: n integer(c_int),value :: nnzA type(c_ptr),value :: csrRowPtrA type(c_ptr),value :: csrColIndA type(c_ptr),value :: csrValA_array type(c_ptr),value :: P type(c_ptr),value :: Q type(c_ptr),value :: handle end function end interface interface hipsolverRfBatchSolve #ifdef USE_CUDA_NAMES function hipsolverRfBatchSolve_(handle,P,Q,nrhs,Temp,ldt,XF_array,ldxf) bind(c, name="hipsolverRfBatchSolve") #else function hipsolverRfBatchSolve_(handle,P,Q,nrhs,Temp,ldt,XF_array,ldxf) bind(c, name="hipsolverRfBatchSolve") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfBatchSolve_ type(c_ptr),value :: handle type(c_ptr),value :: P type(c_ptr),value :: Q integer(c_int),value :: nrhs type(c_ptr),value :: Temp integer(c_int),value :: ldt type(c_ptr),value :: XF_array integer(c_int),value :: ldxf end function end interface interface hipsolverRfBatchZeroPivot #ifdef USE_CUDA_NAMES function hipsolverRfBatchZeroPivot_(handle,pos) bind(c, name="cusolverRfBatchZeroPivot") #else function hipsolverRfBatchZeroPivot_(handle,pos) bind(c, name="hipsolverRfBatchZeroPivot") #endif use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverRfBatchZeroPivot_ type(c_ptr),value :: handle type(c_ptr),value :: pos end function end interface #ifdef USE_FPOINTER_INTERFACES contains function hipsolverSorgbr_bufferSize_full_rank(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgbr_bufferSize_full_rank = hipsolverSorgbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverSorgbr_bufferSize_rank_0(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgbr_bufferSize_rank_0 = hipsolverSorgbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverSorgbr_bufferSize_rank_1(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgbr_bufferSize_rank_1 = hipsolverSorgbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverDorgbr_bufferSize_full_rank(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgbr_bufferSize_full_rank = hipsolverDorgbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverDorgbr_bufferSize_rank_0(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgbr_bufferSize_rank_0 = hipsolverDorgbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverDorgbr_bufferSize_rank_1(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgbr_bufferSize_rank_1 = hipsolverDorgbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverCungbr_bufferSize_full_rank(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungbr_bufferSize_full_rank = hipsolverCungbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverCungbr_bufferSize_rank_0(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungbr_bufferSize_rank_0 = hipsolverCungbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverCungbr_bufferSize_rank_1(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungbr_bufferSize_rank_1 = hipsolverCungbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverZungbr_bufferSize_full_rank(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungbr_bufferSize_full_rank = hipsolverZungbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverZungbr_bufferSize_rank_0(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungbr_bufferSize_rank_0 = hipsolverZungbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverZungbr_bufferSize_rank_1(handle,side,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungbr_bufferSize_rank_1 = hipsolverZungbr_bufferSize_(handle,side,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverSorgbr_full_rank(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgbr_full_rank = hipsolverSorgbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgbr_rank_0(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgbr_rank_0 = hipsolverSorgbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgbr_rank_1(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgbr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgbr_rank_1 = hipsolverSorgbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgbr_full_rank(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgbr_full_rank = hipsolverDorgbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgbr_rank_0(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgbr_rank_0 = hipsolverDorgbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgbr_rank_1(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgbr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgbr_rank_1 = hipsolverDorgbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungbr_full_rank(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungbr_full_rank = hipsolverCungbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungbr_rank_0(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungbr_rank_0 = hipsolverCungbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungbr_rank_1(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungbr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungbr_rank_1 = hipsolverCungbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungbr_full_rank(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungbr_full_rank = hipsolverZungbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungbr_rank_0(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungbr_rank_0 = hipsolverZungbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungbr_rank_1(handle,side,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungbr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungbr_rank_1 = hipsolverZungbr_(handle,side,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgqr_bufferSize_full_rank(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgqr_bufferSize_full_rank = hipsolverSorgqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverSorgqr_bufferSize_rank_0(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgqr_bufferSize_rank_0 = hipsolverSorgqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverSorgqr_bufferSize_rank_1(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgqr_bufferSize_rank_1 = hipsolverSorgqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverDorgqr_bufferSize_full_rank(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgqr_bufferSize_full_rank = hipsolverDorgqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverDorgqr_bufferSize_rank_0(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgqr_bufferSize_rank_0 = hipsolverDorgqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverDorgqr_bufferSize_rank_1(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgqr_bufferSize_rank_1 = hipsolverDorgqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverCungqr_bufferSize_full_rank(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungqr_bufferSize_full_rank = hipsolverCungqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverCungqr_bufferSize_rank_0(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungqr_bufferSize_rank_0 = hipsolverCungqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverCungqr_bufferSize_rank_1(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungqr_bufferSize_rank_1 = hipsolverCungqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverZungqr_bufferSize_full_rank(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungqr_bufferSize_full_rank = hipsolverZungqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverZungqr_bufferSize_rank_0(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungqr_bufferSize_rank_0 = hipsolverZungqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverZungqr_bufferSize_rank_1(handle,m,n,k,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungqr_bufferSize_rank_1 = hipsolverZungqr_bufferSize_(handle,m,n,k,c_loc(A),lda,tau,lwork) end function function hipsolverSorgqr_full_rank(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgqr_full_rank = hipsolverSorgqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgqr_rank_0(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgqr_rank_0 = hipsolverSorgqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgqr_rank_1(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgqr_rank_1 = hipsolverSorgqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgqr_full_rank(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgqr_full_rank = hipsolverDorgqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgqr_rank_0(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgqr_rank_0 = hipsolverDorgqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgqr_rank_1(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgqr_rank_1 = hipsolverDorgqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungqr_full_rank(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungqr_full_rank = hipsolverCungqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungqr_rank_0(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungqr_rank_0 = hipsolverCungqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungqr_rank_1(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungqr_rank_1 = hipsolverCungqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungqr_full_rank(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungqr_full_rank = hipsolverZungqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungqr_rank_0(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungqr_rank_0 = hipsolverZungqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungqr_rank_1(handle,m,n,k,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungqr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungqr_rank_1 = hipsolverZungqr_(handle,m,n,k,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgtr_bufferSize_full_rank(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgtr_bufferSize_full_rank = hipsolverSorgtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverSorgtr_bufferSize_rank_0(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgtr_bufferSize_rank_0 = hipsolverSorgtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverSorgtr_bufferSize_rank_1(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSorgtr_bufferSize_rank_1 = hipsolverSorgtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverDorgtr_bufferSize_full_rank(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgtr_bufferSize_full_rank = hipsolverDorgtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverDorgtr_bufferSize_rank_0(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgtr_bufferSize_rank_0 = hipsolverDorgtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverDorgtr_bufferSize_rank_1(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDorgtr_bufferSize_rank_1 = hipsolverDorgtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverCungtr_bufferSize_full_rank(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungtr_bufferSize_full_rank = hipsolverCungtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverCungtr_bufferSize_rank_0(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungtr_bufferSize_rank_0 = hipsolverCungtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverCungtr_bufferSize_rank_1(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverCungtr_bufferSize_rank_1 = hipsolverCungtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverZungtr_bufferSize_full_rank(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungtr_bufferSize_full_rank = hipsolverZungtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverZungtr_bufferSize_rank_0(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungtr_bufferSize_rank_0 = hipsolverZungtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverZungtr_bufferSize_rank_1(handle,uplo,n,A,lda,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZungtr_bufferSize_rank_1 = hipsolverZungtr_bufferSize_(handle,uplo,n,c_loc(A),lda,tau,lwork) end function function hipsolverSorgtr_full_rank(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgtr_full_rank = hipsolverSorgtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgtr_rank_0(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgtr_rank_0 = hipsolverSorgtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSorgtr_rank_1(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSorgtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSorgtr_rank_1 = hipsolverSorgtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgtr_full_rank(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgtr_full_rank = hipsolverDorgtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgtr_rank_0(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgtr_rank_0 = hipsolverDorgtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDorgtr_rank_1(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDorgtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDorgtr_rank_1 = hipsolverDorgtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungtr_full_rank(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungtr_full_rank = hipsolverCungtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungtr_rank_0(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungtr_rank_0 = hipsolverCungtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCungtr_rank_1(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCungtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCungtr_rank_1 = hipsolverCungtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungtr_full_rank(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungtr_full_rank = hipsolverZungtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungtr_rank_0(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungtr_rank_0 = hipsolverZungtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZungtr_rank_1(handle,uplo,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZungtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZungtr_rank_1 = hipsolverZungtr_(handle,uplo,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSormqr_bufferSize_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverSormqr_bufferSize_full_rank = hipsolverSormqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverSormqr_bufferSize_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverSormqr_bufferSize_rank_0 = hipsolverSormqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverSormqr_bufferSize_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverSormqr_bufferSize_rank_1 = hipsolverSormqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverDormqr_bufferSize_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverDormqr_bufferSize_full_rank = hipsolverDormqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverDormqr_bufferSize_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverDormqr_bufferSize_rank_0 = hipsolverDormqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverDormqr_bufferSize_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverDormqr_bufferSize_rank_1 = hipsolverDormqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverCunmqr_bufferSize_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverCunmqr_bufferSize_full_rank = hipsolverCunmqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverCunmqr_bufferSize_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverCunmqr_bufferSize_rank_0 = hipsolverCunmqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverCunmqr_bufferSize_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverCunmqr_bufferSize_rank_1 = hipsolverCunmqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverZunmqr_bufferSize_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverZunmqr_bufferSize_full_rank = hipsolverZunmqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverZunmqr_bufferSize_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverZunmqr_bufferSize_rank_0 = hipsolverZunmqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverZunmqr_bufferSize_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverZunmqr_bufferSize_rank_1 = hipsolverZunmqr_bufferSize_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverSormqr_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSormqr_full_rank = hipsolverSormqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverSormqr_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSormqr_rank_0 = hipsolverSormqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverSormqr_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormqr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSormqr_rank_1 = hipsolverSormqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverDormqr_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDormqr_full_rank = hipsolverDormqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverDormqr_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDormqr_rank_0 = hipsolverDormqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverDormqr_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormqr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDormqr_rank_1 = hipsolverDormqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverCunmqr_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCunmqr_full_rank = hipsolverCunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverCunmqr_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCunmqr_rank_0 = hipsolverCunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverCunmqr_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmqr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCunmqr_rank_1 = hipsolverCunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverZunmqr_full_rank(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZunmqr_full_rank = hipsolverZunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverZunmqr_rank_0(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZunmqr_rank_0 = hipsolverZunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverZunmqr_rank_1(handle,side,trans,m,n,k,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmqr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZunmqr_rank_1 = hipsolverZunmqr_(handle,side,trans,m,n,k,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverSormtr_bufferSize_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverSormtr_bufferSize_full_rank = hipsolverSormtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverSormtr_bufferSize_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverSormtr_bufferSize_rank_0 = hipsolverSormtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverSormtr_bufferSize_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverSormtr_bufferSize_rank_1 = hipsolverSormtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverDormtr_bufferSize_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverDormtr_bufferSize_full_rank = hipsolverDormtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverDormtr_bufferSize_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverDormtr_bufferSize_rank_0 = hipsolverDormtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverDormtr_bufferSize_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverDormtr_bufferSize_rank_1 = hipsolverDormtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverCunmtr_bufferSize_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverCunmtr_bufferSize_full_rank = hipsolverCunmtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverCunmtr_bufferSize_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverCunmtr_bufferSize_rank_0 = hipsolverCunmtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverCunmtr_bufferSize_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverCunmtr_bufferSize_rank_1 = hipsolverCunmtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverZunmtr_bufferSize_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverZunmtr_bufferSize_full_rank = hipsolverZunmtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverZunmtr_bufferSize_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverZunmtr_bufferSize_rank_0 = hipsolverZunmtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverZunmtr_bufferSize_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc integer(c_int) :: lwork ! hipsolverZunmtr_bufferSize_rank_1 = hipsolverZunmtr_bufferSize_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,lwork) end function function hipsolverSormtr_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSormtr_full_rank = hipsolverSormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverSormtr_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSormtr_rank_0 = hipsolverSormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverSormtr_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSormtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau real(c_float),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSormtr_rank_1 = hipsolverSormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverDormtr_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDormtr_full_rank = hipsolverDormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverDormtr_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDormtr_rank_0 = hipsolverDormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverDormtr_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDormtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau real(c_double),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDormtr_rank_1 = hipsolverDormtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverCunmtr_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCunmtr_full_rank = hipsolverCunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverCunmtr_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCunmtr_rank_0 = hipsolverCunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverCunmtr_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCunmtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCunmtr_rank_1 = hipsolverCunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverZunmtr_full_rank(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZunmtr_full_rank = hipsolverZunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverZunmtr_rank_0(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZunmtr_rank_0 = hipsolverZunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverZunmtr_rank_1(handle,side,uplo,trans,m,n,A,lda,tau,C,ldc,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZunmtr_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_SIDE_LEFT)) :: side integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZunmtr_rank_1 = hipsolverZunmtr_(handle,side,uplo,trans,m,n,c_loc(A),lda,tau,c_loc(C),ldc,work,lwork,devInfo) end function function hipsolverSgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgebrd_full_rank = hipsolverSgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverSgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float),target :: tauq real(c_float),target :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgebrd_rank_0 = hipsolverSgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverSgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float),target,dimension(:) :: tauq real(c_float),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgebrd_rank_1 = hipsolverSgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverDgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgebrd_full_rank = hipsolverDgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverDgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double),target :: tauq real(c_double),target :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgebrd_rank_0 = hipsolverDgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverDgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double),target,dimension(:) :: tauq real(c_double),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgebrd_rank_1 = hipsolverDgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverCgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgebrd_full_rank = hipsolverCgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverCgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex),target :: tauq complex(c_float_complex),target :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgebrd_rank_0 = hipsolverCgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverCgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex),target,dimension(:) :: tauq complex(c_float_complex),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgebrd_rank_1 = hipsolverCgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverZgebrd_full_rank(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgebrd_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgebrd_full_rank = hipsolverZgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverZgebrd_rank_0(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgebrd_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex),target :: tauq complex(c_double_complex),target :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgebrd_rank_0 = hipsolverZgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverZgebrd_rank_1(handle,m,n,A,lda,D,E,tauq,taup,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgebrd_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex),target,dimension(:) :: tauq complex(c_double_complex),target,dimension(:) :: taup type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgebrd_rank_1 = hipsolverZgebrd_(handle,m,n,c_loc(A),lda,c_loc(D),c_loc(E),c_loc(tauq),c_loc(taup),work,lwork,devInfo) end function function hipsolverSgeqrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSgeqrf_bufferSize_full_rank = hipsolverSgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverSgeqrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSgeqrf_bufferSize_rank_0 = hipsolverSgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverSgeqrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSgeqrf_bufferSize_rank_1 = hipsolverSgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverDgeqrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDgeqrf_bufferSize_full_rank = hipsolverDgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverDgeqrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDgeqrf_bufferSize_rank_0 = hipsolverDgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverDgeqrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDgeqrf_bufferSize_rank_1 = hipsolverDgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverCgeqrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCgeqrf_bufferSize_full_rank = hipsolverCgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverCgeqrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCgeqrf_bufferSize_rank_0 = hipsolverCgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverCgeqrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCgeqrf_bufferSize_rank_1 = hipsolverCgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverZgeqrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZgeqrf_bufferSize_full_rank = hipsolverZgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverZgeqrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZgeqrf_bufferSize_rank_0 = hipsolverZgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverZgeqrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZgeqrf_bufferSize_rank_1 = hipsolverZgeqrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverSgeqrf_full_rank(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgeqrf_full_rank = hipsolverSgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSgeqrf_rank_0(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgeqrf_rank_0 = hipsolverSgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSgeqrf_rank_1(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgeqrf_rank_1 = hipsolverSgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDgeqrf_full_rank(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgeqrf_full_rank = hipsolverDgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDgeqrf_rank_0(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgeqrf_rank_0 = hipsolverDgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverDgeqrf_rank_1(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgeqrf_rank_1 = hipsolverDgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCgeqrf_full_rank(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgeqrf_full_rank = hipsolverCgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCgeqrf_rank_0(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgeqrf_rank_0 = hipsolverCgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverCgeqrf_rank_1(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgeqrf_rank_1 = hipsolverCgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZgeqrf_full_rank(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgeqrf_full_rank = hipsolverZgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZgeqrf_rank_0(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgeqrf_rank_0 = hipsolverZgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverZgeqrf_rank_1(handle,m,n,A,lda,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgeqrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgeqrf_rank_1 = hipsolverZgeqrf_(handle,m,n,c_loc(A),lda,tau,work,lwork,devInfo) end function function hipsolverSSgesv_bufferSize_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:,:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverSSgesv_bufferSize_full_rank = hipsolverSSgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverSSgesv_bufferSize_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverSSgesv_bufferSize_rank_0 = hipsolverSSgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverSSgesv_bufferSize_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverSSgesv_bufferSize_rank_1 = hipsolverSSgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverDDgesv_bufferSize_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:,:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverDDgesv_bufferSize_full_rank = hipsolverDDgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverDDgesv_bufferSize_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverDDgesv_bufferSize_rank_0 = hipsolverDDgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverDDgesv_bufferSize_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverDDgesv_bufferSize_rank_1 = hipsolverDDgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverCCgesv_bufferSize_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:,:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverCCgesv_bufferSize_full_rank = hipsolverCCgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverCCgesv_bufferSize_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex),target :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverCCgesv_bufferSize_rank_0 = hipsolverCCgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverCCgesv_bufferSize_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverCCgesv_bufferSize_rank_1 = hipsolverCCgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverZZgesv_bufferSize_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:,:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverZZgesv_bufferSize_full_rank = hipsolverZZgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverZZgesv_bufferSize_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex),target :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverZZgesv_bufferSize_rank_0 = hipsolverZZgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverZZgesv_bufferSize_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:) :: X integer(c_int) :: ldx integer(c_size_t) :: lwork ! hipsolverZZgesv_bufferSize_rank_1 = hipsolverZZgesv_bufferSize_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,lwork) end function function hipsolverSSgesv_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:,:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverSSgesv_full_rank = hipsolverSSgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverSSgesv_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverSSgesv_rank_0 = hipsolverSSgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverSSgesv_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSSgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverSSgesv_rank_1 = hipsolverSSgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverDDgesv_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:,:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverDDgesv_full_rank = hipsolverDDgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverDDgesv_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverDDgesv_rank_0 = hipsolverDDgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverDDgesv_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDDgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverDDgesv_rank_1 = hipsolverDDgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverCCgesv_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:,:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverCCgesv_full_rank = hipsolverCCgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverCCgesv_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex),target :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverCCgesv_rank_0 = hipsolverCCgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverCCgesv_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCCgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex),target,dimension(:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverCCgesv_rank_1 = hipsolverCCgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverZZgesv_full_rank(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_full_rank type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:,:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverZZgesv_full_rank = hipsolverZZgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverZZgesv_rank_0(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex),target :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverZZgesv_rank_0 = hipsolverZZgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverZZgesv_rank_1(handle,n,nrhs,A,lda,devIpiv,B,ldb,X,ldx,work,lwork,niters,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZZgesv_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex),target,dimension(:) :: X integer(c_int) :: ldx type(c_ptr) :: work integer(c_size_t) :: lwork type(c_ptr) :: niters integer(c_int) :: devInfo ! hipsolverZZgesv_rank_1 = hipsolverZZgesv_(handle,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,c_loc(X),ldx,work,lwork,niters,devInfo) end function function hipsolverSgetrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSgetrf_bufferSize_full_rank = hipsolverSgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverSgetrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSgetrf_bufferSize_rank_0 = hipsolverSgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverSgetrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSgetrf_bufferSize_rank_1 = hipsolverSgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverDgetrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDgetrf_bufferSize_full_rank = hipsolverDgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverDgetrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDgetrf_bufferSize_rank_0 = hipsolverDgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverDgetrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDgetrf_bufferSize_rank_1 = hipsolverDgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverCgetrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCgetrf_bufferSize_full_rank = hipsolverCgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverCgetrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCgetrf_bufferSize_rank_0 = hipsolverCgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverCgetrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCgetrf_bufferSize_rank_1 = hipsolverCgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverZgetrf_bufferSize_full_rank(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZgetrf_bufferSize_full_rank = hipsolverZgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverZgetrf_bufferSize_rank_0(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZgetrf_bufferSize_rank_0 = hipsolverZgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverZgetrf_bufferSize_rank_1(handle,m,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZgetrf_bufferSize_rank_1 = hipsolverZgetrf_bufferSize_(handle,m,n,c_loc(A),lda,lwork) end function function hipsolverSgetrf_full_rank(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverSgetrf_full_rank = hipsolverSgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverSgetrf_rank_0(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target :: devIpiv integer(c_int) :: devInfo ! hipsolverSgetrf_rank_0 = hipsolverSgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverSgetrf_rank_1(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverSgetrf_rank_1 = hipsolverSgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverDgetrf_full_rank(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverDgetrf_full_rank = hipsolverDgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverDgetrf_rank_0(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target :: devIpiv integer(c_int) :: devInfo ! hipsolverDgetrf_rank_0 = hipsolverDgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverDgetrf_rank_1(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverDgetrf_rank_1 = hipsolverDgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverCgetrf_full_rank(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverCgetrf_full_rank = hipsolverCgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverCgetrf_rank_0(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target :: devIpiv integer(c_int) :: devInfo ! hipsolverCgetrf_rank_0 = hipsolverCgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverCgetrf_rank_1(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverCgetrf_rank_1 = hipsolverCgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverZgetrf_full_rank(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverZgetrf_full_rank = hipsolverZgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverZgetrf_rank_0(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target :: devIpiv integer(c_int) :: devInfo ! hipsolverZgetrf_rank_0 = hipsolverZgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverZgetrf_rank_1(handle,m,n,A,lda,work,lwork,devIpiv,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrf_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int),target,dimension(:) :: devIpiv integer(c_int) :: devInfo ! hipsolverZgetrf_rank_1 = hipsolverZgetrf_(handle,m,n,c_loc(A),lda,work,lwork,c_loc(devIpiv),devInfo) end function function hipsolverSgetrs_bufferSize_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverSgetrs_bufferSize_full_rank = hipsolverSgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverSgetrs_bufferSize_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverSgetrs_bufferSize_rank_0 = hipsolverSgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverSgetrs_bufferSize_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverSgetrs_bufferSize_rank_1 = hipsolverSgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverDgetrs_bufferSize_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverDgetrs_bufferSize_full_rank = hipsolverDgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverDgetrs_bufferSize_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverDgetrs_bufferSize_rank_0 = hipsolverDgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverDgetrs_bufferSize_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverDgetrs_bufferSize_rank_1 = hipsolverDgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverCgetrs_bufferSize_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverCgetrs_bufferSize_full_rank = hipsolverCgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverCgetrs_bufferSize_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverCgetrs_bufferSize_rank_0 = hipsolverCgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverCgetrs_bufferSize_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverCgetrs_bufferSize_rank_1 = hipsolverCgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverZgetrs_bufferSize_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverZgetrs_bufferSize_full_rank = hipsolverZgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverZgetrs_bufferSize_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverZgetrs_bufferSize_rank_0 = hipsolverZgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverZgetrs_bufferSize_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverZgetrs_bufferSize_rank_1 = hipsolverZgetrs_bufferSize_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,lwork) end function function hipsolverSgetrs_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgetrs_full_rank = hipsolverSgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverSgetrs_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgetrs_rank_0 = hipsolverSgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverSgetrs_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSgetrs_rank_1 = hipsolverSgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverDgetrs_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgetrs_full_rank = hipsolverDgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverDgetrs_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgetrs_rank_0 = hipsolverDgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverDgetrs_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDgetrs_rank_1 = hipsolverDgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverCgetrs_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgetrs_full_rank = hipsolverCgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverCgetrs_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgetrs_rank_0 = hipsolverCgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverCgetrs_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCgetrs_rank_1 = hipsolverCgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverZgetrs_full_rank(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgetrs_full_rank = hipsolverZgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverZgetrs_rank_0(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int),target :: devIpiv complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgetrs_rank_0 = hipsolverZgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverZgetrs_rank_1(handle,trans,n,nrhs,A,lda,devIpiv,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZgetrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_OP_N)) :: trans integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int),target,dimension(:) :: devIpiv complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZgetrs_rank_1 = hipsolverZgetrs_(handle,trans,n,nrhs,c_loc(A),lda,c_loc(devIpiv),c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverSpotrf_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSpotrf_bufferSize_full_rank = hipsolverSpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverSpotrf_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSpotrf_bufferSize_rank_0 = hipsolverSpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverSpotrf_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSpotrf_bufferSize_rank_1 = hipsolverSpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverDpotrf_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDpotrf_bufferSize_full_rank = hipsolverDpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverDpotrf_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDpotrf_bufferSize_rank_0 = hipsolverDpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverDpotrf_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDpotrf_bufferSize_rank_1 = hipsolverDpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverCpotrf_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCpotrf_bufferSize_full_rank = hipsolverCpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverCpotrf_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCpotrf_bufferSize_rank_0 = hipsolverCpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverCpotrf_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCpotrf_bufferSize_rank_1 = hipsolverCpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverZpotrf_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZpotrf_bufferSize_full_rank = hipsolverZpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverZpotrf_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZpotrf_bufferSize_rank_0 = hipsolverZpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverZpotrf_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZpotrf_bufferSize_rank_1 = hipsolverZpotrf_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverSpotrf_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotrf_full_rank = hipsolverSpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverSpotrf_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotrf_rank_0 = hipsolverSpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverSpotrf_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotrf_rank_1 = hipsolverSpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverDpotrf_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotrf_full_rank = hipsolverDpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverDpotrf_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotrf_rank_0 = hipsolverDpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverDpotrf_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotrf_rank_1 = hipsolverDpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverCpotrf_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotrf_full_rank = hipsolverCpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverCpotrf_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotrf_rank_0 = hipsolverCpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverCpotrf_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotrf_rank_1 = hipsolverCpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverZpotrf_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotrf_full_rank = hipsolverZpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverZpotrf_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotrf_rank_0 = hipsolverZpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverZpotrf_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotrf_rank_1 = hipsolverZpotrf_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverSpotrfBatched_bufferSize_full_rank(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverSpotrfBatched_bufferSize_full_rank = hipsolverSpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverSpotrfBatched_bufferSize_rank_0(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverSpotrfBatched_bufferSize_rank_0 = hipsolverSpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverSpotrfBatched_bufferSize_rank_1(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverSpotrfBatched_bufferSize_rank_1 = hipsolverSpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverDpotrfBatched_bufferSize_full_rank(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverDpotrfBatched_bufferSize_full_rank = hipsolverDpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverDpotrfBatched_bufferSize_rank_0(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverDpotrfBatched_bufferSize_rank_0 = hipsolverDpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverDpotrfBatched_bufferSize_rank_1(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverDpotrfBatched_bufferSize_rank_1 = hipsolverDpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverCpotrfBatched_bufferSize_full_rank(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverCpotrfBatched_bufferSize_full_rank = hipsolverCpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverCpotrfBatched_bufferSize_rank_0(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverCpotrfBatched_bufferSize_rank_0 = hipsolverCpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverCpotrfBatched_bufferSize_rank_1(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverCpotrfBatched_bufferSize_rank_1 = hipsolverCpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverZpotrfBatched_bufferSize_full_rank(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverZpotrfBatched_bufferSize_full_rank = hipsolverZpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverZpotrfBatched_bufferSize_rank_0(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverZpotrfBatched_bufferSize_rank_0 = hipsolverZpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverZpotrfBatched_bufferSize_rank_1(handle,uplo,n,A,lda,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverZpotrfBatched_bufferSize_rank_1 = hipsolverZpotrfBatched_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork,batch_count) end function function hipsolverSpotrfBatched_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverSpotrfBatched_full_rank = hipsolverSpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverSpotrfBatched_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverSpotrfBatched_rank_0 = hipsolverSpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverSpotrfBatched_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrfBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverSpotrfBatched_rank_1 = hipsolverSpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverDpotrfBatched_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverDpotrfBatched_full_rank = hipsolverDpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverDpotrfBatched_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverDpotrfBatched_rank_0 = hipsolverDpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverDpotrfBatched_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrfBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverDpotrfBatched_rank_1 = hipsolverDpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverCpotrfBatched_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverCpotrfBatched_full_rank = hipsolverCpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverCpotrfBatched_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverCpotrfBatched_rank_0 = hipsolverCpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverCpotrfBatched_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrfBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverCpotrfBatched_rank_1 = hipsolverCpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverZpotrfBatched_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverZpotrfBatched_full_rank = hipsolverZpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverZpotrfBatched_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverZpotrfBatched_rank_0 = hipsolverZpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverZpotrfBatched_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrfBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverZpotrfBatched_rank_1 = hipsolverZpotrfBatched_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo,batch_count) end function function hipsolverSpotri_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSpotri_bufferSize_full_rank = hipsolverSpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverSpotri_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSpotri_bufferSize_rank_0 = hipsolverSpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverSpotri_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSpotri_bufferSize_rank_1 = hipsolverSpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverDpotri_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDpotri_bufferSize_full_rank = hipsolverDpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverDpotri_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDpotri_bufferSize_rank_0 = hipsolverDpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverDpotri_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDpotri_bufferSize_rank_1 = hipsolverDpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverCpotri_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCpotri_bufferSize_full_rank = hipsolverCpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverCpotri_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCpotri_bufferSize_rank_0 = hipsolverCpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverCpotri_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCpotri_bufferSize_rank_1 = hipsolverCpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverZpotri_bufferSize_full_rank(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZpotri_bufferSize_full_rank = hipsolverZpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverZpotri_bufferSize_rank_0(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZpotri_bufferSize_rank_0 = hipsolverZpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverZpotri_bufferSize_rank_1(handle,uplo,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZpotri_bufferSize_rank_1 = hipsolverZpotri_bufferSize_(handle,uplo,n,c_loc(A),lda,lwork) end function function hipsolverSpotri_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotri_full_rank = hipsolverSpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverSpotri_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotri_rank_0 = hipsolverSpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverSpotri_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotri_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotri_rank_1 = hipsolverSpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverDpotri_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotri_full_rank = hipsolverDpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverDpotri_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotri_rank_0 = hipsolverDpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverDpotri_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotri_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotri_rank_1 = hipsolverDpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverCpotri_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotri_full_rank = hipsolverCpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverCpotri_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotri_rank_0 = hipsolverCpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverCpotri_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotri_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotri_rank_1 = hipsolverCpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverZpotri_full_rank(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotri_full_rank = hipsolverZpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverZpotri_rank_0(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotri_rank_0 = hipsolverZpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverZpotri_rank_1(handle,uplo,n,A,lda,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotri_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotri_rank_1 = hipsolverZpotri_(handle,uplo,n,c_loc(A),lda,work,lwork,devInfo) end function function hipsolverSpotrs_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverSpotrs_bufferSize_full_rank = hipsolverSpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverSpotrs_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverSpotrs_bufferSize_rank_0 = hipsolverSpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverSpotrs_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverSpotrs_bufferSize_rank_1 = hipsolverSpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverDpotrs_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverDpotrs_bufferSize_full_rank = hipsolverDpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverDpotrs_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverDpotrs_bufferSize_rank_0 = hipsolverDpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverDpotrs_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverDpotrs_bufferSize_rank_1 = hipsolverDpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverCpotrs_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverCpotrs_bufferSize_full_rank = hipsolverCpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverCpotrs_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverCpotrs_bufferSize_rank_0 = hipsolverCpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverCpotrs_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverCpotrs_bufferSize_rank_1 = hipsolverCpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverZpotrs_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverZpotrs_bufferSize_full_rank = hipsolverZpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverZpotrs_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverZpotrs_bufferSize_rank_0 = hipsolverZpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverZpotrs_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork ! hipsolverZpotrs_bufferSize_rank_1 = hipsolverZpotrs_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork) end function function hipsolverSpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotrs_full_rank = hipsolverSpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverSpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotrs_rank_0 = hipsolverSpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverSpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSpotrs_rank_1 = hipsolverSpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverDpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotrs_full_rank = hipsolverDpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverDpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotrs_rank_0 = hipsolverDpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverDpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDpotrs_rank_1 = hipsolverDpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverCpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotrs_full_rank = hipsolverCpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverCpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotrs_rank_0 = hipsolverCpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverCpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCpotrs_rank_1 = hipsolverCpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverZpotrs_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotrs_full_rank = hipsolverZpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverZpotrs_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotrs_rank_0 = hipsolverZpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverZpotrs_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrs_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZpotrs_rank_1 = hipsolverZpotrs_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo) end function function hipsolverSpotrsBatched_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverSpotrsBatched_bufferSize_full_rank = hipsolverSpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverSpotrsBatched_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverSpotrsBatched_bufferSize_rank_0 = hipsolverSpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverSpotrsBatched_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverSpotrsBatched_bufferSize_rank_1 = hipsolverSpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverDpotrsBatched_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverDpotrsBatched_bufferSize_full_rank = hipsolverDpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverDpotrsBatched_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverDpotrsBatched_bufferSize_rank_0 = hipsolverDpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverDpotrsBatched_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverDpotrsBatched_bufferSize_rank_1 = hipsolverDpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverCpotrsBatched_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverCpotrsBatched_bufferSize_full_rank = hipsolverCpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverCpotrsBatched_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverCpotrsBatched_bufferSize_rank_0 = hipsolverCpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverCpotrsBatched_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverCpotrsBatched_bufferSize_rank_1 = hipsolverCpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverZpotrsBatched_bufferSize_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverZpotrsBatched_bufferSize_full_rank = hipsolverZpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverZpotrsBatched_bufferSize_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverZpotrsBatched_bufferSize_rank_0 = hipsolverZpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverZpotrsBatched_bufferSize_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,lwork,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_int) :: lwork integer(c_int) :: batch_count ! hipsolverZpotrsBatched_bufferSize_rank_1 = hipsolverZpotrsBatched_bufferSize_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,lwork,batch_count) end function function hipsolverSpotrsBatched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverSpotrsBatched_full_rank = hipsolverSpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverSpotrsBatched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverSpotrsBatched_rank_0 = hipsolverSpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverSpotrsBatched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSpotrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverSpotrsBatched_rank_1 = hipsolverSpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverDpotrsBatched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:,:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverDpotrsBatched_full_rank = hipsolverDpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverDpotrsBatched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverDpotrsBatched_rank_0 = hipsolverDpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverDpotrsBatched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDpotrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverDpotrsBatched_rank_1 = hipsolverDpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverCpotrsBatched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverCpotrsBatched_full_rank = hipsolverCpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverCpotrsBatched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverCpotrsBatched_rank_0 = hipsolverCpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverCpotrsBatched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCpotrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverCpotrsBatched_rank_1 = hipsolverCpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverZpotrsBatched_full_rank(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:,:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:,:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverZpotrsBatched_full_rank = hipsolverZpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverZpotrsBatched_rank_0(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverZpotrsBatched_rank_0 = hipsolverZpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverZpotrsBatched_rank_1(handle,uplo,n,nrhs,A,lda,B,ldb,work,lwork,devInfo,batch_count) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZpotrsBatched_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n integer(c_int) :: nrhs complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo integer(c_int) :: batch_count ! hipsolverZpotrsBatched_rank_1 = hipsolverZpotrsBatched_(handle,uplo,n,nrhs,c_loc(A),lda,c_loc(B),ldb,work,lwork,devInfo,batch_count) end function function hipsolverSsyevd_bufferSize_full_rank(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverSsyevd_bufferSize_full_rank = hipsolverSsyevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverSsyevd_bufferSize_rank_0(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int) :: lwork ! hipsolverSsyevd_bufferSize_rank_0 = hipsolverSsyevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverSsyevd_bufferSize_rank_1(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverSsyevd_bufferSize_rank_1 = hipsolverSsyevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverDsyevd_bufferSize_full_rank(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverDsyevd_bufferSize_full_rank = hipsolverDsyevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverDsyevd_bufferSize_rank_0(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int) :: lwork ! hipsolverDsyevd_bufferSize_rank_0 = hipsolverDsyevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverDsyevd_bufferSize_rank_1(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverDsyevd_bufferSize_rank_1 = hipsolverDsyevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverCheevd_bufferSize_full_rank(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverCheevd_bufferSize_full_rank = hipsolverCheevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverCheevd_bufferSize_rank_0(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D integer(c_int) :: lwork ! hipsolverCheevd_bufferSize_rank_0 = hipsolverCheevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverCheevd_bufferSize_rank_1(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverCheevd_bufferSize_rank_1 = hipsolverCheevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverZheevd_bufferSize_full_rank(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverZheevd_bufferSize_full_rank = hipsolverZheevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverZheevd_bufferSize_rank_0(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D integer(c_int) :: lwork ! hipsolverZheevd_bufferSize_rank_0 = hipsolverZheevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverZheevd_bufferSize_rank_1(handle,jobz,uplo,n,A,lda,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverZheevd_bufferSize_rank_1 = hipsolverZheevd_bufferSize_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),lwork) end function function hipsolverSsyevd_full_rank(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsyevd_full_rank = hipsolverSsyevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverSsyevd_rank_0(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsyevd_rank_0 = hipsolverSsyevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverSsyevd_rank_1(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsyevd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsyevd_rank_1 = hipsolverSsyevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverDsyevd_full_rank(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsyevd_full_rank = hipsolverDsyevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverDsyevd_rank_0(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsyevd_rank_0 = hipsolverDsyevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverDsyevd_rank_1(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsyevd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsyevd_rank_1 = hipsolverDsyevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverCheevd_full_rank(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCheevd_full_rank = hipsolverCheevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverCheevd_rank_0(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCheevd_rank_0 = hipsolverCheevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverCheevd_rank_1(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCheevd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCheevd_rank_1 = hipsolverCheevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverZheevd_full_rank(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZheevd_full_rank = hipsolverZheevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverZheevd_rank_0(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZheevd_rank_0 = hipsolverZheevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverZheevd_rank_1(handle,jobz,uplo,n,A,lda,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZheevd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZheevd_rank_1 = hipsolverZheevd_(handle,jobz,uplo,n,c_loc(A),lda,c_loc(D),work,lwork,devInfo) end function function hipsolverSsygvd_bufferSize_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverSsygvd_bufferSize_full_rank = hipsolverSsygvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverSsygvd_bufferSize_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: D integer(c_int) :: lwork ! hipsolverSsygvd_bufferSize_rank_0 = hipsolverSsygvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverSsygvd_bufferSize_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverSsygvd_bufferSize_rank_1 = hipsolverSsygvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverDsygvd_bufferSize_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverDsygvd_bufferSize_full_rank = hipsolverDsygvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverDsygvd_bufferSize_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: D integer(c_int) :: lwork ! hipsolverDsygvd_bufferSize_rank_0 = hipsolverDsygvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverDsygvd_bufferSize_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverDsygvd_bufferSize_rank_1 = hipsolverDsygvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverChegvd_bufferSize_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverChegvd_bufferSize_full_rank = hipsolverChegvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverChegvd_bufferSize_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float),target :: D integer(c_int) :: lwork ! hipsolverChegvd_bufferSize_rank_0 = hipsolverChegvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverChegvd_bufferSize_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverChegvd_bufferSize_rank_1 = hipsolverChegvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverZhegvd_bufferSize_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverZhegvd_bufferSize_full_rank = hipsolverZhegvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverZhegvd_bufferSize_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double),target :: D integer(c_int) :: lwork ! hipsolverZhegvd_bufferSize_rank_0 = hipsolverZhegvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverZhegvd_bufferSize_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D integer(c_int) :: lwork ! hipsolverZhegvd_bufferSize_rank_1 = hipsolverZhegvd_bufferSize_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),lwork) end function function hipsolverSsygvd_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsygvd_full_rank = hipsolverSsygvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverSsygvd_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: B integer(c_int) :: ldb real(c_float),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsygvd_rank_0 = hipsolverSsygvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverSsygvd_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsygvd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsygvd_rank_1 = hipsolverSsygvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverDsygvd_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsygvd_full_rank = hipsolverDsygvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverDsygvd_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: B integer(c_int) :: ldb real(c_double),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsygvd_rank_0 = hipsolverDsygvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverDsygvd_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsygvd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsygvd_rank_1 = hipsolverDsygvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverChegvd_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverChegvd_full_rank = hipsolverChegvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverChegvd_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda complex(c_float_complex),target :: B integer(c_int) :: ldb real(c_float),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverChegvd_rank_0 = hipsolverChegvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverChegvd_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChegvd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_float),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverChegvd_rank_1 = hipsolverChegvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverZhegvd_full_rank(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZhegvd_full_rank = hipsolverZhegvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverZhegvd_rank_0(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda complex(c_double_complex),target :: B integer(c_int) :: ldb real(c_double),target :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZhegvd_rank_0 = hipsolverZhegvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverZhegvd_rank_1(handle,itype,jobz,uplo,n,A,lda,B,ldb,D,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhegvd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_EIG_TYPE_1)) :: itype integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb real(c_double),target,dimension(:) :: D type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZhegvd_rank_1 = hipsolverZhegvd_(handle,itype,jobz,uplo,n,c_loc(A),lda,c_loc(B),ldb,c_loc(D),work,lwork,devInfo) end function function hipsolverSsytrd_bufferSize_full_rank(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSsytrd_bufferSize_full_rank = hipsolverSsytrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverSsytrd_bufferSize_rank_0(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSsytrd_bufferSize_rank_0 = hipsolverSsytrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverSsytrd_bufferSize_rank_1(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau integer(c_int) :: lwork ! hipsolverSsytrd_bufferSize_rank_1 = hipsolverSsytrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverDsytrd_bufferSize_full_rank(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDsytrd_bufferSize_full_rank = hipsolverDsytrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverDsytrd_bufferSize_rank_0(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDsytrd_bufferSize_rank_0 = hipsolverDsytrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverDsytrd_bufferSize_rank_1(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau integer(c_int) :: lwork ! hipsolverDsytrd_bufferSize_rank_1 = hipsolverDsytrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverChetrd_bufferSize_full_rank(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverChetrd_bufferSize_full_rank = hipsolverChetrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverChetrd_bufferSize_rank_0(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverChetrd_bufferSize_rank_0 = hipsolverChetrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverChetrd_bufferSize_rank_1(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau integer(c_int) :: lwork ! hipsolverChetrd_bufferSize_rank_1 = hipsolverChetrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverZhetrd_bufferSize_full_rank(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_bufferSize_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZhetrd_bufferSize_full_rank = hipsolverZhetrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverZhetrd_bufferSize_rank_0(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_bufferSize_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZhetrd_bufferSize_rank_0 = hipsolverZhetrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverZhetrd_bufferSize_rank_1(handle,uplo,n,A,lda,D,E,tau,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_bufferSize_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau integer(c_int) :: lwork ! hipsolverZhetrd_bufferSize_rank_1 = hipsolverZhetrd_bufferSize_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,lwork) end function function hipsolverSsytrd_full_rank(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsytrd_full_rank = hipsolverSsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverSsytrd_rank_0(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsytrd_rank_0 = hipsolverSsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverSsytrd_rank_1(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E real(c_float) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsytrd_rank_1 = hipsolverSsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverDsytrd_full_rank(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsytrd_full_rank = hipsolverDsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverDsytrd_rank_0(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsytrd_rank_0 = hipsolverDsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverDsytrd_rank_1(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E real(c_double) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsytrd_rank_1 = hipsolverDsytrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverChetrd_full_rank(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverChetrd_full_rank = hipsolverChetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverChetrd_rank_0(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda real(c_float),target :: D real(c_float),target :: E complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverChetrd_rank_0 = hipsolverChetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverChetrd_rank_1(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverChetrd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_float),target,dimension(:) :: D real(c_float),target,dimension(:) :: E complex(c_float_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverChetrd_rank_1 = hipsolverChetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverZhetrd_full_rank(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZhetrd_full_rank = hipsolverZhetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverZhetrd_rank_0(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda real(c_double),target :: D real(c_double),target :: E complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZhetrd_rank_0 = hipsolverZhetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverZhetrd_rank_1(handle,uplo,n,A,lda,D,E,tau,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZhetrd_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda real(c_double),target,dimension(:) :: D real(c_double),target,dimension(:) :: E complex(c_double_complex) :: tau type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZhetrd_rank_1 = hipsolverZhetrd_(handle,uplo,n,c_loc(A),lda,c_loc(D),c_loc(E),tau,work,lwork,devInfo) end function function hipsolverSsytrf_bufferSize_full_rank(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSsytrf_bufferSize_full_rank = hipsolverSsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverSsytrf_bufferSize_rank_0(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSsytrf_bufferSize_rank_0 = hipsolverSsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverSsytrf_bufferSize_rank_1(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverSsytrf_bufferSize_rank_1 = hipsolverSsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverDsytrf_bufferSize_full_rank(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDsytrf_bufferSize_full_rank = hipsolverDsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverDsytrf_bufferSize_rank_0(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDsytrf_bufferSize_rank_0 = hipsolverDsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverDsytrf_bufferSize_rank_1(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverDsytrf_bufferSize_rank_1 = hipsolverDsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverCsytrf_bufferSize_full_rank(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCsytrf_bufferSize_full_rank = hipsolverCsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverCsytrf_bufferSize_rank_0(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCsytrf_bufferSize_rank_0 = hipsolverCsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverCsytrf_bufferSize_rank_1(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverCsytrf_bufferSize_rank_1 = hipsolverCsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverZsytrf_bufferSize_full_rank(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_bufferSize_full_rank type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZsytrf_bufferSize_full_rank = hipsolverZsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverZsytrf_bufferSize_rank_0(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_bufferSize_rank_0 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZsytrf_bufferSize_rank_0 = hipsolverZsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverZsytrf_bufferSize_rank_1(handle,n,A,lda,lwork) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_bufferSize_rank_1 type(c_ptr) :: handle integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: lwork ! hipsolverZsytrf_bufferSize_rank_1 = hipsolverZsytrf_bufferSize_(handle,n,c_loc(A),lda,lwork) end function function hipsolverSsytrf_full_rank(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsytrf_full_rank = hipsolverSsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverSsytrf_rank_0(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsytrf_rank_0 = hipsolverSsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverSsytrf_rank_1(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverSsytrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverSsytrf_rank_1 = hipsolverSsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverDsytrf_full_rank(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsytrf_full_rank = hipsolverDsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverDsytrf_rank_0(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsytrf_rank_0 = hipsolverDsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverDsytrf_rank_1(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDsytrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverDsytrf_rank_1 = hipsolverDsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverCsytrf_full_rank(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCsytrf_full_rank = hipsolverCsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverCsytrf_rank_0(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCsytrf_rank_0 = hipsolverCsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverCsytrf_rank_1(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverCsytrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverCsytrf_rank_1 = hipsolverCsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverZsytrf_full_rank(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_full_rank type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZsytrf_full_rank = hipsolverZsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverZsytrf_rank_0(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_rank_0 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZsytrf_rank_0 = hipsolverZsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function function hipsolverZsytrf_rank_1(handle,uplo,n,A,lda,ipiv,work,lwork,devInfo) use iso_c_binding use hipfort_hipsolver_enums implicit none integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverZsytrf_rank_1 type(c_ptr) :: handle integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo integer(c_int) :: n complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: ipiv type(c_ptr) :: work integer(c_int) :: lwork integer(c_int) :: devInfo ! hipsolverZsytrf_rank_1 = hipsolverZsytrf_(handle,uplo,n,c_loc(A),lda,ipiv,work,lwork,devInfo) end function #endif end module hipfort_hipsolver hipfort-7.2.4/lib/hipfort/hipfort_rocsparse.F900000664000175000017500000466665115207260635021656 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocsparse use hipfort_rocsparse_enums implicit none !> \ingroup aux_module !> \brief Create a rocsparse handle !> !> \details !> \p rocsparse_create_handle creates the rocSPARSE library context. It must be !> initialized before any other rocSPARSE API function is invoked and must be passed to !> all subsequent library function calls. The handle should be destroyed at the end !> using rocsparse_destroy_handle(). !> !> @param[out] !> handle the pointer to the handle to the rocSPARSE library context. !> !> \retval rocsparse_status_success the initialization succeeded. !> \retval rocsparse_status_invalid_handle \p handle pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_create_handle function rocsparse_create_handle_(handle) bind(c, name="rocsparse_create_handle") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_handle_ type(c_ptr) :: handle end function end interface !> \ingroup aux_module !> \brief Destroy a rocsparse handle !> !> \details !> \p rocsparse_destroy_handle destroys the rocSPARSE library context and releases all !> resources used by the rocSPARSE library. !> !> @param[in] !> handle the handle to the rocSPARSE library context. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_destroy_handle function rocsparse_destroy_handle_(handle) bind(c, name="rocsparse_destroy_handle") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_handle_ type(c_ptr),value :: handle end function end interface !> \ingroup aux_module !> \brief Specify user defined HIP stream !> !> \details !> \p rocsparse_set_stream specifies the stream to be used by the rocSPARSE library !> context and all subsequent function calls. !> !> @param[inout] !> handle the handle to the rocSPARSE library context. !> @param[in] !> stream the stream to be used by the rocSPARSE library context. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. !> !> \par Example !> This example illustrates, how a user defined stream can be used in rocSPARSE. !> \code{.c} !> / Create rocSPARSE handle !> rocsparse_handle handle; !> rocsparse_create_handle(&handle); !> !> / Create stream !> hipStream_t stream; !> hipStreamCreate(&stream); !> !> / Set stream to rocSPARSE handle !> rocsparse_set_stream(handle, stream); !> !> / Do some work !> / ... !> !> / Clean up !> rocsparse_destroy_handle(handle); !> hipStreamDestroy(stream); !> \endcode interface rocsparse_set_stream function rocsparse_set_stream_(handle,stream) bind(c, name="rocsparse_set_stream") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_set_stream_ type(c_ptr),value :: handle type(c_ptr),value :: stream end function end interface !> \ingroup aux_module !> \brief Get current stream from library context !> !> \details !> \p rocsparse_get_stream gets the rocSPARSE library context stream which is currently !> used for all subsequent function calls. !> !> @param[in] !> handle the handle to the rocSPARSE library context. !> @param[out] !> stream the stream currently used by the rocSPARSE library context. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. interface rocsparse_get_stream function rocsparse_get_stream_(handle,stream) bind(c, name="rocsparse_get_stream") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_get_stream_ type(c_ptr),value :: handle type(c_ptr) :: stream end function end interface !> \ingroup aux_module !> \brief Specify pointer mode !> !> \details !> \p rocsparse_set_pointer_mode specifies the pointer mode to be used by the rocSPARSE !> library context and all subsequent function calls. By default, all values are passed !> by reference on the host. Valid pointer modes are \p rocsparse_pointer_mode_host !> or \p rocsparse_pointer_mode_device. !> !> @param[in] !> handle the handle to the rocSPARSE library context. !> @param[in] !> pointer_mode the pointer mode to be used by the rocSPARSE library context. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. interface rocsparse_set_pointer_mode function rocsparse_set_pointer_mode_(handle,pointer_mode) bind(c, name="rocsparse_set_pointer_mode") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_set_pointer_mode_ type(c_ptr),value :: handle integer(kind(rocsparse_pointer_mode_host)),value :: pointer_mode end function end interface !> \ingroup aux_module !> \brief Get current pointer mode from library context !> !> \details !> \p rocsparse_get_pointer_mode gets the rocSPARSE library context pointer mode which !> is currently used for all subsequent function calls. !> !> @param[in] !> handle the handle to the rocSPARSE library context. !> @param[out] !> pointer_mode the pointer mode that is currently used by the rocSPARSE library !> context. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. interface rocsparse_get_pointer_mode function rocsparse_get_pointer_mode_(handle,pointer_mode) bind(c, name="rocsparse_get_pointer_mode") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_get_pointer_mode_ type(c_ptr),value :: handle type(c_ptr),value :: pointer_mode end function end interface !> \ingroup aux_module !> \brief Get rocSPARSE version !> !> \details !> \p rocsparse_get_version gets the rocSPARSE library version number. !> - patch = version % 100 !> - minor = version 100 % 1000 !> - major = version 100000 !> !> @param[in] !> handle the handle to the rocSPARSE library context. !> @param[out] !> version the version number of the rocSPARSE library. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. interface rocsparse_get_version function rocsparse_get_version_(handle,version) bind(c, name="rocsparse_get_version") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_get_version_ type(c_ptr),value :: handle type(c_ptr),value :: version end function end interface !> \ingroup aux_module !> \brief Get rocSPARSE git revision !> !> \details !> \p rocsparse_get_git_rev gets the rocSPARSE library git commit revision (SHA-1). !> !> @param[in] !> handle the handle to the rocSPARSE library context. !> @param[out] !> rev the git commit revision (SHA-1). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle \p handle is invalid. interface rocsparse_get_git_rev function rocsparse_get_git_rev_(handle,rev) bind(c, name="rocsparse_get_git_rev") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_get_git_rev_ type(c_ptr),value :: handle type(c_ptr),value :: rev end function end interface !> \ingroup aux_module !> \brief Create a matrix descriptor !> \details !> \p rocsparse_create_mat_descr creates a matrix descriptor. It initializes !> \p rocsparse_matrix_type to \p rocsparse_matrix_type_general and !> \p rocsparse_index_base to \p rocsparse_index_base_zero. It should be destroyed !> at the end using rocsparse_destroy_mat_descr(). !> !> @param[out] !> descr the pointer to the matrix descriptor. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p descr pointer is invalid. interface rocsparse_create_mat_descr function rocsparse_create_mat_descr_(descr) bind(c, name="rocsparse_create_mat_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_mat_descr_ type(c_ptr) :: descr end function end interface !> \ingroup aux_module !> \brief Copy a matrix descriptor !> \details !> \p rocsparse_copy_mat_descr copies a matrix descriptor. Both, source and destination !> matrix descriptors must be initialized prior to calling \p rocsparse_copy_mat_descr. !> !> @param[out] !> dest the pointer to the destination matrix descriptor. !> @param[in] !> src the pointer to the source matrix descriptor. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p src or \p dest pointer is invalid. interface rocsparse_copy_mat_descr function rocsparse_copy_mat_descr_(dest,src) bind(c, name="rocsparse_copy_mat_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_copy_mat_descr_ type(c_ptr),value :: dest type(c_ptr),value :: src end function end interface !> \ingroup aux_module !> \brief Destroy a matrix descriptor !> !> \details !> \p rocsparse_destroy_mat_descr destroys a matrix descriptor and releases all !> resources used by the descriptor. !> !> @param[in] !> descr the matrix descriptor. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p descr is invalid. interface rocsparse_destroy_mat_descr function rocsparse_destroy_mat_descr_(descr) bind(c, name="rocsparse_destroy_mat_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_mat_descr_ type(c_ptr),value :: descr end function end interface !> \ingroup aux_module !> \brief Specify the index base of a matrix descriptor !> !> \details !> \p rocsparse_set_mat_index_base sets the index base of a matrix descriptor. Valid !> options are \p rocsparse_index_base_zero or \p rocsparse_index_base_one. !> !> @param[inout] !> descr the matrix descriptor. !> @param[in] !> base \p rocsparse_index_base_zero or \p rocsparse_index_base_one. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p descr pointer is invalid. !> \retval rocsparse_status_invalid_value \p base is invalid. interface rocsparse_set_mat_index_base function rocsparse_set_mat_index_base_(descr,base) bind(c, name="rocsparse_set_mat_index_base") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_index_base_ type(c_ptr),value :: descr integer(kind(rocsparse_index_base_zero)),value :: base end function end interface !> \ingroup aux_module !> \brief Specify the matrix type of a matrix descriptor !> !> \details !> \p rocsparse_set_mat_type sets the matrix type of a matrix descriptor. Valid !> matrix types are \p rocsparse_matrix_type_general, !> \p rocsparse_matrix_type_symmetric, \p rocsparse_matrix_type_hermitian or !> \p rocsparse_matrix_type_triangular. !> !> @param[inout] !> descr the matrix descriptor. !> @param[in] !> type \p rocsparse_matrix_type_general, \p rocsparse_matrix_type_symmetric, !> \p rocsparse_matrix_type_hermitian or !> \p rocsparse_matrix_type_triangular. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p descr pointer is invalid. !> \retval rocsparse_status_invalid_value \p type is invalid. interface rocsparse_set_mat_type function rocsparse_set_mat_type_(descr,myType) bind(c, name="rocsparse_set_mat_type") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_type_ type(c_ptr),value :: descr integer(kind(rocsparse_matrix_type_general)),value :: myType end function end interface !> \ingroup aux_module !> \brief Specify the matrix fill mode of a matrix descriptor !> !> \details !> \p rocsparse_set_mat_fill_mode sets the matrix fill mode of a matrix descriptor. !> Valid fill modes are \p rocsparse_fill_mode_lower or !> \p rocsparse_fill_mode_upper. !> !> @param[inout] !> descr the matrix descriptor. !> @param[in] !> fill_mode \p rocsparse_fill_mode_lower or \p rocsparse_fill_mode_upper. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p descr pointer is invalid. !> \retval rocsparse_status_invalid_value \p fill_mode is invalid. interface rocsparse_set_mat_fill_mode function rocsparse_set_mat_fill_mode_(descr,fill_mode) bind(c, name="rocsparse_set_mat_fill_mode") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_fill_mode_ type(c_ptr),value :: descr integer(kind(rocsparse_fill_mode_lower)),value :: fill_mode end function end interface !> \ingroup aux_module !> \brief Specify the matrix diagonal type of a matrix descriptor !> !> \details !> \p rocsparse_set_mat_diag_type sets the matrix diagonal type of a matrix !> descriptor. Valid diagonal types are \p rocsparse_diag_type_unit or !> \p rocsparse_diag_type_non_unit. !> !> @param[inout] !> descr the matrix descriptor. !> @param[in] !> diag_type \p rocsparse_diag_type_unit or \p rocsparse_diag_type_non_unit. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p descr pointer is invalid. !> \retval rocsparse_status_invalid_value \p diag_type is invalid. interface rocsparse_set_mat_diag_type function rocsparse_set_mat_diag_type_(descr,diag_type) bind(c, name="rocsparse_set_mat_diag_type") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_diag_type_ type(c_ptr),value :: descr integer(kind(rocsparse_diag_type_non_unit)),value :: diag_type end function end interface !> \ingroup aux_module !> \brief Create a \p HYB matrix structure !> !> \details !> \p rocsparse_create_hyb_mat creates a structure that holds the matrix in \p HYB !> storage format. It should be destroyed at the end using rocsparse_destroy_hyb_mat(). !> !> @param[inout] !> hyb the pointer to the hybrid matrix. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p hyb pointer is invalid. interface rocsparse_create_hyb_mat function rocsparse_create_hyb_mat_(hyb) bind(c, name="rocsparse_create_hyb_mat") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_hyb_mat_ type(c_ptr) :: hyb end function end interface !> \ingroup aux_module !> \brief Destroy a \p HYB matrix structure !> !> \details !> \p rocsparse_destroy_hyb_mat destroys a \p HYB structure. !> !> @param[in] !> hyb the hybrid matrix structure. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p hyb pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_destroy_hyb_mat function rocsparse_destroy_hyb_mat_(hyb) bind(c, name="rocsparse_destroy_hyb_mat") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_hyb_mat_ type(c_ptr),value :: hyb end function end interface !> \ingroup aux_module !> \brief Create a matrix info structure !> !> \details !> \p rocsparse_create_mat_info creates a structure that holds the matrix info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using rocsparse_destroy_mat_info(). !> !> @param[inout] !> info the pointer to the info structure. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. interface rocsparse_create_mat_info function rocsparse_create_mat_info_(myInfo) bind(c, name="rocsparse_create_mat_info") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_mat_info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a matrix info structure !> !> \details !> \p rocsparse_destroy_mat_info destroys a matrix info structure. !> !> @param[in] !> info the info structure. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_destroy_mat_info function rocsparse_destroy_mat_info_(myInfo) bind(c, name="rocsparse_destroy_mat_info") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_mat_info_ type(c_ptr),value :: myInfo end function end interface !> \ingroup aux_module !> \brief Create a color info structure !> !> \details !> \p rocsparse_create_color_info creates a structure that holds the color info data !> that is gathered during the analysis routines available. It should be destroyed !> at the end using rocsparse_destroy_color_info(). !> !> @param[inout] !> info the pointer to the info structure. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. interface rocsparse_create_color_info function rocsparse_create_color_info_(myInfo) bind(c, name="rocsparse_create_color_info") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_color_info_ type(c_ptr) :: myInfo end function end interface !> \ingroup aux_module !> \brief Destroy a color info structure !> !> \details !> \p rocsparse_destroy_color_info destroys a color info structure. !> !> @param[in] !> info the info structure. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_destroy_color_info function rocsparse_destroy_color_info_(myInfo) bind(c, name="rocsparse_destroy_color_info") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_color_info_ type(c_ptr),value :: myInfo end function end interface interface rocsparse_create_spvec_descr function rocsparse_create_spvec_descr_(descr,mySize,nnz,indices,values,idx_type,idx_base,data_type) bind(c, name="rocsparse_create_spvec_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_spvec_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: mySize integer(c_int64_t),value :: nnz type(c_ptr),value :: indices type(c_ptr),value :: values integer(kind(rocsparse_indextype_u16)),value :: idx_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_destroy_spvec_descr function rocsparse_destroy_spvec_descr_(descr) bind(c, name="rocsparse_destroy_spvec_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_spvec_descr_ type(c_ptr),value :: descr end function end interface interface rocsparse_spvec_get function rocsparse_spvec_get_(descr,mySize,nnz,indices,values,idx_type,idx_base,data_type) bind(c, name="rocsparse_spvec_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spvec_get_ type(c_ptr),value :: descr type(c_ptr),value :: mySize type(c_ptr),value :: nnz type(c_ptr) :: indices type(c_ptr) :: values type(c_ptr),value :: idx_type type(c_ptr),value :: idx_base type(c_ptr),value :: data_type end function end interface interface rocsparse_spvec_get_index_base function rocsparse_spvec_get_index_base_(descr,idx_base) bind(c, name="rocsparse_spvec_get_index_base") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spvec_get_index_base_ type(c_ptr),value :: descr type(c_ptr),value :: idx_base end function end interface interface rocsparse_spvec_get_values function rocsparse_spvec_get_values_(descr,values) bind(c, name="rocsparse_spvec_get_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spvec_get_values_ type(c_ptr),value :: descr type(c_ptr) :: values end function end interface interface rocsparse_spvec_set_values function rocsparse_spvec_set_values_(descr,values) bind(c, name="rocsparse_spvec_set_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spvec_set_values_ type(c_ptr),value :: descr type(c_ptr),value :: values end function end interface interface rocsparse_create_coo_descr function rocsparse_create_coo_descr_(descr,rows,cols,nnz,coo_row_ind,coo_col_ind,coo_val,idx_type,idx_base,data_type) bind(c, name="rocsparse_create_coo_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_coo_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: coo_val integer(kind(rocsparse_indextype_u16)),value :: idx_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_create_coo_aos_descr function rocsparse_create_coo_aos_descr_(descr,rows,cols,nnz,coo_ind,coo_val,idx_type,idx_base,data_type) bind(c, name="rocsparse_create_coo_aos_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_coo_aos_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: coo_ind type(c_ptr),value :: coo_val integer(kind(rocsparse_indextype_u16)),value :: idx_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_create_csr_descr function rocsparse_create_csr_descr_(descr,rows,cols,nnz,csr_row_ptr,csr_col_ind,csr_val,row_ptr_type,col_ind_type,idx_base,data_type) bind(c, name="rocsparse_create_csr_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_csr_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: csr_val integer(kind(rocsparse_indextype_u16)),value :: row_ptr_type integer(kind(rocsparse_indextype_u16)),value :: col_ind_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_create_csc_descr function rocsparse_create_csc_descr_(descr,rows,cols,nnz,csc_col_ptr,csc_row_ind,csc_val,col_ptr_type,row_ind_type,idx_base,data_type) bind(c, name="rocsparse_create_csc_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_csc_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: nnz type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_val integer(kind(rocsparse_indextype_u16)),value :: col_ptr_type integer(kind(rocsparse_indextype_u16)),value :: row_ind_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_create_ell_descr function rocsparse_create_ell_descr_(descr,rows,cols,ell_col_ind,ell_val,ell_width,idx_type,idx_base,data_type) bind(c, name="rocsparse_create_ell_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_ell_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols type(c_ptr),value :: ell_col_ind type(c_ptr),value :: ell_val integer(c_int64_t),value :: ell_width integer(kind(rocsparse_indextype_u16)),value :: idx_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_create_bell_descr function rocsparse_create_bell_descr_(descr,rows,cols,ell_block_dir,ell_block_dim,ell_cols,ell_col_ind,ell_val,idx_type,idx_base,data_type) bind(c, name="rocsparse_create_bell_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_bell_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(kind(rocsparse_direction_row)),value :: ell_block_dir integer(c_int64_t),value :: ell_block_dim integer(c_int64_t),value :: ell_cols type(c_ptr),value :: ell_col_ind type(c_ptr),value :: ell_val integer(kind(rocsparse_indextype_u16)),value :: idx_type integer(kind(rocsparse_index_base_zero)),value :: idx_base integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_destroy_spmat_descr function rocsparse_destroy_spmat_descr_(descr) bind(c, name="rocsparse_destroy_spmat_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_spmat_descr_ type(c_ptr),value :: descr end function end interface interface rocsparse_coo_aos_get function rocsparse_coo_aos_get_(descr,rows,cols,nnz,coo_ind,coo_val,idx_type,idx_base,data_type) bind(c, name="rocsparse_coo_aos_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo_aos_get_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz type(c_ptr) :: coo_ind type(c_ptr) :: coo_val type(c_ptr),value :: idx_type type(c_ptr),value :: idx_base type(c_ptr),value :: data_type end function end interface interface rocsparse_coo_get function rocsparse_coo_get_(descr,rows,cols,nnz,coo_row_ind,coo_col_ind,coo_val,idx_type,idx_base,data_type) bind(c, name="rocsparse_coo_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo_get_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz type(c_ptr) :: coo_row_ind type(c_ptr) :: coo_col_ind type(c_ptr) :: coo_val type(c_ptr),value :: idx_type type(c_ptr),value :: idx_base type(c_ptr),value :: data_type end function end interface interface rocsparse_csr_get function rocsparse_csr_get_(descr,rows,cols,nnz,csr_row_ptr,csr_col_ind,csr_val,row_ptr_type,col_ind_type,idx_base,data_type) bind(c, name="rocsparse_csr_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr_get_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz type(c_ptr) :: csr_row_ptr type(c_ptr) :: csr_col_ind type(c_ptr) :: csr_val type(c_ptr),value :: row_ptr_type type(c_ptr),value :: col_ind_type type(c_ptr),value :: idx_base type(c_ptr),value :: data_type end function end interface interface rocsparse_ell_get function rocsparse_ell_get_(descr,rows,cols,ell_col_ind,ell_val,ell_width,idx_type,idx_base,data_type) bind(c, name="rocsparse_ell_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ell_get_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr) :: ell_col_ind type(c_ptr) :: ell_val type(c_ptr),value :: ell_width type(c_ptr),value :: idx_type type(c_ptr),value :: idx_base type(c_ptr),value :: data_type end function end interface interface rocsparse_bell_get function rocsparse_bell_get_(descr,rows,cols,ell_block_dir,ell_block_dim,ell_cols,ell_col_ind,ell_val,idx_type,idx_base,data_type) bind(c, name="rocsparse_bell_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bell_get_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: ell_block_dir type(c_ptr),value :: ell_block_dim type(c_ptr),value :: ell_cols type(c_ptr) :: ell_col_ind type(c_ptr) :: ell_val type(c_ptr),value :: idx_type type(c_ptr),value :: idx_base type(c_ptr),value :: data_type end function end interface interface rocsparse_coo_set_pointers function rocsparse_coo_set_pointers_(descr,coo_row_ind,coo_col_ind,coo_val) bind(c, name="rocsparse_coo_set_pointers") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo_set_pointers_ type(c_ptr),value :: descr type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: coo_val end function end interface interface rocsparse_coo_aos_set_pointers function rocsparse_coo_aos_set_pointers_(descr,coo_ind,coo_val) bind(c, name="rocsparse_coo_aos_set_pointers") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo_aos_set_pointers_ type(c_ptr),value :: descr type(c_ptr),value :: coo_ind type(c_ptr),value :: coo_val end function end interface interface rocsparse_csr_set_pointers function rocsparse_csr_set_pointers_(descr,csr_row_ptr,csr_col_ind,csr_val) bind(c, name="rocsparse_csr_set_pointers") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr_set_pointers_ type(c_ptr),value :: descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: csr_val end function end interface interface rocsparse_csc_set_pointers function rocsparse_csc_set_pointers_(descr,csc_col_ptr,csc_row_ind,csc_val) bind(c, name="rocsparse_csc_set_pointers") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csc_set_pointers_ type(c_ptr),value :: descr type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: csc_val end function end interface interface rocsparse_ell_set_pointers function rocsparse_ell_set_pointers_(descr,ell_col_ind,ell_val) bind(c, name="rocsparse_ell_set_pointers") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ell_set_pointers_ type(c_ptr),value :: descr type(c_ptr),value :: ell_col_ind type(c_ptr),value :: ell_val end function end interface interface rocsparse_spmat_get_size function rocsparse_spmat_get_size_(descr,rows,cols,nnz) bind(c, name="rocsparse_spmat_get_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_get_size_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: nnz end function end interface interface rocsparse_spmat_get_format function rocsparse_spmat_get_format_(descr,myFormat) bind(c, name="rocsparse_spmat_get_format") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_get_format_ type(c_ptr),value :: descr type(c_ptr),value :: myFormat end function end interface interface rocsparse_spmat_get_index_base function rocsparse_spmat_get_index_base_(descr,idx_base) bind(c, name="rocsparse_spmat_get_index_base") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_get_index_base_ type(c_ptr),value :: descr type(c_ptr),value :: idx_base end function end interface interface rocsparse_spmat_get_values function rocsparse_spmat_get_values_(descr,values) bind(c, name="rocsparse_spmat_get_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_get_values_ type(c_ptr),value :: descr type(c_ptr) :: values end function end interface interface rocsparse_spmat_set_values function rocsparse_spmat_set_values_(descr,values) bind(c, name="rocsparse_spmat_set_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_set_values_ type(c_ptr),value :: descr type(c_ptr),value :: values end function end interface interface rocsparse_spmat_get_attribute function rocsparse_spmat_get_attribute_(descr,attribute,myData,data_size) bind(c, name="rocsparse_spmat_get_attribute") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_get_attribute_ type(c_ptr),value :: descr integer(kind(rocsparse_spmat_fill_mode)),value :: attribute type(c_ptr),value :: myData integer(c_size_t),value :: data_size end function end interface interface rocsparse_spmat_set_attribute function rocsparse_spmat_set_attribute_(descr,attribute,myData,data_size) bind(c, name="rocsparse_spmat_set_attribute") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmat_set_attribute_ type(c_ptr),value :: descr integer(kind(rocsparse_spmat_fill_mode)),value :: attribute type(c_ptr),value :: myData integer(c_size_t),value :: data_size end function end interface interface rocsparse_create_dnvec_descr function rocsparse_create_dnvec_descr_(descr,mySize,values,data_type) bind(c, name="rocsparse_create_dnvec_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_dnvec_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: mySize type(c_ptr),value :: values integer(kind(rocsparse_datatype_f32_r)),value :: data_type end function end interface interface rocsparse_destroy_dnvec_descr function rocsparse_destroy_dnvec_descr_(descr) bind(c, name="rocsparse_destroy_dnvec_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_dnvec_descr_ type(c_ptr),value :: descr end function end interface interface rocsparse_dnvec_get function rocsparse_dnvec_get_(descr,mySize,values,data_type) bind(c, name="rocsparse_dnvec_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnvec_get_ type(c_ptr),value :: descr type(c_ptr),value :: mySize type(c_ptr) :: values type(c_ptr),value :: data_type end function end interface interface rocsparse_dnvec_get_values function rocsparse_dnvec_get_values_(descr,values) bind(c, name="rocsparse_dnvec_get_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnvec_get_values_ type(c_ptr),value :: descr type(c_ptr) :: values end function end interface interface rocsparse_dnvec_set_values function rocsparse_dnvec_set_values_(descr,values) bind(c, name="rocsparse_dnvec_set_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnvec_set_values_ type(c_ptr),value :: descr type(c_ptr),value :: values end function end interface interface rocsparse_create_dnmat_descr function rocsparse_create_dnmat_descr_(descr,rows,cols,ld,values,data_type,order) bind(c, name="rocsparse_create_dnmat_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_dnmat_descr_ type(c_ptr) :: descr integer(c_int64_t),value :: rows integer(c_int64_t),value :: cols integer(c_int64_t),value :: ld type(c_ptr),value :: values integer(kind(rocsparse_datatype_f32_r)),value :: data_type integer(kind(rocsparse_order_row)),value :: order end function end interface interface rocsparse_destroy_dnmat_descr function rocsparse_destroy_dnmat_descr_(descr) bind(c, name="rocsparse_destroy_dnmat_descr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_destroy_dnmat_descr_ type(c_ptr),value :: descr end function end interface interface rocsparse_dnmat_get function rocsparse_dnmat_get_(descr,rows,cols,ld,values,data_type,order) bind(c, name="rocsparse_dnmat_get") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnmat_get_ type(c_ptr),value :: descr type(c_ptr),value :: rows type(c_ptr),value :: cols type(c_ptr),value :: ld type(c_ptr) :: values type(c_ptr),value :: data_type type(c_ptr),value :: order end function end interface interface rocsparse_dnmat_get_values function rocsparse_dnmat_get_values_(descr,values) bind(c, name="rocsparse_dnmat_get_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnmat_get_values_ type(c_ptr),value :: descr type(c_ptr) :: values end function end interface interface rocsparse_dnmat_set_values function rocsparse_dnmat_set_values_(descr,values) bind(c, name="rocsparse_dnmat_set_values") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnmat_set_values_ type(c_ptr),value :: descr type(c_ptr),value :: values end function end interface interface rocsparse_saxpyi function rocsparse_saxpyi_(handle,nnz,alpha,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_saxpyi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_saxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_saxpyi_rank_0,& rocsparse_saxpyi_rank_1 #endif end interface interface rocsparse_daxpyi function rocsparse_daxpyi_(handle,nnz,alpha,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_daxpyi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_daxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_daxpyi_rank_0,& rocsparse_daxpyi_rank_1 #endif end interface interface rocsparse_caxpyi function rocsparse_caxpyi_(handle,nnz,alpha,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_caxpyi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_caxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_caxpyi_rank_0,& rocsparse_caxpyi_rank_1 #endif end interface interface rocsparse_zaxpyi function rocsparse_zaxpyi_(handle,nnz,alpha,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_zaxpyi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zaxpyi_ type(c_ptr),value :: handle integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zaxpyi_rank_0,& rocsparse_zaxpyi_rank_1 #endif end interface interface rocsparse_sdoti function rocsparse_sdoti_(handle,nnz,x_val,x_ind,y,myResult,idx_base) bind(c, name="rocsparse_sdoti") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sdoti_rank_0,& rocsparse_sdoti_rank_1 #endif end interface interface rocsparse_ddoti function rocsparse_ddoti_(handle,nnz,x_val,x_ind,y,myResult,idx_base) bind(c, name="rocsparse_ddoti") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ddoti_rank_0,& rocsparse_ddoti_rank_1 #endif end interface interface rocsparse_cdoti function rocsparse_cdoti_(handle,nnz,x_val,x_ind,y,myResult,idx_base) bind(c, name="rocsparse_cdoti") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cdoti_rank_0,& rocsparse_cdoti_rank_1 #endif end interface interface rocsparse_zdoti function rocsparse_zdoti_(handle,nnz,x_val,x_ind,y,myResult,idx_base) bind(c, name="rocsparse_zdoti") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdoti_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zdoti_rank_0,& rocsparse_zdoti_rank_1 #endif end interface interface rocsparse_cdotci function rocsparse_cdotci_(handle,nnz,x_val,x_ind,y,myResult,idx_base) bind(c, name="rocsparse_cdotci") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdotci_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cdotci_rank_0,& rocsparse_cdotci_rank_1 #endif end interface interface rocsparse_zdotci function rocsparse_zdotci_(handle,nnz,x_val,x_ind,y,myResult,idx_base) bind(c, name="rocsparse_zdotci") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdotci_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zdotci_rank_0,& rocsparse_zdotci_rank_1 #endif end interface interface rocsparse_sgthr function rocsparse_sgthr_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_sgthr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: x_val type(c_ptr),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgthr_rank_0,& rocsparse_sgthr_rank_1 #endif end interface interface rocsparse_dgthr function rocsparse_dgthr_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_dgthr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: x_val type(c_ptr),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgthr_rank_0,& rocsparse_dgthr_rank_1 #endif end interface interface rocsparse_cgthr function rocsparse_cgthr_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_cgthr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: x_val type(c_ptr),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgthr_rank_0,& rocsparse_cgthr_rank_1 #endif end interface interface rocsparse_zgthr function rocsparse_zgthr_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_zgthr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgthr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: y type(c_ptr),value :: x_val type(c_ptr),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgthr_rank_0,& rocsparse_zgthr_rank_1 #endif end interface interface rocsparse_sgthrz function rocsparse_sgthrz_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_sgthrz") use iso_c_binding use hipfort_rocsparse_enums 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),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgthrz_rank_0,& rocsparse_sgthrz_rank_1 #endif end interface interface rocsparse_dgthrz function rocsparse_dgthrz_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_dgthrz") use iso_c_binding use hipfort_rocsparse_enums 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),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgthrz_rank_0,& rocsparse_dgthrz_rank_1 #endif end interface interface rocsparse_cgthrz function rocsparse_cgthrz_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_cgthrz") use iso_c_binding use hipfort_rocsparse_enums 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),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgthrz_rank_0,& rocsparse_cgthrz_rank_1 #endif end interface interface rocsparse_zgthrz function rocsparse_zgthrz_(handle,nnz,y,x_val,x_ind,idx_base) bind(c, name="rocsparse_zgthrz") use iso_c_binding use hipfort_rocsparse_enums 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),value :: x_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgthrz_rank_0,& rocsparse_zgthrz_rank_1 #endif end interface interface rocsparse_sroti function rocsparse_sroti_(handle,nnz,x_val,x_ind,y,c,s,idx_base) bind(c, name="rocsparse_sroti") use iso_c_binding use hipfort_rocsparse_enums 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),value :: x_ind type(c_ptr),value :: y real(c_float) :: c real(c_float) :: s integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sroti_rank_0,& rocsparse_sroti_rank_1 #endif end interface interface rocsparse_droti function rocsparse_droti_(handle,nnz,x_val,x_ind,y,c,s,idx_base) bind(c, name="rocsparse_droti") use iso_c_binding use hipfort_rocsparse_enums 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),value :: x_ind type(c_ptr),value :: y real(c_double) :: c real(c_double) :: s integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_droti_rank_0,& rocsparse_droti_rank_1 #endif end interface interface rocsparse_ssctr function rocsparse_ssctr_(handle,nnz,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_ssctr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ssctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ssctr_rank_0,& rocsparse_ssctr_rank_1 #endif end interface interface rocsparse_dsctr function rocsparse_dsctr_(handle,nnz,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_dsctr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dsctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dsctr_rank_0,& rocsparse_dsctr_rank_1 #endif end interface interface rocsparse_csctr function rocsparse_csctr_(handle,nnz,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_csctr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csctr_rank_0,& rocsparse_csctr_rank_1 #endif end interface interface rocsparse_zsctr function rocsparse_zsctr_(handle,nnz,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_zsctr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zsctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zsctr_rank_0,& rocsparse_zsctr_rank_1 #endif end interface interface rocsparse_isctr function rocsparse_isctr_(handle,nnz,x_val,x_ind,y,idx_base) bind(c, name="rocsparse_isctr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_isctr_ type(c_ptr),value :: handle integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_isctr_rank_0,& rocsparse_isctr_rank_1 #endif end interface interface rocsparse_sbsrmv function rocsparse_sbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_sbsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrmv_rank_0,& rocsparse_sbsrmv_rank_1 #endif end interface interface rocsparse_dbsrmv function rocsparse_dbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_dbsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrmv_rank_0,& rocsparse_dbsrmv_rank_1 #endif end interface interface rocsparse_cbsrmv function rocsparse_cbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_cbsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrmv_rank_0,& rocsparse_cbsrmv_rank_1 #endif end interface interface rocsparse_zbsrmv function rocsparse_zbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_zbsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrmv_rank_0,& rocsparse_zbsrmv_rank_1 #endif end interface interface rocsparse_sbsrxmv function rocsparse_sbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_sbsrxmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrxmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: size_of_mask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsr_val type(c_ptr),value :: bsr_mask_ptr type(c_ptr),value :: bsr_row_ptr type(c_ptr),value :: bsr_end_ptr type(c_ptr),value :: bsr_col_ind integer(c_int),value :: block_dim type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrxmv_rank_0,& rocsparse_sbsrxmv_rank_1 #endif end interface interface rocsparse_dbsrxmv function rocsparse_dbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_dbsrxmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrxmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: size_of_mask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsr_val type(c_ptr),value :: bsr_mask_ptr type(c_ptr),value :: bsr_row_ptr type(c_ptr),value :: bsr_end_ptr type(c_ptr),value :: bsr_col_ind integer(c_int),value :: block_dim type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrxmv_rank_0,& rocsparse_dbsrxmv_rank_1 #endif end interface interface rocsparse_cbsrxmv function rocsparse_cbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_cbsrxmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrxmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: size_of_mask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsr_val type(c_ptr),value :: bsr_mask_ptr type(c_ptr),value :: bsr_row_ptr type(c_ptr),value :: bsr_end_ptr type(c_ptr),value :: bsr_col_ind integer(c_int),value :: block_dim type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrxmv_rank_0,& rocsparse_cbsrxmv_rank_1 #endif end interface interface rocsparse_zbsrxmv function rocsparse_zbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) bind(c, name="rocsparse_zbsrxmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrxmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: size_of_mask integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: bsr_val type(c_ptr),value :: bsr_mask_ptr type(c_ptr),value :: bsr_row_ptr type(c_ptr),value :: bsr_end_ptr type(c_ptr),value :: bsr_col_ind integer(c_int),value :: block_dim type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrxmv_rank_0,& rocsparse_zbsrxmv_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse triangular solve using BSR storage format !> !> \details !> \p rocsparse_bsrsv_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_sbsrsv_solve(), !> rocsparse_dbsrsv_solve(), rocsparse_cbsrsv_solve() or rocsparse_zbsrsv_solve() !> computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, !> using same index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note \p rocsparse_bsrsv_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_bsrsv_zero_pivot function rocsparse_bsrsv_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_bsrsv_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsrsv_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_sbsrsv_buffer_size function rocsparse_sbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_sbsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrsv_buffer_size_rank_0,& rocsparse_sbsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_dbsrsv_buffer_size function rocsparse_dbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_dbsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrsv_buffer_size_rank_0,& rocsparse_dbsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_cbsrsv_buffer_size function rocsparse_cbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_cbsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrsv_buffer_size_rank_0,& rocsparse_cbsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_zbsrsv_buffer_size function rocsparse_zbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_zbsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrsv_buffer_size_rank_0,& rocsparse_zbsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_sbsrsv_analysis function rocsparse_sbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_sbsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrsv_analysis_rank_0,& rocsparse_sbsrsv_analysis_rank_1 #endif end interface interface rocsparse_dbsrsv_analysis function rocsparse_dbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dbsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrsv_analysis_rank_0,& rocsparse_dbsrsv_analysis_rank_1 #endif end interface interface rocsparse_cbsrsv_analysis function rocsparse_cbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_cbsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrsv_analysis_rank_0,& rocsparse_cbsrsv_analysis_rank_1 #endif end interface interface rocsparse_zbsrsv_analysis function rocsparse_zbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zbsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrsv_analysis_rank_0,& rocsparse_zbsrsv_analysis_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse triangular solve using BSR storage format !> !> \details !> \p rocsparse_bsrsv_clear deallocates all memory that was allocated by !> rocsparse_sbsrsv_analysis(), rocsparse_dbsrsv_analysis(), rocsparse_cbsrsv_analysis() !> or rocsparse_zbsrsv_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required for further computation, e.g. when switching to !> another sparse matrix format. Calling \p rocsparse_bsrsv_clear is optional. All !> allocated resources will be cleared, when the opaque \p rocsparse_mat_info struct !> is destroyed using rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_bsrsv_clear function rocsparse_bsrsv_clear_(handle,myInfo) bind(c, name="rocsparse_bsrsv_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsrsv_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_sbsrsv_solve function rocsparse_sbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_sbsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrsv_solve_rank_0,& rocsparse_sbsrsv_solve_rank_1 #endif end interface interface rocsparse_dbsrsv_solve function rocsparse_dbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_dbsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrsv_solve_rank_0,& rocsparse_dbsrsv_solve_rank_1 #endif end interface interface rocsparse_cbsrsv_solve function rocsparse_cbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_cbsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrsv_solve_rank_0,& rocsparse_cbsrsv_solve_rank_1 #endif end interface interface rocsparse_zbsrsv_solve function rocsparse_zbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_zbsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrsv_solve_rank_0,& rocsparse_zbsrsv_solve_rank_1 #endif end interface interface rocsparse_scoomv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scoomv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scoomv_rank_0,& rocsparse_scoomv_rank_1 #endif end interface interface rocsparse_dcoomv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcoomv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcoomv_rank_0,& rocsparse_dcoomv_rank_1 #endif end interface interface rocsparse_ccoomv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccoomv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccoomv_rank_0,& rocsparse_ccoomv_rank_1 #endif end interface interface rocsparse_zcoomv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcoomv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcoomv_rank_0,& rocsparse_zcoomv_rank_1 #endif end interface interface rocsparse_scsrmv_analysis function rocsparse_scsrmv_analysis_(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) bind(c, name="rocsparse_scsrmv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrmv_analysis_rank_0,& rocsparse_scsrmv_analysis_rank_1 #endif end interface interface rocsparse_dcsrmv_analysis function rocsparse_dcsrmv_analysis_(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) bind(c, name="rocsparse_dcsrmv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrmv_analysis_rank_0,& rocsparse_dcsrmv_analysis_rank_1 #endif end interface interface rocsparse_ccsrmv_analysis function rocsparse_ccsrmv_analysis_(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) bind(c, name="rocsparse_ccsrmv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrmv_analysis_rank_0,& rocsparse_ccsrmv_analysis_rank_1 #endif end interface interface rocsparse_zcsrmv_analysis function rocsparse_zcsrmv_analysis_(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) bind(c, name="rocsparse_zcsrmv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrmv_analysis_rank_0,& rocsparse_zcsrmv_analysis_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse matrix vector multiplication using CSR storage format !> !> \details !> \p rocsparse_csrmv_clear deallocates all memory that was allocated by !> rocsparse_scsrmv_analysis(), rocsparse_dcsrmv_analysis(), rocsparse_ccsrmv_analysis() !> or rocsparse_zcsrmv_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required anymore for further computation, e.g. when !> switching to another sparse matrix format. !> !> \note !> Calling \p rocsparse_csrmv_clear is optional. All allocated resources will be !> cleared, when the opaque \p rocsparse_mat_info struct is destroyed using !> rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer for the gathered information !> could not be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_csrmv_clear function rocsparse_csrmv_clear_(handle,myInfo) bind(c, name="rocsparse_csrmv_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrmv_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_scsrmv function rocsparse_scsrmv_(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) bind(c, name="rocsparse_scsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrmv_rank_0,& rocsparse_scsrmv_rank_1 #endif end interface interface rocsparse_dcsrmv function rocsparse_dcsrmv_(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) bind(c, name="rocsparse_dcsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrmv_rank_0,& rocsparse_dcsrmv_rank_1 #endif end interface interface rocsparse_ccsrmv function rocsparse_ccsrmv_(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) bind(c, name="rocsparse_ccsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrmv_rank_0,& rocsparse_ccsrmv_rank_1 #endif end interface interface rocsparse_zcsrmv function rocsparse_zcsrmv_(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) bind(c, name="rocsparse_zcsrmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrmv_rank_0,& rocsparse_zcsrmv_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse triangular solve using CSR storage format !> !> \details !> \p rocsparse_csrsv_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_scsrsv_solve(), !> rocsparse_dcsrsv_solve(), rocsparse_ccsrsv_solve() or rocsparse_zcsrsv_solve() !> computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, !> using same index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note \p rocsparse_csrsv_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> descr descriptor of the sparse CSR matrix. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_csrsv_zero_pivot function rocsparse_csrsv_zero_pivot_(handle,descr,myInfo,position) bind(c, name="rocsparse_csrsv_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsv_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_scsrsv_buffer_size function rocsparse_scsrsv_buffer_size_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_scsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrsv_buffer_size_rank_0,& rocsparse_scsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_dcsrsv_buffer_size function rocsparse_dcsrsv_buffer_size_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_dcsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrsv_buffer_size_rank_0,& rocsparse_dcsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_ccsrsv_buffer_size function rocsparse_ccsrsv_buffer_size_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_ccsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrsv_buffer_size_rank_0,& rocsparse_ccsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_zcsrsv_buffer_size function rocsparse_zcsrsv_buffer_size_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_zcsrsv_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrsv_buffer_size_rank_0,& rocsparse_zcsrsv_buffer_size_rank_1 #endif end interface interface rocsparse_scsrsv_analysis function rocsparse_scsrsv_analysis_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_scsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrsv_analysis_rank_0,& rocsparse_scsrsv_analysis_rank_1 #endif end interface interface rocsparse_dcsrsv_analysis function rocsparse_dcsrsv_analysis_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dcsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrsv_analysis_rank_0,& rocsparse_dcsrsv_analysis_rank_1 #endif end interface interface rocsparse_ccsrsv_analysis function rocsparse_ccsrsv_analysis_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_ccsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrsv_analysis_rank_0,& rocsparse_ccsrsv_analysis_rank_1 #endif end interface interface rocsparse_zcsrsv_analysis function rocsparse_zcsrsv_analysis_(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zcsrsv_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrsv_analysis_rank_0,& rocsparse_zcsrsv_analysis_rank_1 #endif end interface !> \ingroup level2_module !> \brief Sparse triangular solve using CSR storage format !> !> \details !> \p rocsparse_csrsv_clear deallocates all memory that was allocated by !> rocsparse_scsrsv_analysis(), rocsparse_dcsrsv_analysis(), rocsparse_ccsrsv_analysis() !> or rocsparse_zcsrsv_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required for further computation, e.g. when switching to !> another sparse matrix format. Calling \p rocsparse_csrsv_clear is optional. All !> allocated resources will be cleared, when the opaque \p rocsparse_mat_info struct !> is destroyed using rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> descr descriptor of the sparse CSR matrix. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_csrsv_clear function rocsparse_csrsv_clear_(handle,descr,myInfo) bind(c, name="rocsparse_csrsv_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsv_clear_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),value :: myInfo end function end interface interface rocsparse_scsrsv_solve function rocsparse_scsrsv_solve_(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_scsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrsv_solve_rank_0,& rocsparse_scsrsv_solve_rank_1 #endif end interface interface rocsparse_dcsrsv_solve function rocsparse_dcsrsv_solve_(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_dcsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrsv_solve_rank_0,& rocsparse_dcsrsv_solve_rank_1 #endif end interface interface rocsparse_ccsrsv_solve function rocsparse_ccsrsv_solve_(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_ccsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrsv_solve_rank_0,& rocsparse_ccsrsv_solve_rank_1 #endif end interface interface rocsparse_zcsrsv_solve function rocsparse_zcsrsv_solve_(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) bind(c, name="rocsparse_zcsrsv_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrsv_solve_rank_0,& rocsparse_zcsrsv_solve_rank_1 #endif end interface interface rocsparse_sellmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sellmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind integer(c_int),value :: ell_width type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sellmv_rank_0,& rocsparse_sellmv_rank_1 #endif end interface interface rocsparse_dellmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dellmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind integer(c_int),value :: ell_width type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dellmv_rank_0,& rocsparse_dellmv_rank_1 #endif end interface interface rocsparse_cellmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cellmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind integer(c_int),value :: ell_width type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cellmv_rank_0,& rocsparse_cellmv_rank_1 #endif end interface interface rocsparse_zellmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zellmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind integer(c_int),value :: ell_width type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zellmv_rank_0,& rocsparse_zellmv_rank_1 #endif end interface interface rocsparse_shybmv function rocsparse_shybmv_(handle,trans,alpha,descr,hyb,x,beta,y) bind(c, name="rocsparse_shybmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_shybmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: hyb type(c_ptr),value :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_shybmv_rank_0,& rocsparse_shybmv_rank_1 #endif end interface interface rocsparse_dhybmv function rocsparse_dhybmv_(handle,trans,alpha,descr,hyb,x,beta,y) bind(c, name="rocsparse_dhybmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dhybmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: hyb type(c_ptr),value :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dhybmv_rank_0,& rocsparse_dhybmv_rank_1 #endif end interface interface rocsparse_chybmv function rocsparse_chybmv_(handle,trans,alpha,descr,hyb,x,beta,y) bind(c, name="rocsparse_chybmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_chybmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: hyb type(c_ptr),value :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_chybmv_rank_0,& rocsparse_chybmv_rank_1 #endif end interface interface rocsparse_zhybmv function rocsparse_zhybmv_(handle,trans,alpha,descr,hyb,x,beta,y) bind(c, name="rocsparse_zhybmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zhybmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: hyb type(c_ptr),value :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zhybmv_rank_0,& rocsparse_zhybmv_rank_1 #endif end interface interface rocsparse_sgebsrmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: 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 :: x real(c_float) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgebsrmv_rank_0,& rocsparse_sgebsrmv_rank_1 #endif end interface interface rocsparse_dgebsrmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: 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 :: x real(c_double) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgebsrmv_rank_0,& rocsparse_dgebsrmv_rank_1 #endif end interface interface rocsparse_cgebsrmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: 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 :: x complex(c_float_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgebsrmv_rank_0,& rocsparse_cgebsrmv_rank_1 #endif end interface interface rocsparse_zgebsrmv 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmv_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: 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 :: x complex(c_double_complex) :: beta type(c_ptr),value :: y end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgebsrmv_rank_0,& rocsparse_zgebsrmv_rank_1 #endif end interface interface rocsparse_sgemvi_buffer_size function rocsparse_sgemvi_buffer_size_(handle,trans,m,n,nnz,buffer_size) bind(c, name="rocsparse_sgemvi_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemvi_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_size_t) :: buffer_size end function end interface interface rocsparse_dgemvi_buffer_size function rocsparse_dgemvi_buffer_size_(handle,trans,m,n,nnz,buffer_size) bind(c, name="rocsparse_dgemvi_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemvi_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_size_t) :: buffer_size end function end interface interface rocsparse_cgemvi_buffer_size function rocsparse_cgemvi_buffer_size_(handle,trans,m,n,nnz,buffer_size) bind(c, name="rocsparse_cgemvi_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemvi_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_size_t) :: buffer_size end function end interface interface rocsparse_zgemvi_buffer_size function rocsparse_zgemvi_buffer_size_(handle,trans,m,n,nnz,buffer_size) bind(c, name="rocsparse_zgemvi_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemvi_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: nnz integer(c_size_t) :: buffer_size end function end interface interface rocsparse_sgemvi function rocsparse_sgemvi_(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) bind(c, name="rocsparse_sgemvi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemvi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind real(c_float) :: beta type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgemvi_full_rank,& rocsparse_sgemvi_rank_0,& rocsparse_sgemvi_rank_1 #endif end interface interface rocsparse_dgemvi function rocsparse_dgemvi_(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) bind(c, name="rocsparse_dgemvi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemvi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind real(c_double) :: beta type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgemvi_full_rank,& rocsparse_dgemvi_rank_0,& rocsparse_dgemvi_rank_1 #endif end interface interface rocsparse_cgemvi function rocsparse_cgemvi_(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) bind(c, name="rocsparse_cgemvi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemvi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind complex(c_float_complex) :: beta type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgemvi_full_rank,& rocsparse_cgemvi_rank_0,& rocsparse_cgemvi_rank_1 #endif end interface interface rocsparse_zgemvi function rocsparse_zgemvi_(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) bind(c, name="rocsparse_zgemvi") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemvi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda integer(c_int),value :: nnz type(c_ptr),value :: x_val type(c_ptr),value :: x_ind complex(c_double_complex) :: beta type(c_ptr),value :: y integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgemvi_full_rank,& rocsparse_zgemvi_rank_0,& rocsparse_zgemvi_rank_1 #endif end interface interface rocsparse_sbsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrmm_full_rank,& rocsparse_sbsrmm_rank_0,& rocsparse_sbsrmm_rank_1 #endif end interface interface rocsparse_dbsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrmm_full_rank,& rocsparse_dbsrmm_rank_0,& rocsparse_dbsrmm_rank_1 #endif end interface interface rocsparse_cbsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrmm_full_rank,& rocsparse_cbsrmm_rank_0,& rocsparse_cbsrmm_rank_1 #endif end interface interface rocsparse_zbsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrmm_full_rank,& rocsparse_zbsrmm_rank_0,& rocsparse_zbsrmm_rank_1 #endif end interface interface rocsparse_sgebsrmm function rocsparse_sgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) bind(c, name="rocsparse_sgebsrmm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: 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 :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgebsrmm_full_rank,& rocsparse_sgebsrmm_rank_0,& rocsparse_sgebsrmm_rank_1 #endif end interface interface rocsparse_dgebsrmm function rocsparse_dgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) bind(c, name="rocsparse_dgebsrmm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: 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 :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgebsrmm_full_rank,& rocsparse_dgebsrmm_rank_0,& rocsparse_dgebsrmm_rank_1 #endif end interface interface rocsparse_cgebsrmm function rocsparse_cgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) bind(c, name="rocsparse_cgebsrmm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: 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 :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgebsrmm_full_rank,& rocsparse_cgebsrmm_rank_0,& rocsparse_cgebsrmm_rank_1 #endif end interface interface rocsparse_zgebsrmm function rocsparse_zgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) bind(c, name="rocsparse_zgebsrmm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: mb integer(c_int),value :: n integer(c_int),value :: kb integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: 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 :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgebsrmm_full_rank,& rocsparse_zgebsrmm_rank_0,& rocsparse_zgebsrmm_rank_1 #endif end interface interface rocsparse_scsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrmm_full_rank,& rocsparse_scsrmm_rank_0,& rocsparse_scsrmm_rank_1 #endif end interface interface rocsparse_dcsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrmm_full_rank,& rocsparse_dcsrmm_rank_0,& rocsparse_dcsrmm_rank_1 #endif end interface interface rocsparse_ccsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrmm_full_rank,& rocsparse_ccsrmm_rank_0,& rocsparse_ccsrmm_rank_1 #endif end interface interface rocsparse_zcsrmm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrmm_full_rank,& rocsparse_zcsrmm_rank_0,& rocsparse_zcsrmm_rank_1 #endif end interface !> \ingroup level3_module !> \brief Sparse triangular system solve using CSR storage format !> !> \details !> \p rocsparse_csrsm_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_scsrsm_solve(), !> rocsparse_dcsrsm_solve(), rocsparse_ccsrsm_solve() or rocsparse_zcsrsm_solve() !> computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, !> using same index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note \p rocsparse_csrsm_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_csrsm_zero_pivot function rocsparse_csrsm_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_csrsm_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsm_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_scsrsm_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,myInfo,policy,buffer_size) bind(c, name="rocsparse_scsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrsm_buffer_size_full_rank,& rocsparse_scsrsm_buffer_size_rank_0,& rocsparse_scsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_dcsrsm_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,myInfo,policy,buffer_size) bind(c, name="rocsparse_dcsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrsm_buffer_size_full_rank,& rocsparse_dcsrsm_buffer_size_rank_0,& rocsparse_dcsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_ccsrsm_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,myInfo,policy,buffer_size) bind(c, name="rocsparse_ccsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrsm_buffer_size_full_rank,& rocsparse_ccsrsm_buffer_size_rank_0,& rocsparse_ccsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_zcsrsm_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,myInfo,policy,buffer_size) bind(c, name="rocsparse_zcsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrsm_buffer_size_full_rank,& rocsparse_zcsrsm_buffer_size_rank_0,& rocsparse_zcsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_scsrsm_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,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_scsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrsm_analysis_full_rank,& rocsparse_scsrsm_analysis_rank_0,& rocsparse_scsrsm_analysis_rank_1 #endif end interface interface rocsparse_dcsrsm_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,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dcsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrsm_analysis_full_rank,& rocsparse_dcsrsm_analysis_rank_0,& rocsparse_dcsrsm_analysis_rank_1 #endif end interface interface rocsparse_ccsrsm_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,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_ccsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrsm_analysis_full_rank,& rocsparse_ccsrsm_analysis_rank_0,& rocsparse_ccsrsm_analysis_rank_1 #endif end interface interface rocsparse_zcsrsm_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,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zcsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrsm_analysis_full_rank,& rocsparse_zcsrsm_analysis_rank_0,& rocsparse_zcsrsm_analysis_rank_1 #endif end interface !> \ingroup level3_module !> \brief Sparse triangular system solve using CSR storage format !> !> \details !> \p rocsparse_csrsm_clear deallocates all memory that was allocated by !> rocsparse_scsrsm_analysis(), rocsparse_dcsrsm_analysis(), rocsparse_ccsrsm_analysis() !> or rocsparse_zcsrsm_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required for further computation, e.g. when switching to !> another sparse matrix format. Calling \p rocsparse_csrsm_clear is optional. All !> allocated resources will be cleared, when the opaque \p rocsparse_mat_info struct !> is destroyed using rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_csrsm_clear function rocsparse_csrsm_clear_(handle,myInfo) bind(c, name="rocsparse_csrsm_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsm_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_scsrsm_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,myInfo,policy,temp_buffer) bind(c, name="rocsparse_scsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrsm_solve_full_rank,& rocsparse_scsrsm_solve_rank_0,& rocsparse_scsrsm_solve_rank_1 #endif end interface interface rocsparse_dcsrsm_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,myInfo,policy,temp_buffer) bind(c, name="rocsparse_dcsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrsm_solve_full_rank,& rocsparse_dcsrsm_solve_rank_0,& rocsparse_dcsrsm_solve_rank_1 #endif end interface interface rocsparse_ccsrsm_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,myInfo,policy,temp_buffer) bind(c, name="rocsparse_ccsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrsm_solve_full_rank,& rocsparse_ccsrsm_solve_rank_0,& rocsparse_ccsrsm_solve_rank_1 #endif end interface interface rocsparse_zcsrsm_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,myInfo,policy,temp_buffer) bind(c, name="rocsparse_zcsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: nrhs integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrsm_solve_full_rank,& rocsparse_zcsrsm_solve_rank_0,& rocsparse_zcsrsm_solve_rank_1 #endif end interface !> \ingroup level3_module !> \brief Sparse triangular system solve using BSR storage format !> !> \details !> \p rocsparse_bsrsm_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_sbsrsm_solve(), !> rocsparse_dbsrsm_solve(), rocsparse_cbsrsm_solve() or rocsparse_zbsrsm_solve() !> computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, !> using same index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note \p rocsparse_bsrsm_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_bsrsm_zero_pivot function rocsparse_bsrsm_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_bsrsm_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsrsm_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_sbsrsm_buffer_size function rocsparse_sbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_sbsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrsm_buffer_size_rank_0,& rocsparse_sbsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_dbsrsm_buffer_size function rocsparse_dbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_dbsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrsm_buffer_size_rank_0,& rocsparse_dbsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_cbsrsm_buffer_size function rocsparse_cbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_cbsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrsm_buffer_size_rank_0,& rocsparse_cbsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_zbsrsm_buffer_size function rocsparse_zbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_zbsrsm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrsm_buffer_size_rank_0,& rocsparse_zbsrsm_buffer_size_rank_1 #endif end interface interface rocsparse_sbsrsm_analysis function rocsparse_sbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_sbsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrsm_analysis_rank_0,& rocsparse_sbsrsm_analysis_rank_1 #endif end interface interface rocsparse_dbsrsm_analysis function rocsparse_dbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dbsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrsm_analysis_rank_0,& rocsparse_dbsrsm_analysis_rank_1 #endif end interface interface rocsparse_cbsrsm_analysis function rocsparse_cbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_cbsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrsm_analysis_rank_0,& rocsparse_cbsrsm_analysis_rank_1 #endif end interface interface rocsparse_zbsrsm_analysis function rocsparse_zbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zbsrsm_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrsm_analysis_rank_0,& rocsparse_zbsrsm_analysis_rank_1 #endif end interface !> \ingroup level3_module !> \brief Sparse triangular system solve using BSR storage format !> !> \details !> \p rocsparse_bsrsm_clear deallocates all memory that was allocated by !> rocsparse_sbsrsm_analysis(), rocsparse_dbsrsm_analysis(), rocsparse_cbsrsm_analysis() !> or rocsparse_zbsrsm_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required for further computation, e.g. when switching to !> another sparse matrix format. Calling \p rocsparse_bsrsm_clear is optional. All !> allocated resources will be cleared, when the opaque \p rocsparse_mat_info struct !> is destroyed using rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_bsrsm_clear function rocsparse_bsrsm_clear_(handle,myInfo) bind(c, name="rocsparse_bsrsm_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsrsm_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_sbsrsm_solve function rocsparse_sbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) bind(c, name="rocsparse_sbsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb real(c_float) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrsm_solve_full_rank,& rocsparse_sbsrsm_solve_rank_0,& rocsparse_sbsrsm_solve_rank_1 #endif end interface interface rocsparse_dbsrsm_solve function rocsparse_dbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) bind(c, name="rocsparse_dbsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb real(c_double) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrsm_solve_full_rank,& rocsparse_dbsrsm_solve_rank_0,& rocsparse_dbsrsm_solve_rank_1 #endif end interface interface rocsparse_cbsrsm_solve function rocsparse_cbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) bind(c, name="rocsparse_cbsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb complex(c_float_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrsm_solve_full_rank,& rocsparse_cbsrsm_solve_rank_0,& rocsparse_cbsrsm_solve_rank_1 #endif end interface interface rocsparse_zbsrsm_solve function rocsparse_zbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) bind(c, name="rocsparse_zbsrsm_solve") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_solve_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_X integer(c_int),value :: mb integer(c_int),value :: nrhs integer(c_int),value :: nnzb complex(c_double_complex) :: alpha type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: X integer(c_int),value :: ldx integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrsm_solve_full_rank,& rocsparse_zbsrsm_solve_rank_0,& rocsparse_zbsrsm_solve_rank_1 #endif end interface interface rocsparse_sgemmi 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemmi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_float) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind real(c_float) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgemmi_full_rank,& rocsparse_sgemmi_rank_0,& rocsparse_sgemmi_rank_1 #endif end interface interface rocsparse_dgemmi 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemmi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz real(c_double) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind real(c_double) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgemmi_full_rank,& rocsparse_dgemmi_rank_0,& rocsparse_dgemmi_rank_1 #endif end interface interface rocsparse_cgemmi 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemmi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_float_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind complex(c_float_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgemmi_full_rank,& rocsparse_cgemmi_rank_0,& rocsparse_cgemmi_rank_1 #endif end interface interface rocsparse_zgemmi 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemmi_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k integer(c_int),value :: nnz complex(c_double_complex) :: alpha type(c_ptr),value :: A integer(c_int),value :: lda type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind complex(c_double_complex) :: beta type(c_ptr),value :: C integer(c_int),value :: ldc end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgemmi_full_rank,& rocsparse_zgemmi_rank_0,& rocsparse_zgemmi_rank_1 #endif end interface !> \ingroup extra_module !> \brief Sparse matrix sparse matrix addition using CSR storage format !> !> \details !> \p rocsparse_csrgeam_nnz computes the total CSR non-zero elements and the CSR row !> offsets, that point to the start of every row of the sparse CSR matrix, of the !> resulting matrix C. It is assumed that \p csr_row_ptr_C has been allocated with !> size \p m + 1. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> \note !> Currently, only \p rocsparse_matrix_type_general is supported. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSR matrix \f$A\f$, \f$B\f$ and \f$C\f$. !> @param[in] !> n number of columns of the sparse CSR matrix \f$A\f$, \f$B\f$ and \f$C\f$. !> @param[in] !> descr_A descriptor of the sparse CSR matrix \f$A\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> nnz_A number of non-zero entries of the sparse CSR matrix \f$A\f$. !> @param[in] !> csr_row_ptr_A array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix \f$A\f$. !> @param[in] !> csr_col_ind_A array of \p nnz_A elements containing the column indices of the !> sparse CSR matrix \f$A\f$. !> @param[in] !> descr_B descriptor of the sparse CSR matrix \f$B\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> nnz_B number of non-zero entries of the sparse CSR matrix \f$B\f$. !> @param[in] !> csr_row_ptr_B array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix \f$B\f$. !> @param[in] !> csr_col_ind_B array of \p nnz_B elements containing the column indices of the !> sparse CSR matrix \f$B\f$. !> @param[in] !> descr_C descriptor of the sparse CSR matrix \f$C\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[out] !> csr_row_ptr_C array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix \f$C\f$. !> @param[out] !> nnz_C pointer to the number of non-zero entries of the sparse CSR !> matrix \f$C\f$. \p nnz_C can be a host or device pointer. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n, \p nnz_A or \p nnz_B is invalid. !> \retval rocsparse_status_invalid_pointer \p descr_A, \p csr_row_ptr_A, !> \p csr_col_ind_A, \p descr_B, \p csr_row_ptr_B, \p csr_col_ind_B, !> \p descr_C, \p csr_row_ptr_C or \p nnz_C is invalid. !> \retval rocsparse_status_not_implemented !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. interface 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B type(c_ptr),value :: descr_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: nnz_C end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csrgeam_nnz_rank_0,& rocsparse_csrgeam_nnz_rank_1 #endif end interface interface rocsparse_scsrgeam 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_float) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float) :: beta type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrgeam_rank_0,& rocsparse_scsrgeam_rank_1 #endif end interface interface rocsparse_dcsrgeam 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n real(c_double) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double) :: beta type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrgeam_rank_0,& rocsparse_dcsrgeam_rank_1 #endif end interface interface rocsparse_ccsrgeam 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_float_complex) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A complex(c_float_complex) :: beta type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrgeam_rank_0,& rocsparse_ccsrgeam_rank_1 #endif end interface interface rocsparse_zcsrgeam 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgeam_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: n complex(c_double_complex) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A complex(c_double_complex) :: beta type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrgeam_rank_0,& rocsparse_zcsrgeam_rank_1 #endif end interface interface rocsparse_scsrgemm_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B real(c_float) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: info_C integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrgemm_buffer_size_rank_0,& rocsparse_scsrgemm_buffer_size_rank_1 #endif end interface interface rocsparse_dcsrgemm_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B real(c_double) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: info_C integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrgemm_buffer_size_rank_0,& rocsparse_dcsrgemm_buffer_size_rank_1 #endif end interface interface rocsparse_ccsrgemm_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B complex(c_float_complex) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: info_C integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrgemm_buffer_size_rank_0,& rocsparse_ccsrgemm_buffer_size_rank_1 #endif end interface interface rocsparse_zcsrgemm_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B complex(c_double_complex) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: info_C integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrgemm_buffer_size_rank_0,& rocsparse_zcsrgemm_buffer_size_rank_1 #endif end interface !> \ingroup extra_module !> \brief Sparse matrix sparse matrix multiplication using CSR storage format !> !> \details !> \p rocsparse_csrgemm_nnz computes the total CSR non-zero elements and the CSR row !> offsets, that point to the start of every row of the sparse CSR matrix, of the !> resulting multiplied matrix C. It is assumed that \p csr_row_ptr_C has been allocated !> with size \p m + 1. !> The required buffer size can be obtained by rocsparse_scsrgemm_buffer_size(), !> rocsparse_dcsrgemm_buffer_size(), rocsparse_ccsrgemm_buffer_size() and !> rocsparse_zcsrgemm_buffer_size(), respectively. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> \note !> Please note, that for matrix products with more than 8192 intermediate products per !> row, additional temporary storage buffer is allocated by the algorithm. !> \note !> Currently, only \p trans_A == \p trans_B == \p rocsparse_operation_none is !> supported. !> \note !> Currently, only \p rocsparse_matrix_type_general is supported. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> trans_A matrix \f$A\f$ operation type. !> @param[in] !> trans_B matrix \f$B\f$ operation type. !> @param[in] !> m number of rows of the sparse CSR matrix \f$op(A)\f$ and \f$C\f$. !> @param[in] !> n number of columns of the sparse CSR matrix \f$op(B)\f$ and !> \f$C\f$. !> @param[in] !> k number of columns of the sparse CSR matrix \f$op(A)\f$ and number of !> rows of the sparse CSR matrix \f$op(B)\f$. !> @param[in] !> descr_A descriptor of the sparse CSR matrix \f$A\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> nnz_A number of non-zero entries of the sparse CSR matrix \f$A\f$. !> @param[in] !> csr_row_ptr_A array of \p m+1 elements (\f$op(A) == A\f$, \p k+1 otherwise) !> that point to the start of every row of the sparse CSR matrix !> \f$op(A)\f$. !> @param[in] !> csr_col_ind_A array of \p nnz_A elements containing the column indices of the !> sparse CSR matrix \f$A\f$. !> @param[in] !> descr_B descriptor of the sparse CSR matrix \f$B\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> nnz_B number of non-zero entries of the sparse CSR matrix \f$B\f$. !> @param[in] !> csr_row_ptr_B array of \p k+1 elements (\f$op(B) == B\f$, \p m+1 otherwise) !> that point to the start of every row of the sparse CSR matrix !> \f$op(B)\f$. !> @param[in] !> csr_col_ind_B array of \p nnz_B elements containing the column indices of the !> sparse CSR matrix \f$B\f$. !> @param[in] !> descr_D descriptor of the sparse CSR matrix \f$D\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> nnz_D number of non-zero entries of the sparse CSR matrix \f$D\f$. !> @param[in] !> csr_row_ptr_D array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix \f$D\f$. !> @param[in] !> csr_col_ind_D array of \p nnz_D elements containing the column indices of the sparse !> CSR matrix \f$D\f$. !> @param[in] !> descr_C descriptor of the sparse CSR matrix \f$C\f$. Currenty, only !> \p rocsparse_matrix_type_general is supported. !> @param[out] !> csr_row_ptr_C array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix \f$C\f$. !> @param[out] !> nnz_C pointer to the number of non-zero entries of the sparse CSR !> matrix \f$C\f$. !> @param[in] !> info_C structure that holds meta data for the sparse CSR matrix \f$C\f$. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user, size is returned !> by rocsparse_scsrgemm_buffer_size(), !> rocsparse_dcsrgemm_buffer_size(), rocsparse_ccsrgemm_buffer_size() or !> rocsparse_zcsrgemm_buffer_size(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n, \p k, \p nnz_A, \p nnz_B or !> \p nnz_D is invalid. !> \retval rocsparse_status_invalid_pointer \p descr_A, \p csr_row_ptr_A, !> \p csr_col_ind_A, \p descr_B, \p csr_row_ptr_B, \p csr_col_ind_B, !> \p descr_D, \p csr_row_ptr_D, \p csr_col_ind_D, \p descr_C, !> \p csr_row_ptr_C, \p nnz_C, \p info_C or \p temp_buffer is invalid. !> \retval rocsparse_status_memory_error additional buffer for long rows could not be !> allocated. !> \retval rocsparse_status_not_implemented !> \p trans_A != \p rocsparse_operation_none, !> \p trans_B != \p rocsparse_operation_none, or !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. interface 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrgemm_nnz_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: descr_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: nnz_C type(c_ptr),value :: info_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csrgemm_nnz_rank_0,& rocsparse_csrgemm_nnz_rank_1 #endif end interface interface rocsparse_scsrgemm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_float) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B real(c_float) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_val_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: info_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrgemm_rank_0,& rocsparse_scsrgemm_rank_1 #endif end interface interface rocsparse_dcsrgemm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k real(c_double) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B real(c_double) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_val_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: info_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrgemm_rank_0,& rocsparse_dcsrgemm_rank_1 #endif end interface interface rocsparse_ccsrgemm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_float_complex) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B complex(c_float_complex) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_val_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: info_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrgemm_rank_0,& rocsparse_ccsrgemm_rank_1 #endif end interface interface rocsparse_zcsrgemm 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B integer(c_int),value :: m integer(c_int),value :: n integer(c_int),value :: k complex(c_double_complex) :: alpha type(c_ptr),value :: descr_A integer(c_int),value :: nnz_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A type(c_ptr),value :: descr_B integer(c_int),value :: nnz_B type(c_ptr),value :: csr_val_B type(c_ptr),value :: csr_row_ptr_B type(c_ptr),value :: csr_col_ind_B complex(c_double_complex) :: beta type(c_ptr),value :: descr_D integer(c_int),value :: nnz_D type(c_ptr),value :: csr_val_D type(c_ptr),value :: csr_row_ptr_D type(c_ptr),value :: csr_col_ind_D type(c_ptr),value :: descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: info_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrgemm_rank_0,& rocsparse_zcsrgemm_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete Cholesky factorization with 0 fill-ins and no pivoting using BSR !> storage format !> !> \details !> \p rocsparse_bsric0_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_sbsric0(), !> rocsparse_dbsric0(), rocsparse_cbsric0() or rocsparse_zbsric0() computation. !> The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, using same !> index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note !> If a zero pivot is found, \p position=j means that either the diagonal block \p A(j,j) !> is missing (structural zero) or the diagonal block \p A(j,j) is not positive definite !> (numerical zero). !> !> \note \p rocsparse_bsric0_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_bsric0_zero_pivot function rocsparse_bsric0_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_bsric0_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsric0_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_sbsric0_buffer_size function rocsparse_sbsric0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_sbsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsric0_buffer_size_rank_0,& rocsparse_sbsric0_buffer_size_rank_1 #endif end interface interface rocsparse_dbsric0_buffer_size function rocsparse_dbsric0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_dbsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsric0_buffer_size_rank_0,& rocsparse_dbsric0_buffer_size_rank_1 #endif end interface interface rocsparse_cbsric0_buffer_size function rocsparse_cbsric0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_cbsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsric0_buffer_size_rank_0,& rocsparse_cbsric0_buffer_size_rank_1 #endif end interface interface rocsparse_zbsric0_buffer_size function rocsparse_zbsric0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_zbsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsric0_buffer_size_rank_0,& rocsparse_zbsric0_buffer_size_rank_1 #endif end interface interface rocsparse_sbsric0_analysis function rocsparse_sbsric0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_sbsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsric0_analysis_rank_0,& rocsparse_sbsric0_analysis_rank_1 #endif end interface interface rocsparse_dbsric0_analysis function rocsparse_dbsric0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dbsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsric0_analysis_rank_0,& rocsparse_dbsric0_analysis_rank_1 #endif end interface interface rocsparse_cbsric0_analysis function rocsparse_cbsric0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_cbsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsric0_analysis_rank_0,& rocsparse_cbsric0_analysis_rank_1 #endif end interface interface rocsparse_zbsric0_analysis function rocsparse_zbsric0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zbsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsric0_analysis_rank_0,& rocsparse_zbsric0_analysis_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete Cholesky factorization with 0 fill-ins and no pivoting using BSR !> storage format !> !> \details !> \p rocsparse_bsric0_clear deallocates all memory that was allocated by !> rocsparse_sbsric0_analysis(), rocsparse_dbsric0_analysis(), rocsparse_cbsric0_analysis() !> or rocsparse_zbsric0_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required for further computation. !> !> \note !> Calling \p rocsparse_bsric0_clear is optional. All allocated resources will be !> cleared, when the opaque \p rocsparse_mat_info struct is destroyed using !> rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_bsric0_clear function rocsparse_bsric0_clear_(handle,myInfo) bind(c, name="rocsparse_bsric0_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsric0_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_sbsric0 function rocsparse_sbsric0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_sbsric0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsric0_rank_0,& rocsparse_sbsric0_rank_1 #endif end interface interface rocsparse_dbsric0 function rocsparse_dbsric0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_dbsric0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsric0_rank_0,& rocsparse_dbsric0_rank_1 #endif end interface interface rocsparse_cbsric0 function rocsparse_cbsric0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_cbsric0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsric0_rank_0,& rocsparse_cbsric0_rank_1 #endif end interface interface rocsparse_zbsric0 function rocsparse_zbsric0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_zbsric0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsric0_rank_0,& rocsparse_zbsric0_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete LU factorization with 0 fill-ins and no pivoting using BSR storage !> format !> !> \details !> \p rocsparse_bsrilu0_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_sbsrilu0(), !> rocsparse_dbsrilu0(), rocsparse_cbsrilu0() or rocsparse_zbsrilu0() computation. !> The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, using same !> index base as the BSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note !> If a zero pivot is found, \p position \f$=j\f$ means that either the diagonal block !> \f$A_{j,j}\f$ is missing (structural zero) or the diagonal block \f$A_{j,j}\f$ is not !> invertible (numerical zero). !> !> \note \p rocsparse_bsrilu0_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_bsrilu0_zero_pivot function rocsparse_bsrilu0_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_bsrilu0_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsrilu0_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_sbsrilu0_numeric_boost function rocsparse_sbsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_sbsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_float) :: boost_tol real(c_float) :: boost_val end function end interface interface rocsparse_dbsrilu0_numeric_boost function rocsparse_dbsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_dbsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol real(c_double) :: boost_val end function end interface interface rocsparse_cbsrilu0_numeric_boost function rocsparse_cbsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_cbsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_float) :: boost_tol complex(c_float_complex) :: boost_val end function end interface interface rocsparse_zbsrilu0_numeric_boost function rocsparse_zbsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_zbsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol complex(c_double_complex) :: boost_val end function end interface interface rocsparse_dsbsrilu0_numeric_boost function rocsparse_dsbsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_dsbsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dsbsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol real(c_float) :: boost_val end function end interface interface rocsparse_dcbsrilu0_numeric_boost function rocsparse_dcbsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_dcbsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcbsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol complex(c_float_complex) :: boost_val end function end interface interface rocsparse_sbsrilu0_buffer_size function rocsparse_sbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_sbsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrilu0_buffer_size_rank_0,& rocsparse_sbsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_dbsrilu0_buffer_size function rocsparse_dbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_dbsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrilu0_buffer_size_rank_0,& rocsparse_dbsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_cbsrilu0_buffer_size function rocsparse_cbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_cbsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrilu0_buffer_size_rank_0,& rocsparse_cbsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_zbsrilu0_buffer_size function rocsparse_zbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) bind(c, name="rocsparse_zbsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrilu0_buffer_size_rank_0,& rocsparse_zbsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_sbsrilu0_analysis function rocsparse_sbsrilu0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_sbsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrilu0_analysis_rank_0,& rocsparse_sbsrilu0_analysis_rank_1 #endif end interface interface rocsparse_dbsrilu0_analysis function rocsparse_dbsrilu0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dbsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrilu0_analysis_rank_0,& rocsparse_dbsrilu0_analysis_rank_1 #endif end interface interface rocsparse_cbsrilu0_analysis function rocsparse_cbsrilu0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_cbsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrilu0_analysis_rank_0,& rocsparse_cbsrilu0_analysis_rank_1 #endif end interface interface rocsparse_zbsrilu0_analysis function rocsparse_zbsrilu0_analysis_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zbsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_analysis_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrilu0_analysis_rank_0,& rocsparse_zbsrilu0_analysis_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete LU factorization with 0 fill-ins and no pivoting using BSR storage !> format !> !> \details !> \p rocsparse_bsrilu0_clear deallocates all memory that was allocated by !> rocsparse_sbsrilu0_analysis(), rocsparse_dbsrilu0_analysis(), rocsparse_cbsrilu0_analysis() !> or rocsparse_zbsrilu0_analysis(). This is especially useful, if memory is an issue and !> the analysis data is not required for further computation. !> !> \note !> Calling \p rocsparse_bsrilu0_clear is optional. All allocated resources will be !> cleared, when the opaque \p rocsparse_mat_info struct is destroyed using !> rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_bsrilu0_clear function rocsparse_bsrilu0_clear_(handle,myInfo) bind(c, name="rocsparse_bsrilu0_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_bsrilu0_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_sbsrilu0 function rocsparse_sbsrilu0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_sbsrilu0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsrilu0_rank_0,& rocsparse_sbsrilu0_rank_1 #endif end interface interface rocsparse_dbsrilu0 function rocsparse_dbsrilu0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_dbsrilu0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsrilu0_rank_0,& rocsparse_dbsrilu0_rank_1 #endif end interface interface rocsparse_cbsrilu0 function rocsparse_cbsrilu0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_cbsrilu0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsrilu0_rank_0,& rocsparse_cbsrilu0_rank_1 #endif end interface interface rocsparse_zbsrilu0 function rocsparse_zbsrilu0_(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) bind(c, name="rocsparse_zbsrilu0") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nnzb type(c_ptr),value :: 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 :: block_dim type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsrilu0_rank_0,& rocsparse_zbsrilu0_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete Cholesky factorization with 0 fill-ins and no pivoting using CSR !> storage format !> !> \details !> \p rocsparse_csric_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_scsric0() or !> rocsparse_dcsric0() computation. The first zero pivot \f$j\f$ at \f$A_{j,j}\f$ !> is stored in \p position, using same index base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note \p rocsparse_csric0_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_csric0_zero_pivot function rocsparse_csric0_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_csric0_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csric0_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_scsric0_buffer_size function rocsparse_scsric0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_scsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsric0_buffer_size_rank_0,& rocsparse_scsric0_buffer_size_rank_1 #endif end interface interface rocsparse_dcsric0_buffer_size function rocsparse_dcsric0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_dcsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsric0_buffer_size_rank_0,& rocsparse_dcsric0_buffer_size_rank_1 #endif end interface interface rocsparse_ccsric0_buffer_size function rocsparse_ccsric0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_ccsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsric0_buffer_size_rank_0,& rocsparse_ccsric0_buffer_size_rank_1 #endif end interface interface rocsparse_zcsric0_buffer_size function rocsparse_zcsric0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_zcsric0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsric0_buffer_size_rank_0,& rocsparse_zcsric0_buffer_size_rank_1 #endif end interface interface rocsparse_scsric0_analysis function rocsparse_scsric0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_scsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsric0_analysis_rank_0,& rocsparse_scsric0_analysis_rank_1 #endif end interface interface rocsparse_dcsric0_analysis function rocsparse_dcsric0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dcsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsric0_analysis_rank_0,& rocsparse_dcsric0_analysis_rank_1 #endif end interface interface rocsparse_ccsric0_analysis function rocsparse_ccsric0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_ccsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsric0_analysis_rank_0,& rocsparse_ccsric0_analysis_rank_1 #endif end interface interface rocsparse_zcsric0_analysis function rocsparse_zcsric0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zcsric0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsric0_analysis_rank_0,& rocsparse_zcsric0_analysis_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete Cholesky factorization with 0 fill-ins and no pivoting using CSR !> storage format !> !> \details !> \p rocsparse_csric0_clear deallocates all memory that was allocated by !> rocsparse_scsric0_analysis() or rocsparse_dcsric0_analysis(). This is especially !> useful, if memory is an issue and the analysis data is not required for further !> computation. !> !> \note !> Calling \p rocsparse_csric0_clear is optional. All allocated resources will be !> cleared, when the opaque \p rocsparse_mat_info struct is destroyed using !> rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_csric0_clear function rocsparse_csric0_clear_(handle,myInfo) bind(c, name="rocsparse_csric0_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csric0_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_scsric0 function rocsparse_scsric0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_scsric0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsric0_rank_0,& rocsparse_scsric0_rank_1 #endif end interface interface rocsparse_dcsric0 function rocsparse_dcsric0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_dcsric0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsric0_rank_0,& rocsparse_dcsric0_rank_1 #endif end interface interface rocsparse_ccsric0 function rocsparse_ccsric0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_ccsric0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsric0_rank_0,& rocsparse_ccsric0_rank_1 #endif end interface interface rocsparse_zcsric0 function rocsparse_zcsric0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_zcsric0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsric0_rank_0,& rocsparse_zcsric0_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete LU factorization with 0 fill-ins and no pivoting using CSR !> storage format !> !> \details !> \p rocsparse_csrilu0_zero_pivot returns \p rocsparse_status_zero_pivot, if either a !> structural or numerical zero has been found during rocsparse_scsrilu0(), !> rocsparse_dcsrilu0(), rocsparse_ccsrilu0() or rocsparse_zcsrilu0() computation. The !> first zero pivot \f$j\f$ at \f$A_{j,j}\f$ is stored in \p position, using same index !> base as the CSR matrix. !> !> \p position can be in host or device memory. If no zero pivot has been found, !> \p position is set to -1 and \p rocsparse_status_success is returned instead. !> !> \note \p rocsparse_csrilu0_zero_pivot is a blocking function. It might influence !> performance negatively. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> info structure that holds the information collected during the analysis step. !> @param[inout] !> position pointer to zero pivot \f$j\f$, can be in host or device memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info or \p position pointer is !> invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_zero_pivot zero pivot has been found. interface rocsparse_csrilu0_zero_pivot function rocsparse_csrilu0_zero_pivot_(handle,myInfo,position) bind(c, name="rocsparse_csrilu0_zero_pivot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrilu0_zero_pivot_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int) :: position end function end interface interface rocsparse_scsrilu0_numeric_boost function rocsparse_scsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_scsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_float) :: boost_tol real(c_float) :: boost_val end function end interface interface rocsparse_dcsrilu0_numeric_boost function rocsparse_dcsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_dcsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol real(c_double) :: boost_val end function end interface interface rocsparse_ccsrilu0_numeric_boost function rocsparse_ccsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_ccsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_float) :: boost_tol complex(c_float_complex) :: boost_val end function end interface interface rocsparse_zcsrilu0_numeric_boost function rocsparse_zcsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_zcsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol complex(c_double_complex) :: boost_val end function end interface interface rocsparse_dscsrilu0_numeric_boost function rocsparse_dscsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_dscsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dscsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol real(c_float) :: boost_val end function end interface interface rocsparse_dccsrilu0_numeric_boost function rocsparse_dccsrilu0_numeric_boost_(handle,myInfo,enable_boost,boost_tol,boost_val) bind(c, name="rocsparse_dccsrilu0_numeric_boost") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dccsrilu0_numeric_boost_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo integer(c_int),value :: enable_boost real(c_double) :: boost_tol complex(c_float_complex) :: boost_val end function end interface interface rocsparse_scsrilu0_buffer_size function rocsparse_scsrilu0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_scsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrilu0_buffer_size_rank_0,& rocsparse_scsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_dcsrilu0_buffer_size function rocsparse_dcsrilu0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_dcsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrilu0_buffer_size_rank_0,& rocsparse_dcsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_ccsrilu0_buffer_size function rocsparse_ccsrilu0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_ccsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrilu0_buffer_size_rank_0,& rocsparse_ccsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_zcsrilu0_buffer_size function rocsparse_zcsrilu0_buffer_size_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) bind(c, name="rocsparse_zcsrilu0_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrilu0_buffer_size_rank_0,& rocsparse_zcsrilu0_buffer_size_rank_1 #endif end interface interface rocsparse_scsrilu0_analysis function rocsparse_scsrilu0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_scsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrilu0_analysis_rank_0,& rocsparse_scsrilu0_analysis_rank_1 #endif end interface interface rocsparse_dcsrilu0_analysis function rocsparse_dcsrilu0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_dcsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrilu0_analysis_rank_0,& rocsparse_dcsrilu0_analysis_rank_1 #endif end interface interface rocsparse_ccsrilu0_analysis function rocsparse_ccsrilu0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_ccsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrilu0_analysis_rank_0,& rocsparse_ccsrilu0_analysis_rank_1 #endif end interface interface rocsparse_zcsrilu0_analysis function rocsparse_zcsrilu0_analysis_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) bind(c, name="rocsparse_zcsrilu0_analysis") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_analysis_policy_reuse)),value :: analysis integer(kind(rocsparse_solve_policy_auto)),value :: solve type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrilu0_analysis_rank_0,& rocsparse_zcsrilu0_analysis_rank_1 #endif end interface !> \ingroup precond_module !> \brief Incomplete LU factorization with 0 fill-ins and no pivoting using CSR !> storage format !> !> \details !> \p rocsparse_csrilu0_clear deallocates all memory that was allocated by !> rocsparse_scsrilu0_analysis(), rocsparse_dcsrilu0_analysis(), !> rocsparse_ccsrilu0_analysis() or rocsparse_zcsrilu0_analysis(). This is especially !> useful, if memory is an issue and the analysis data is not required for further !> computation. !> !> \note !> Calling \p rocsparse_csrilu0_clear is optional. All allocated resources will be !> cleared, when the opaque \p rocsparse_mat_info struct is destroyed using !> rocsparse_destroy_mat_info(). !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[inout] !> info structure that holds the information collected during the analysis step. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p info pointer is invalid. !> \retval rocsparse_status_memory_error the buffer holding the meta data could not !> be deallocated. !> \retval rocsparse_status_internal_error an internal error occurred. interface rocsparse_csrilu0_clear function rocsparse_csrilu0_clear_(handle,myInfo) bind(c, name="rocsparse_csrilu0_clear") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrilu0_clear_ type(c_ptr),value :: handle type(c_ptr),value :: myInfo end function end interface interface rocsparse_scsrilu0 function rocsparse_scsrilu0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_scsrilu0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrilu0_rank_0,& rocsparse_scsrilu0_rank_1 #endif end interface interface rocsparse_dcsrilu0 function rocsparse_dcsrilu0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_dcsrilu0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrilu0_rank_0,& rocsparse_dcsrilu0_rank_1 #endif end interface interface rocsparse_ccsrilu0 function rocsparse_ccsrilu0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_ccsrilu0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrilu0_rank_0,& rocsparse_ccsrilu0_rank_1 #endif end interface interface rocsparse_zcsrilu0 function rocsparse_zcsrilu0_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) bind(c, name="rocsparse_zcsrilu0") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(kind(rocsparse_solve_policy_auto)),value :: policy type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrilu0_rank_0,& rocsparse_zcsrilu0_rank_1 #endif end interface interface rocsparse_sgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgtsv_buffer_size_full_rank,& rocsparse_sgtsv_buffer_size_rank_0,& rocsparse_sgtsv_buffer_size_rank_1 #endif end interface interface rocsparse_dgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgtsv_buffer_size_full_rank,& rocsparse_dgtsv_buffer_size_rank_0,& rocsparse_dgtsv_buffer_size_rank_1 #endif end interface interface rocsparse_cgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgtsv_buffer_size_full_rank,& rocsparse_cgtsv_buffer_size_rank_0,& rocsparse_cgtsv_buffer_size_rank_1 #endif end interface interface rocsparse_zgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgtsv_buffer_size_full_rank,& rocsparse_zgtsv_buffer_size_rank_0,& rocsparse_zgtsv_buffer_size_rank_1 #endif end interface interface rocsparse_sgtsv function rocsparse_sgtsv_(handle,m,n,dl,d,du,B,ldb,temp_buffer) bind(c, name="rocsparse_sgtsv") use iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgtsv_full_rank,& rocsparse_sgtsv_rank_0,& rocsparse_sgtsv_rank_1 #endif end interface interface rocsparse_dgtsv function rocsparse_dgtsv_(handle,m,n,dl,d,du,B,ldb,temp_buffer) bind(c, name="rocsparse_dgtsv") use iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgtsv_full_rank,& rocsparse_dgtsv_rank_0,& rocsparse_dgtsv_rank_1 #endif end interface interface rocsparse_cgtsv function rocsparse_cgtsv_(handle,m,n,dl,d,du,B,ldb,temp_buffer) bind(c, name="rocsparse_cgtsv") use iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgtsv_full_rank,& rocsparse_cgtsv_rank_0,& rocsparse_cgtsv_rank_1 #endif end interface interface rocsparse_zgtsv function rocsparse_zgtsv_(handle,m,n,dl,d,du,B,ldb,temp_buffer) bind(c, name="rocsparse_zgtsv") use iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgtsv_full_rank,& rocsparse_zgtsv_rank_0,& rocsparse_zgtsv_rank_1 #endif end interface interface rocsparse_sgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgtsv_no_pivot_buffer_size_full_rank,& rocsparse_sgtsv_no_pivot_buffer_size_rank_0,& rocsparse_sgtsv_no_pivot_buffer_size_rank_1 #endif end interface interface rocsparse_dgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgtsv_no_pivot_buffer_size_full_rank,& rocsparse_dgtsv_no_pivot_buffer_size_rank_0,& rocsparse_dgtsv_no_pivot_buffer_size_rank_1 #endif end interface interface rocsparse_cgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgtsv_no_pivot_buffer_size_full_rank,& rocsparse_cgtsv_no_pivot_buffer_size_rank_0,& rocsparse_cgtsv_no_pivot_buffer_size_rank_1 #endif end interface interface rocsparse_zgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgtsv_no_pivot_buffer_size_full_rank,& rocsparse_zgtsv_no_pivot_buffer_size_rank_0,& rocsparse_zgtsv_no_pivot_buffer_size_rank_1 #endif end interface interface rocsparse_sgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgtsv_no_pivot_full_rank,& rocsparse_sgtsv_no_pivot_rank_0,& rocsparse_sgtsv_no_pivot_rank_1 #endif end interface interface rocsparse_dgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgtsv_no_pivot_full_rank,& rocsparse_dgtsv_no_pivot_rank_0,& rocsparse_dgtsv_no_pivot_rank_1 #endif end interface interface rocsparse_cgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgtsv_no_pivot_full_rank,& rocsparse_cgtsv_no_pivot_rank_0,& rocsparse_cgtsv_no_pivot_rank_1 #endif end interface interface rocsparse_zgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: B integer(c_int),value :: ldb type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgtsv_no_pivot_full_rank,& rocsparse_zgtsv_no_pivot_rank_0,& rocsparse_zgtsv_no_pivot_rank_1 #endif end interface interface rocsparse_sgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batch_count integer(c_int),value :: batch_stride integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_0,& rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_1 #endif end interface interface rocsparse_dgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batch_count integer(c_int),value :: batch_stride integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_0,& rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_1 #endif end interface interface rocsparse_cgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batch_count integer(c_int),value :: batch_stride integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_0,& rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_1 #endif end interface interface rocsparse_zgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),value :: du type(c_ptr),value :: x integer(c_int),value :: batch_count integer(c_int),value :: batch_stride integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_0,& rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_1 #endif end interface interface rocsparse_sgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgtsv_no_pivot_strided_batch_rank_0,& rocsparse_sgtsv_no_pivot_strided_batch_rank_1 #endif end interface interface rocsparse_dgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgtsv_no_pivot_strided_batch_rank_0,& rocsparse_dgtsv_no_pivot_strided_batch_rank_1 #endif end interface interface rocsparse_cgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgtsv_no_pivot_strided_batch_rank_0,& rocsparse_cgtsv_no_pivot_strided_batch_rank_1 #endif end interface interface rocsparse_zgtsv_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: dl type(c_ptr),value :: d type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgtsv_no_pivot_strided_batch_rank_0,& rocsparse_zgtsv_no_pivot_strided_batch_rank_1 #endif end interface interface rocsparse_snnz 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_snnz_full_rank,& rocsparse_snnz_rank_0,& rocsparse_snnz_rank_1 #endif end interface interface rocsparse_dnnz 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dnnz_full_rank,& rocsparse_dnnz_rank_0,& rocsparse_dnnz_rank_1 #endif end interface interface rocsparse_cnnz 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cnnz_full_rank,& rocsparse_cnnz_rank_0,& rocsparse_cnnz_rank_1 #endif end interface interface rocsparse_znnz 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),value :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_znnz_full_rank,& rocsparse_znnz_rank_0,& rocsparse_znnz_rank_1 #endif end interface interface rocsparse_sdense2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sdense2csr_full_rank,& rocsparse_sdense2csr_rank_0,& rocsparse_sdense2csr_rank_1 #endif end interface interface rocsparse_ddense2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ddense2csr_full_rank,& rocsparse_ddense2csr_rank_0,& rocsparse_ddense2csr_rank_1 #endif end interface interface rocsparse_cdense2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cdense2csr_full_rank,& rocsparse_cdense2csr_rank_0,& rocsparse_cdense2csr_rank_1 #endif end interface interface rocsparse_zdense2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zdense2csr_full_rank,& rocsparse_zdense2csr_rank_0,& rocsparse_zdense2csr_rank_1 #endif end interface interface rocsparse_sprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_dense2csr_buffer_size_full_rank,& rocsparse_sprune_dense2csr_buffer_size_rank_0,& rocsparse_sprune_dense2csr_buffer_size_rank_1 #endif end interface interface rocsparse_dprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_dense2csr_buffer_size_full_rank,& rocsparse_dprune_dense2csr_buffer_size_rank_0,& rocsparse_dprune_dense2csr_buffer_size_rank_1 #endif end interface interface rocsparse_sprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_dense2csr_nnz_full_rank,& rocsparse_sprune_dense2csr_nnz_rank_0,& rocsparse_sprune_dense2csr_nnz_rank_1 #endif end interface interface rocsparse_dprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr type(c_ptr),value :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_dense2csr_nnz_full_rank,& rocsparse_dprune_dense2csr_nnz_rank_0,& rocsparse_dprune_dense2csr_nnz_rank_1 #endif end interface interface rocsparse_sprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_float) :: threshold type(c_ptr),value :: descr 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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_dense2csr_full_rank,& rocsparse_sprune_dense2csr_rank_0,& rocsparse_sprune_dense2csr_rank_1 #endif end interface interface rocsparse_dprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_double) :: threshold type(c_ptr),value :: descr 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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_dense2csr_full_rank,& rocsparse_dprune_dense2csr_rank_0,& rocsparse_dprune_dense2csr_rank_1 #endif end interface interface rocsparse_sprune_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,myInfo,buffer_size) bind(c, name="rocsparse_sprune_dense2csr_by_percentage_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_dense2csr_by_percentage_buffer_size_full_rank,& rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_0,& rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_1 #endif end interface interface rocsparse_dprune_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,myInfo,buffer_size) bind(c, name="rocsparse_dprune_dense2csr_by_percentage_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_dense2csr_by_percentage_buffer_size_full_rank,& rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_0,& rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_1 #endif end interface interface rocsparse_sprune_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,myInfo,temp_buffer) bind(c, name="rocsparse_sprune_dense2csr_nnz_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_dense2csr_nnz_by_percentage_full_rank,& rocsparse_sprune_dense2csr_nnz_by_percentage_rank_0,& rocsparse_sprune_dense2csr_nnz_by_percentage_rank_1 #endif end interface interface rocsparse_dprune_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,myInfo,temp_buffer) bind(c, name="rocsparse_dprune_dense2csr_nnz_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_dense2csr_nnz_by_percentage_full_rank,& rocsparse_dprune_dense2csr_nnz_by_percentage_rank_0,& rocsparse_dprune_dense2csr_nnz_by_percentage_rank_1 #endif end interface interface rocsparse_sprune_dense2csr_by_percentage function rocsparse_sprune_dense2csr_by_percentage_(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) bind(c, name="rocsparse_sprune_dense2csr_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_float),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_dense2csr_by_percentage_full_rank,& rocsparse_sprune_dense2csr_by_percentage_rank_0,& rocsparse_sprune_dense2csr_by_percentage_rank_1 #endif end interface interface rocsparse_dprune_dense2csr_by_percentage function rocsparse_dprune_dense2csr_by_percentage_(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) bind(c, name="rocsparse_dprune_dense2csr_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: A integer(c_int),value :: lda real(c_double),value :: percentage type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_dense2csr_by_percentage_full_rank,& rocsparse_dprune_dense2csr_by_percentage_rank_0,& rocsparse_dprune_dense2csr_by_percentage_rank_1 #endif end interface interface rocsparse_sdense2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sdense2csc_full_rank,& rocsparse_sdense2csc_rank_0,& rocsparse_sdense2csc_rank_1 #endif end interface interface rocsparse_ddense2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ddense2csc_full_rank,& rocsparse_ddense2csc_rank_0,& rocsparse_ddense2csc_rank_1 #endif end interface interface rocsparse_cdense2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cdense2csc_full_rank,& rocsparse_cdense2csc_rank_0,& rocsparse_cdense2csc_rank_1 #endif end interface interface rocsparse_zdense2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zdense2csc_full_rank,& rocsparse_zdense2csc_rank_0,& rocsparse_zdense2csc_rank_1 #endif end interface interface rocsparse_sdense2coo 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sdense2coo_full_rank,& rocsparse_sdense2coo_rank_0,& rocsparse_sdense2coo_rank_1 #endif end interface interface rocsparse_ddense2coo 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ddense2coo_full_rank,& rocsparse_ddense2coo_rank_0,& rocsparse_ddense2coo_rank_1 #endif end interface interface rocsparse_cdense2coo 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cdense2coo_full_rank,& rocsparse_cdense2coo_rank_0,& rocsparse_cdense2coo_rank_1 #endif end interface interface rocsparse_zdense2coo 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: A integer(c_int),value :: ld type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zdense2coo_full_rank,& rocsparse_zdense2coo_rank_0,& rocsparse_zdense2coo_rank_1 #endif end interface interface rocsparse_scsr2dense function rocsparse_scsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="rocsparse_scsr2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2dense_full_rank,& rocsparse_scsr2dense_rank_0,& rocsparse_scsr2dense_rank_1 #endif end interface interface rocsparse_dcsr2dense function rocsparse_dcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="rocsparse_dcsr2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2dense_full_rank,& rocsparse_dcsr2dense_rank_0,& rocsparse_dcsr2dense_rank_1 #endif end interface interface rocsparse_ccsr2dense function rocsparse_ccsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="rocsparse_ccsr2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2dense_full_rank,& rocsparse_ccsr2dense_rank_0,& rocsparse_ccsr2dense_rank_1 #endif end interface interface rocsparse_zcsr2dense function rocsparse_zcsr2dense_(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) bind(c, name="rocsparse_zcsr2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2dense_full_rank,& rocsparse_zcsr2dense_rank_0,& rocsparse_zcsr2dense_rank_1 #endif end interface interface rocsparse_scsc2dense function rocsparse_scsc2dense_(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) bind(c, name="rocsparse_scsc2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsc2dense_full_rank,& rocsparse_scsc2dense_rank_0,& rocsparse_scsc2dense_rank_1 #endif end interface interface rocsparse_dcsc2dense function rocsparse_dcsc2dense_(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) bind(c, name="rocsparse_dcsc2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsc2dense_full_rank,& rocsparse_dcsc2dense_rank_0,& rocsparse_dcsc2dense_rank_1 #endif end interface interface rocsparse_ccsc2dense function rocsparse_ccsc2dense_(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) bind(c, name="rocsparse_ccsc2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsc2dense_full_rank,& rocsparse_ccsc2dense_rank_0,& rocsparse_ccsc2dense_rank_1 #endif end interface interface rocsparse_zcsc2dense function rocsparse_zcsc2dense_(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) bind(c, name="rocsparse_zcsc2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csc_val type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsc2dense_full_rank,& rocsparse_zcsc2dense_rank_0,& rocsparse_zcsc2dense_rank_1 #endif end interface interface rocsparse_scoo2dense function rocsparse_scoo2dense_(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) bind(c, name="rocsparse_scoo2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scoo2dense_full_rank,& rocsparse_scoo2dense_rank_0,& rocsparse_scoo2dense_rank_1 #endif end interface interface rocsparse_dcoo2dense function rocsparse_dcoo2dense_(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) bind(c, name="rocsparse_dcoo2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcoo2dense_full_rank,& rocsparse_dcoo2dense_rank_0,& rocsparse_dcoo2dense_rank_1 #endif end interface interface rocsparse_ccoo2dense function rocsparse_ccoo2dense_(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) bind(c, name="rocsparse_ccoo2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccoo2dense_full_rank,& rocsparse_ccoo2dense_rank_0,& rocsparse_ccoo2dense_rank_1 #endif end interface interface rocsparse_zcoo2dense function rocsparse_zcoo2dense_(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) bind(c, name="rocsparse_zcoo2dense") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: coo_val type(c_ptr),value :: coo_row_ind type(c_ptr),value :: coo_col_ind type(c_ptr),value :: A integer(c_int),value :: ld end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcoo2dense_full_rank,& rocsparse_zcoo2dense_rank_0,& rocsparse_zcoo2dense_rank_1 #endif end interface interface rocsparse_snnz_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_snnz_compress_rank_0,& rocsparse_snnz_compress_rank_1 #endif end interface interface rocsparse_dnnz_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dnnz_compress_rank_0,& rocsparse_dnnz_compress_rank_1 #endif end interface interface rocsparse_cnnz_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cnnz_compress_rank_0,& rocsparse_cnnz_compress_rank_1 #endif end interface interface rocsparse_znnz_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_compress_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_znnz_compress_rank_0,& rocsparse_znnz_compress_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse CSR matrix into a sparse COO matrix !> !> \details !> \p rocsparse_csr2coo converts the CSR array containing the row offsets, that point !> to the start of every row, into a COO array of row indices. !> !> \note !> It can also be used to convert a CSC array containing the column offsets into a COO !> array of column indices. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> csr_row_ptr array of \p m+1 elements that point to the start of every row !> of the sparse CSR matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSR matrix. !> @param[in] !> m number of rows of the sparse CSR matrix. !> @param[out] !> coo_row_ind array of \p nnz elements containing the row indices of the sparse COO !> matrix. !> @param[in] !> idx_base \p rocsparse_index_base_zero or \p rocsparse_index_base_one. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p csr_row_ptr or \p coo_row_ind !> pointer is invalid. !> \retval rocsparse_status_arch_mismatch the device is not supported. !> !> \par Example !> This example converts a CSR matrix into a COO matrix. !> \code{.c} !> / 1 2 0 3 0 !> / A = 0 4 5 0 0 !> / 6 0 0 7 8 !> !> rocsparse_int m = 3; !> rocsparse_int n = 5; !> rocsparse_int nnz = 8; !> !> csr_row_ptr[m+1] = {0, 3, 5, 8};/ device memory !> csr_col_ind[nnz] = {0, 1, 3, 1, 2, 0, 3, 4};/ device memory !> csr_val[nnz] = {1, 2, 3, 4, 5, 6, 7, 8};/ device memory !> !> / Allocate COO matrix arrays !> rocsparse_int* coo_row_ind; !> rocsparse_int* coo_col_ind; !> float* coo_val; !> !> hipMalloc((void**)&coo_row_ind, sizeof(rocsparse_int) * nnz); !> hipMalloc((void**)&coo_col_ind, sizeof(rocsparse_int) * nnz); !> hipMalloc((void**)&coo_val, sizeof(float) * nnz); !> !> / Convert the csr row offsets into coo row indices !> rocsparse_csr2coo(handle, !> csr_row_ptr, !> nnz, !> m, !> coo_row_ind, !> rocsparse_index_base_zero); !> !> / Copy the column and value arrays !> hipMemcpy(coo_col_ind, !> csr_col_ind, !> sizeof(rocsparse_int) * nnz, !> hipMemcpyDeviceToDevice); !> !> hipMemcpy(coo_val, !> csr_val, !> sizeof(float) * nnz, !> hipMemcpyDeviceToDevice); !> \endcode interface rocsparse_csr2coo function rocsparse_csr2coo_(handle,csr_row_ptr,nnz,m,coo_row_ind,idx_base) bind(c, name="rocsparse_csr2coo") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2coo_ type(c_ptr),value :: handle type(c_ptr),value :: csr_row_ptr integer(c_int),value :: nnz integer(c_int),value :: m type(c_ptr),value :: coo_row_ind integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csr2coo_rank_0,& rocsparse_csr2coo_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse CSR matrix into a sparse CSC matrix !> !> \details !> \p rocsparse_csr2csc_buffer_size returns the size of the temporary storage buffer !> required by rocsparse_scsr2csc(), rocsparse_dcsr2csc(), rocsparse_ccsr2csc() and !> rocsparse_zcsr2csc(). The temporary storage buffer must be allocated by the user. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSR matrix. !> @param[in] !> n number of columns of the sparse CSR matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSR matrix. !> @param[in] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[in] !> csr_col_ind array of \p nnz elements containing the column indices of the sparse !> CSR matrix. !> @param[in] !> copy_values \p rocsparse_action_symbolic or \p rocsparse_action_numeric. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer required by !> rocsparse_scsr2csc(), rocsparse_dcsr2csc(), rocsparse_ccsr2csc() and !> rocsparse_zcsr2csc(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p csr_row_ptr, \p csr_col_ind or !> \p buffer_size pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(kind(rocsparse_action_symbolic)),value :: copy_values integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csr2csc_buffer_size_rank_0,& rocsparse_csr2csc_buffer_size_rank_1 #endif end interface interface rocsparse_scsr2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),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(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2csc_rank_0,& rocsparse_scsr2csc_rank_1 #endif end interface interface rocsparse_dcsr2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),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(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2csc_rank_0,& rocsparse_dcsr2csc_rank_1 #endif end interface interface rocsparse_ccsr2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),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(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2csc_rank_0,& rocsparse_ccsr2csc_rank_1 #endif end interface interface rocsparse_zcsr2csc 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),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(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2csc_rank_0,& rocsparse_zcsr2csc_rank_1 #endif end interface interface rocsparse_sgebsr2gebsc_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,p_buffer_size) bind(c, name="rocsparse_sgebsr2gebsc_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),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 :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgebsr2gebsc_buffer_size_rank_0,& rocsparse_sgebsr2gebsc_buffer_size_rank_1 #endif end interface interface rocsparse_dgebsr2gebsc_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,p_buffer_size) bind(c, name="rocsparse_dgebsr2gebsc_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),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 :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgebsr2gebsc_buffer_size_rank_0,& rocsparse_dgebsr2gebsc_buffer_size_rank_1 #endif end interface interface rocsparse_cgebsr2gebsc_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,p_buffer_size) bind(c, name="rocsparse_cgebsr2gebsc_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),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 :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgebsr2gebsc_buffer_size_rank_0,& rocsparse_cgebsr2gebsc_buffer_size_rank_1 #endif end interface interface rocsparse_zgebsr2gebsc_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,p_buffer_size) bind(c, name="rocsparse_zgebsr2gebsc_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),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 :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgebsr2gebsc_buffer_size_rank_0,& rocsparse_zgebsr2gebsc_buffer_size_rank_1 #endif end interface interface rocsparse_sgebsr2gebsc 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 iso_c_binding use hipfort_rocsparse_enums 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),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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgebsr2gebsc_rank_0,& rocsparse_sgebsr2gebsc_rank_1 #endif end interface interface rocsparse_dgebsr2gebsc 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 iso_c_binding use hipfort_rocsparse_enums 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),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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgebsr2gebsc_rank_0,& rocsparse_dgebsr2gebsc_rank_1 #endif end interface interface rocsparse_cgebsr2gebsc 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 iso_c_binding use hipfort_rocsparse_enums 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),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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgebsr2gebsc_rank_0,& rocsparse_cgebsr2gebsc_rank_1 #endif end interface interface rocsparse_zgebsr2gebsc 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 iso_c_binding use hipfort_rocsparse_enums 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),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 :: bsc_val type(c_ptr),value :: bsc_row_ind type(c_ptr),value :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)),value :: copy_values integer(kind(rocsparse_index_base_zero)),value :: idx_base type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgebsr2gebsc_rank_0,& rocsparse_zgebsr2gebsc_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse CSR matrix into a sparse ELL matrix !> !> \details !> \p rocsparse_csr2ell_width computes the maximum of the per row non-zero elements !> over all rows, the ELL \p width, for a given CSR matrix. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSR matrix. !> @param[in] !> csr_descr descriptor of the sparse CSR matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[in] !> ell_descr descriptor of the sparse ELL matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[out] !> ell_width pointer to the number of non-zero elements per row in ELL storage !> format. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m is invalid. !> \retval rocsparse_status_invalid_pointer \p csr_descr, \p csr_row_ptr, or !> \p ell_width pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_not_implemented !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. interface 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2ell_width_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: ell_descr type(c_ptr),value :: ell_width end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csr2ell_width_rank_0,& rocsparse_csr2ell_width_rank_1 #endif end interface interface rocsparse_scsr2ell 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2ell_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2ell_rank_0,& rocsparse_scsr2ell_rank_1 #endif end interface interface rocsparse_dcsr2ell 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2ell_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2ell_rank_0,& rocsparse_dcsr2ell_rank_1 #endif end interface interface rocsparse_ccsr2ell 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2ell_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2ell_rank_0,& rocsparse_ccsr2ell_rank_1 #endif end interface interface rocsparse_zcsr2ell 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2ell_ type(c_ptr),value :: handle integer(c_int),value :: m type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2ell_rank_0,& rocsparse_zcsr2ell_rank_1 #endif end interface interface rocsparse_scsr2hyb 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: hyb integer(c_int),value :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)),value :: partition_type end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2hyb_rank_0,& rocsparse_scsr2hyb_rank_1 #endif end interface interface rocsparse_dcsr2hyb 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: hyb integer(c_int),value :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)),value :: partition_type end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2hyb_rank_0,& rocsparse_dcsr2hyb_rank_1 #endif end interface interface rocsparse_ccsr2hyb 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: hyb integer(c_int),value :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)),value :: partition_type end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2hyb_rank_0,& rocsparse_ccsr2hyb_rank_1 #endif end interface interface rocsparse_zcsr2hyb 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: hyb integer(c_int),value :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)),value :: partition_type end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2hyb_rank_0,& rocsparse_zcsr2hyb_rank_1 #endif end interface !> \ingroup conv_module !> \brief !> This function computes the number of nonzero block columns per row and the total number of nonzero blocks in a sparse !> BSR matrix given a sparse CSR matrix as input. !> !> \details !> The routine does support asynchronous execution if the pointer mode is set to device. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> !> @param[in] !> dir direction that specified whether to count nonzero elements by \p rocsparse_direction_row or by !> \p rocsparse_direction_row. !> !> @param[in] !> m number of rows of the sparse CSR matrix. !> !> @param[in] !> n number of columns of the sparse CSR matrix. !> !> @param[in] !> csr_descr descriptor of the sparse CSR matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> csr_row_ptr integer array containing \p m+1 elements that point to the start of each row of the CSR matrix !> !> @param[in] !> csr_col_ind integer array of the column indices for each non-zero element in the CSR matrix !> !> @param[in] !> block_dim the block dimension of the BSR matrix. Between 1 and min(m, n) !> !> @param[in] !> bsr_descr descriptor of the sparse BSR matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[out] !> bsr_row_ptr integer array containing \p mb+1 elements that point to the start of each block row of the BSR matrix !> !> @param[out] !> bsr_nnz total number of nonzero elements in device or host memory. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m or \p n or \p block_dim is invalid. !> \retval rocsparse_status_invalid_pointer \p csr_row_ptr or \p csr_col_ind or \p bsr_row_ptr or \p bsr_nnz !> pointer is invalid. interface 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2bsr_nnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: block_dim type(c_ptr),value :: bsr_descr type(c_ptr),value :: bsr_row_ptr type(c_ptr),value :: bsr_nnz end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csr2bsr_nnz_rank_0,& rocsparse_csr2bsr_nnz_rank_1 #endif end interface interface rocsparse_scsr2bsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2bsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2bsr_rank_0,& rocsparse_scsr2bsr_rank_1 #endif end interface interface rocsparse_dcsr2bsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2bsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2bsr_rank_0,& rocsparse_dcsr2bsr_rank_1 #endif end interface interface rocsparse_ccsr2bsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2bsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2bsr_rank_0,& rocsparse_ccsr2bsr_rank_1 #endif end interface interface rocsparse_zcsr2bsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2bsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2bsr_rank_0,& rocsparse_zcsr2bsr_rank_1 #endif end interface interface rocsparse_scsr2gebsr_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,p_buffer_size) bind(c, name="rocsparse_scsr2gebsr_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2gebsr_buffer_size_rank_0,& rocsparse_scsr2gebsr_buffer_size_rank_1 #endif end interface interface rocsparse_dcsr2gebsr_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,p_buffer_size) bind(c, name="rocsparse_dcsr2gebsr_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2gebsr_buffer_size_rank_0,& rocsparse_dcsr2gebsr_buffer_size_rank_1 #endif end interface interface rocsparse_ccsr2gebsr_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,p_buffer_size) bind(c, name="rocsparse_ccsr2gebsr_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2gebsr_buffer_size_rank_0,& rocsparse_ccsr2gebsr_buffer_size_rank_1 #endif end interface interface rocsparse_zcsr2gebsr_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,p_buffer_size) bind(c, name="rocsparse_zcsr2gebsr_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_int),value :: row_block_dim integer(c_int),value :: col_block_dim type(c_ptr),value :: p_buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2gebsr_buffer_size_rank_0,& rocsparse_zcsr2gebsr_buffer_size_rank_1 #endif end interface interface 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_devhost,p_buffer) bind(c, name="rocsparse_csr2gebsr_nnz") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2gebsr_nnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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_devhost type(c_ptr),value :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csr2gebsr_nnz_rank_0,& rocsparse_csr2gebsr_nnz_rank_1 #endif end interface interface rocsparse_scsr2gebsr 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,p_buffer) bind(c, name="rocsparse_scsr2gebsr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2gebsr_rank_0,& rocsparse_scsr2gebsr_rank_1 #endif end interface interface rocsparse_dcsr2gebsr 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,p_buffer) bind(c, name="rocsparse_dcsr2gebsr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2gebsr_rank_0,& rocsparse_dcsr2gebsr_rank_1 #endif end interface interface rocsparse_ccsr2gebsr 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,p_buffer) bind(c, name="rocsparse_ccsr2gebsr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2gebsr_rank_0,& rocsparse_ccsr2gebsr_rank_1 #endif end interface interface rocsparse_zcsr2gebsr 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,p_buffer) bind(c, name="rocsparse_zcsr2gebsr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: m integer(c_int),value :: n type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),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 :: p_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2gebsr_rank_0,& rocsparse_zcsr2gebsr_rank_1 #endif end interface interface rocsparse_scsr2csr_compress function rocsparse_scsr2csr_compress_(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) bind(c, name="rocsparse_scsr2csr_compress") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A integer(c_int),value :: nnz_A type(c_ptr),value :: nnz_per_row type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C real(c_float),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsr2csr_compress_rank_0,& rocsparse_scsr2csr_compress_rank_1 #endif end interface interface rocsparse_dcsr2csr_compress function rocsparse_dcsr2csr_compress_(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) bind(c, name="rocsparse_dcsr2csr_compress") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A integer(c_int),value :: nnz_A type(c_ptr),value :: nnz_per_row type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C real(c_double),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsr2csr_compress_rank_0,& rocsparse_dcsr2csr_compress_rank_1 #endif end interface interface rocsparse_ccsr2csr_compress function rocsparse_ccsr2csr_compress_(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) bind(c, name="rocsparse_ccsr2csr_compress") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A integer(c_int),value :: nnz_A type(c_ptr),value :: nnz_per_row type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C complex(c_float_complex),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsr2csr_compress_rank_0,& rocsparse_ccsr2csr_compress_rank_1 #endif end interface interface rocsparse_zcsr2csr_compress function rocsparse_zcsr2csr_compress_(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) bind(c, name="rocsparse_zcsr2csr_compress") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A integer(c_int),value :: nnz_A type(c_ptr),value :: nnz_per_row type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C complex(c_double_complex),value :: tol end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsr2csr_compress_rank_0,& rocsparse_zcsr2csr_compress_rank_1 #endif end interface interface rocsparse_sprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float) :: threshold type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_csr2csr_buffer_size_rank_0,& rocsparse_sprune_csr2csr_buffer_size_rank_1 #endif end interface interface rocsparse_dprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double) :: threshold type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_csr2csr_buffer_size_rank_0,& rocsparse_dprune_csr2csr_buffer_size_rank_1 #endif end interface interface rocsparse_sprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float) :: threshold type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_csr2csr_nnz_rank_0,& rocsparse_sprune_csr2csr_nnz_rank_1 #endif end interface interface rocsparse_dprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double) :: threshold type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_csr2csr_nnz_rank_0,& rocsparse_dprune_csr2csr_nnz_rank_1 #endif end interface interface rocsparse_sprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float) :: threshold type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_csr2csr_rank_0,& rocsparse_sprune_csr2csr_rank_1 #endif end interface interface rocsparse_dprune_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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double) :: threshold type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_csr2csr_rank_0,& rocsparse_dprune_csr2csr_rank_1 #endif end interface interface rocsparse_sprune_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,myInfo,buffer_size) bind(c, name="rocsparse_sprune_csr2csr_by_percentage_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float),value :: percentage type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_0,& rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_1 #endif end interface interface rocsparse_dprune_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,myInfo,buffer_size) bind(c, name="rocsparse_dprune_csr2csr_by_percentage_buffer_size") use iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double),value :: percentage type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: myInfo integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_0,& rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_1 #endif end interface interface rocsparse_sprune_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,myInfo,temp_buffer) bind(c, name="rocsparse_sprune_csr2csr_nnz_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float),value :: percentage type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_csr2csr_nnz_by_percentage_rank_0,& rocsparse_sprune_csr2csr_nnz_by_percentage_rank_1 #endif end interface interface rocsparse_dprune_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,myInfo,temp_buffer) bind(c, name="rocsparse_dprune_csr2csr_nnz_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double),value :: percentage type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_csr2csr_nnz_by_percentage_rank_0,& rocsparse_dprune_csr2csr_nnz_by_percentage_rank_1 #endif end interface interface rocsparse_sprune_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,myInfo,temp_buffer) bind(c, name="rocsparse_sprune_csr2csr_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_float),value :: percentage type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sprune_csr2csr_by_percentage_rank_0,& rocsparse_sprune_csr2csr_by_percentage_rank_1 #endif end interface interface rocsparse_dprune_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,myInfo,temp_buffer) bind(c, name="rocsparse_dprune_csr2csr_by_percentage") use iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_descr_A type(c_ptr),value :: csr_val_A type(c_ptr),value :: csr_row_ptr_A type(c_ptr),value :: csr_col_ind_A real(c_double),value :: percentage type(c_ptr),value :: csr_descr_C type(c_ptr),value :: csr_val_C type(c_ptr),value :: csr_row_ptr_C type(c_ptr),value :: csr_col_ind_C type(c_ptr),value :: myInfo type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dprune_csr2csr_by_percentage_rank_0,& rocsparse_dprune_csr2csr_by_percentage_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse COO matrix into a sparse CSR matrix !> !> \details !> \p rocsparse_coo2csr converts the COO array containing the row indices into a !> CSR array of row offsets, that point to the start of every row. !> It is assumed that the COO row index array is sorted. !> !> \note It can also be used, to convert a COO array containing the column indices into !> a CSC array of column offsets, that point to the start of every column. Then, it is !> assumed that the COO column index array is sorted, instead. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> coo_row_ind array of \p nnz elements containing the row indices of the sparse COO !> matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSR matrix. !> @param[in] !> m number of rows of the sparse CSR matrix. !> @param[out] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[in] !> idx_base \p rocsparse_index_base_zero or \p rocsparse_index_base_one. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p coo_row_ind or \p csr_row_ptr !> pointer is invalid. !> !> \par Example !> This example converts a COO matrix into a CSR matrix. !> \code{.c} !> / 1 2 0 3 0 !> / A = 0 4 5 0 0 !> / 6 0 0 7 8 !> !> rocsparse_int m = 3; !> rocsparse_int n = 5; !> rocsparse_int nnz = 8; !> !> coo_row_ind[nnz] = {0, 0, 0, 1, 1, 2, 2, 2};/ device memory !> coo_col_ind[nnz] = {0, 1, 3, 1, 2, 0, 3, 4};/ device memory !> coo_val[nnz] = {1, 2, 3, 4, 5, 6, 7, 8};/ device memory !> !> / Allocate CSR matrix arrays !> rocsparse_int* csr_row_ptr; !> rocsparse_int* csr_col_ind; !> float* csr_val; !> !> hipMalloc((void**)&csr_row_ptr, sizeof(rocsparse_int) * (m + 1)); !> hipMalloc((void**)&csr_col_ind, sizeof(rocsparse_int) * nnz); !> hipMalloc((void**)&csr_val, sizeof(float) * nnz); !> !> / Convert the coo row indices into csr row offsets !> rocsparse_coo2csr(handle, !> coo_row_ind, !> nnz, !> m, !> csr_row_ptr, !> rocsparse_index_base_zero); !> !> / Copy the column and value arrays !> hipMemcpy(csr_col_ind, !> coo_col_ind, !> sizeof(rocsparse_int) * nnz, !> hipMemcpyDeviceToDevice); !> !> hipMemcpy(csr_val, !> coo_val, !> sizeof(float) * nnz, !> hipMemcpyDeviceToDevice); !> \endcode interface rocsparse_coo2csr function rocsparse_coo2csr_(handle,coo_row_ind,nnz,m,csr_row_ptr,idx_base) bind(c, name="rocsparse_coo2csr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo2csr_ type(c_ptr),value :: handle type(c_ptr),value :: coo_row_ind integer(c_int),value :: nnz integer(c_int),value :: m type(c_ptr),value :: csr_row_ptr integer(kind(rocsparse_index_base_zero)),value :: idx_base end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_coo2csr_rank_0,& rocsparse_coo2csr_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse ELL matrix into a sparse CSR matrix !> !> \details !> \p rocsparse_ell2csr_nnz computes the total CSR non-zero elements and the CSR !> row offsets, that point to the start of every row of the sparse CSR matrix, for !> a given ELL matrix. It is assumed that \p csr_row_ptr has been allocated with !> size \p m + 1. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse ELL matrix. !> @param[in] !> n number of columns of the sparse ELL matrix. !> @param[in] !> ell_descr descriptor of the sparse ELL matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> ell_width number of non-zero elements per row in ELL storage format. !> @param[in] !> ell_col_ind array of \p m times \p ell_width elements containing the column indices !> of the sparse ELL matrix. !> @param[in] !> csr_descr descriptor of the sparse CSR matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[out] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[out] !> csr_nnz pointer to the total number of non-zero elements in CSR storage !> format. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p ell_width is invalid. !> \retval rocsparse_status_invalid_pointer \p ell_descr, \p ell_col_ind, !> \p csr_descr, \p csr_row_ptr or \p csr_nnz pointer is invalid. !> \retval rocsparse_status_not_implemented !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. interface 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_col_ind type(c_ptr),value :: csr_descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_nnz end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ell2csr_nnz_rank_0,& rocsparse_ell2csr_nnz_rank_1 #endif end interface interface rocsparse_sell2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sell2csr_rank_0,& rocsparse_sell2csr_rank_1 #endif end interface interface rocsparse_dell2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dell2csr_rank_0,& rocsparse_dell2csr_rank_1 #endif end interface interface rocsparse_cell2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cell2csr_rank_0,& rocsparse_cell2csr_rank_1 #endif end interface interface rocsparse_zell2csr 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: ell_descr integer(c_int),value :: ell_width type(c_ptr),value :: ell_val type(c_ptr),value :: ell_col_ind type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zell2csr_rank_0,& rocsparse_zell2csr_rank_1 #endif end interface !> \ingroup conv_module !> \brief Convert a sparse HYB matrix into a sparse CSR matrix !> !> \details !> \p rocsparse_hyb2csr_buffer_size returns the size of the temporary storage buffer !> required by rocsparse_shyb2csr(), rocsparse_dhyb2csr(), rocsparse_chyb2csr() and !> rocsparse_dhyb2csr(). The temporary storage buffer must be allocated by the user. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> descr descriptor of the sparse HYB matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> hyb sparse matrix in HYB format. !> @param[in] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer required by !> rocsparse_shyb2csr(), rocsparse_dhyb2csr(), rocsparse_chyb2csr() and !> rocsparse_zhyb2csr(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p descr, \p hyb, \p csr_row_ptr or !> \p buffer_size pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_not_implemented !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. interface 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_hyb2csr_buffer_size_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),value :: hyb type(c_ptr),value :: csr_row_ptr integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_hyb2csr_buffer_size_rank_0,& rocsparse_hyb2csr_buffer_size_rank_1 #endif end interface interface rocsparse_shyb2csr function rocsparse_shyb2csr_(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) bind(c, name="rocsparse_shyb2csr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_shyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_shyb2csr_rank_0,& rocsparse_shyb2csr_rank_1 #endif end interface interface rocsparse_dhyb2csr function rocsparse_dhyb2csr_(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) bind(c, name="rocsparse_dhyb2csr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dhyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dhyb2csr_rank_0,& rocsparse_dhyb2csr_rank_1 #endif end interface interface rocsparse_chyb2csr function rocsparse_chyb2csr_(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) bind(c, name="rocsparse_chyb2csr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_chyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_chyb2csr_rank_0,& rocsparse_chyb2csr_rank_1 #endif end interface interface rocsparse_zhyb2csr function rocsparse_zhyb2csr_(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) bind(c, name="rocsparse_zhyb2csr") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zhyb2csr_ type(c_ptr),value :: handle type(c_ptr),value :: descr type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zhyb2csr_rank_0,& rocsparse_zhyb2csr_rank_1 #endif end interface !> \ingroup conv_module !> \brief Create the identity map !> !> \details !> \p rocsparse_create_identity_permutation stores the identity map in \p p, such that !> \f$p = 0:1:(n-1)\f$. !> !> \code{.c} !> for(i = 0; i < n; ++i) !> { !> p[i] = i; !> } !> \endcode !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> n size of the map \p p. !> @param[out] !> p array of \p n integers containing the map. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p n is invalid. !> \retval rocsparse_status_invalid_pointer \p p pointer is invalid. !> !> \par Example !> The following example creates an identity permutation. !> \code{.c} !> rocsparse_int size = 200; !> !> / Allocate memory to hold the identity map !> rocsparse_int* perm; !> hipMalloc((void**)&perm, sizeof(rocsparse_int) * size); !> !> / Fill perm with the identity permutation !> rocsparse_create_identity_permutation(handle, size, perm); !> \endcode interface rocsparse_create_identity_permutation function rocsparse_create_identity_permutation_(handle,n,p) bind(c, name="rocsparse_create_identity_permutation") use iso_c_binding use hipfort_rocsparse_enums 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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_create_identity_permutation_rank_0,& rocsparse_create_identity_permutation_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSR matrix !> !> \details !> \p rocsparse_csrsort_buffer_size returns the size of the temporary storage buffer !> required by rocsparse_csrsort(). The temporary storage buffer must be allocated by !> the user. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSR matrix. !> @param[in] !> n number of columns of the sparse CSR matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSR matrix. !> @param[in] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[in] !> csr_col_ind array of \p nnz elements containing the column indices of the sparse !> CSR matrix. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer required by !> rocsparse_csrsort(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p csr_row_ptr, \p csr_col_ind or !> \p buffer_size pointer is invalid. interface 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csrsort_buffer_size_rank_0,& rocsparse_csrsort_buffer_size_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSR matrix !> !> \details !> \p rocsparse_csrsort sorts a matrix in CSR format. The sorted permutation vector !> \p perm can be used to obtain sorted \p csr_val array. In this case, \p perm must be !> initialized as the identity permutation, see rocsparse_create_identity_permutation(). !> !> \p rocsparse_csrsort requires extra temporary storage buffer that has to be allocated by !> the user. Storage buffer size can be determined by rocsparse_csrsort_buffer_size(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSR matrix. !> @param[in] !> n number of columns of the sparse CSR matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSR matrix. !> @param[in] !> descr descriptor of the sparse CSR matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> csr_row_ptr array of \p m+1 elements that point to the start of every row of the !> sparse CSR matrix. !> @param[inout] !> csr_col_ind array of \p nnz elements containing the column indices of the sparse !> CSR matrix. !> @param[inout] !> perm array of \p nnz integers containing the unsorted map indices, can be !> \p NULL. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user, size is returned by !> rocsparse_csrsort_buffer_size(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p descr, \p csr_row_ptr, \p csr_col_ind !> or \p temp_buffer pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_not_implemented !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. !> !> \par Example !> The following example sorts a \f$3 \times 3\f$ CSR matrix. !> \code{.c} !> / 1 2 3 !> / A = 4 5 6 !> / 7 8 9 !> rocsparse_int m = 3; !> rocsparse_int n = 3; !> rocsparse_int nnz = 9; !> !> csr_row_ptr[m + 1] = {0, 3, 6, 9};/ device memory !> csr_col_ind[nnz] = {2, 0, 1, 0, 1, 2, 0, 2, 1};/ device memory !> csr_val[nnz] = {3, 1, 2, 4, 5, 6, 7, 9, 8};/ device memory !> !> / Create permutation vector perm as the identity map !> rocsparse_int* perm; !> hipMalloc((void**)&perm, sizeof(rocsparse_int) * nnz); !> rocsparse_create_identity_permutation(handle, nnz, perm); !> !> / Allocate temporary buffer !> size_t buffer_size; !> void* temp_buffer; !> rocsparse_csrsort_buffer_size(handle, m, n, nnz, csr_row_ptr, csr_col_ind, &buffer_size); !> hipMalloc(&temp_buffer, buffer_size); !> !> / Sort the CSR matrix !> rocsparse_csrsort(handle, m, n, nnz, descr, csr_row_ptr, csr_col_ind, perm, temp_buffer); !> !> / Gather sorted csr_val array !> float* csr_val_sorted; !> hipMalloc((void**)&csr_val_sorted, sizeof(float) * nnz); !> rocsparse_sgthr(handle, nnz, csr_val, csr_val_sorted, perm, rocsparse_index_base_zero); !> !> / Clean up !> hipFree(temp_buffer); !> hipFree(perm); !> hipFree(csr_val); !> \endcode interface rocsparse_csrsort function rocsparse_csrsort_(handle,m,n,nnz,descr,csr_row_ptr,csr_col_ind,perm,temp_buffer) bind(c, name="rocsparse_csrsort") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind type(c_ptr),value :: perm type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_csrsort_rank_0,& rocsparse_csrsort_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSC matrix !> !> \details !> \p rocsparse_cscsort_buffer_size returns the size of the temporary storage buffer !> required by rocsparse_cscsort(). The temporary storage buffer must be allocated by !> the user. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSC matrix. !> @param[in] !> n number of columns of the sparse CSC matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSC matrix. !> @param[in] !> csc_col_ptr array of \p n+1 elements that point to the start of every column of !> the sparse CSC matrix. !> @param[in] !> csc_row_ind array of \p nnz elements containing the row indices of the sparse !> CSC matrix. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer required by !> rocsparse_cscsort(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p csc_col_ptr, \p csc_row_ind or !> \p buffer_size pointer is invalid. interface 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cscsort_buffer_size_rank_0,& rocsparse_cscsort_buffer_size_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse CSC matrix !> !> \details !> \p rocsparse_cscsort sorts a matrix in CSC format. The sorted permutation vector !> \p perm can be used to obtain sorted \p csc_val array. In this case, \p perm must be !> initialized as the identity permutation, see rocsparse_create_identity_permutation(). !> !> \p rocsparse_cscsort requires extra temporary storage buffer that has to be allocated by !> the user. Storage buffer size can be determined by rocsparse_cscsort_buffer_size(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse CSC matrix. !> @param[in] !> n number of columns of the sparse CSC matrix. !> @param[in] !> nnz number of non-zero entries of the sparse CSC matrix. !> @param[in] !> descr descriptor of the sparse CSC matrix. Currently, only !> \p rocsparse_matrix_type_general is supported. !> @param[in] !> csc_col_ptr array of \p n+1 elements that point to the start of every column of !> the sparse CSC matrix. !> @param[inout] !> csc_row_ind array of \p nnz elements containing the row indices of the sparse !> CSC matrix. !> @param[inout] !> perm array of \p nnz integers containing the unsorted map indices, can be !> \p NULL. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user, size is returned by !> rocsparse_cscsort_buffer_size(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p descr, \p csc_col_ptr, \p csc_row_ind !> or \p temp_buffer pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> \retval rocsparse_status_not_implemented !> \p rocsparse_matrix_type != \p rocsparse_matrix_type_general. !> !> \par Example !> The following example sorts a \f$3 \times 3\f$ CSC matrix. !> \code{.c} !> / 1 2 3 !> / A = 4 5 6 !> / 7 8 9 !> rocsparse_int m = 3; !> rocsparse_int n = 3; !> rocsparse_int nnz = 9; !> !> csc_col_ptr[m + 1] = {0, 3, 6, 9};/ device memory !> csc_row_ind[nnz] = {2, 0, 1, 0, 1, 2, 0, 2, 1};/ device memory !> csc_val[nnz] = {7, 1, 4, 2, 5, 8, 3, 9, 6};/ device memory !> !> / Create permutation vector perm as the identity map !> rocsparse_int* perm; !> hipMalloc((void**)&perm, sizeof(rocsparse_int) * nnz); !> rocsparse_create_identity_permutation(handle, nnz, perm); !> !> / Allocate temporary buffer !> size_t buffer_size; !> void* temp_buffer; !> rocsparse_cscsort_buffer_size(handle, m, n, nnz, csc_col_ptr, csc_row_ind, &buffer_size); !> hipMalloc(&temp_buffer, buffer_size); !> !> / Sort the CSC matrix !> rocsparse_cscsort(handle, m, n, nnz, descr, csc_col_ptr, csc_row_ind, perm, temp_buffer); !> !> / Gather sorted csc_val array !> float* csc_val_sorted; !> hipMalloc((void**)&csc_val_sorted, sizeof(float) * nnz); !> rocsparse_sgthr(handle, nnz, csc_val, csc_val_sorted, perm, rocsparse_index_base_zero); !> !> / Clean up !> hipFree(temp_buffer); !> hipFree(perm); !> hipFree(csc_val); !> \endcode interface rocsparse_cscsort function rocsparse_cscsort_(handle,m,n,nnz,descr,csc_col_ptr,csc_row_ind,perm,temp_buffer) bind(c, name="rocsparse_cscsort") use iso_c_binding use hipfort_rocsparse_enums 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),value :: descr type(c_ptr),value :: csc_col_ptr type(c_ptr),value :: csc_row_ind type(c_ptr),value :: perm type(c_ptr),value :: temp_buffer end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cscsort_rank_0,& rocsparse_cscsort_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse COO matrix !> !> \details !> \p coosort_buffer_size returns the size of the temporary storage buffer that is !> required by rocsparse_coosort_by_row() and rocsparse_coosort_by_column(). The !> temporary storage buffer has to be allocated by the user. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse COO matrix. !> @param[in] !> n number of columns of the sparse COO matrix. !> @param[in] !> nnz number of non-zero entries of the sparse COO matrix. !> @param[in] !> coo_row_ind array of \p nnz elements containing the row indices of the sparse !> COO matrix. !> @param[in] !> coo_col_ind array of \p nnz elements containing the column indices of the sparse !> COO matrix. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer required by !> rocsparse_coosort_by_row() and rocsparse_coosort_by_column(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p coo_row_ind, \p coo_col_ind or !> \p buffer_size pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. interface 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 iso_c_binding use hipfort_rocsparse_enums 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),value :: coo_row_ind type(c_ptr),value :: coo_col_ind integer(c_size_t) :: buffer_size end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_coosort_buffer_size_rank_0,& rocsparse_coosort_buffer_size_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse COO matrix by row !> !> \details !> \p rocsparse_coosort_by_row sorts a matrix in COO format by row. The sorted !> permutation vector \p perm can be used to obtain sorted \p coo_val array. In this !> case, \p perm must be initialized as the identity permutation, see !> rocsparse_create_identity_permutation(). !> !> \p rocsparse_coosort_by_row requires extra temporary storage buffer that has to be !> allocated by the user. Storage buffer size can be determined by !> rocsparse_coosort_buffer_size(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse COO matrix. !> @param[in] !> n number of columns of the sparse COO matrix. !> @param[in] !> nnz number of non-zero entries of the sparse COO matrix. !> @param[inout] !> coo_row_ind array of \p nnz elements containing the row indices of the sparse !> COO matrix. !> @param[inout] !> coo_col_ind array of \p nnz elements containing the column indices of the sparse !> COO matrix. !> @param[inout] !> perm array of \p nnz integers containing the unsorted map indices, can be !> \p NULL. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user, size is returned by !> rocsparse_coosort_buffer_size(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p coo_row_ind, \p coo_col_ind or !> \p temp_buffer pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> !> \par Example !> The following example sorts a \f$3 \times 3\f$ COO matrix by row indices. !> \code{.c} !> / 1 2 3 !> / A = 4 5 6 !> / 7 8 9 !> rocsparse_int m = 3; !> rocsparse_int n = 3; !> rocsparse_int nnz = 9; !> !> coo_row_ind[nnz] = {0, 1, 2, 0, 1, 2, 0, 1, 2};/ device memory !> coo_col_ind[nnz] = {0, 0, 0, 1, 1, 1, 2, 2, 2};/ device memory !> coo_val[nnz] = {1, 4, 7, 2, 5, 8, 3, 6, 9};/ device memory !> !> / Create permutation vector perm as the identity map !> rocsparse_int* perm; !> hipMalloc((void**)&perm, sizeof(rocsparse_int) * nnz); !> rocsparse_create_identity_permutation(handle, nnz, perm); !> !> / Allocate temporary buffer !> size_t buffer_size; !> void* temp_buffer; !> rocsparse_coosort_buffer_size(handle, !> m, !> n, !> nnz, !> coo_row_ind, !> coo_col_ind, !> &buffer_size); !> hipMalloc(&temp_buffer, buffer_size); !> !> / Sort the COO matrix !> rocsparse_coosort_by_row(handle, !> m, !> n, !> nnz, !> coo_row_ind, !> coo_col_ind, !> perm, !> temp_buffer); !> !> / Gather sorted coo_val array !> float* coo_val_sorted; !> hipMalloc((void**)&coo_val_sorted, sizeof(float) * nnz); !> rocsparse_sgthr(handle, nnz, coo_val, coo_val_sorted, perm, rocsparse_index_base_zero); !> !> / Clean up !> hipFree(temp_buffer); !> hipFree(perm); !> hipFree(coo_val); !> \endcode interface 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 iso_c_binding use hipfort_rocsparse_enums 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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_coosort_by_row_rank_0,& rocsparse_coosort_by_row_rank_1 #endif end interface !> \ingroup conv_module !> \brief Sort a sparse COO matrix by column !> !> \details !> \p rocsparse_coosort_by_column sorts a matrix in COO format by column. The sorted !> permutation vector \p perm can be used to obtain sorted \p coo_val array. In this !> case, \p perm must be initialized as the identity permutation, see !> rocsparse_create_identity_permutation(). !> !> \p rocsparse_coosort_by_column requires extra temporary storage buffer that has to be !> allocated by the user. Storage buffer size can be determined by !> rocsparse_coosort_buffer_size(). !> !> \note !> \p perm can be \p NULL if a sorted permutation vector is not required. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> m number of rows of the sparse COO matrix. !> @param[in] !> n number of columns of the sparse COO matrix. !> @param[in] !> nnz number of non-zero entries of the sparse COO matrix. !> @param[inout] !> coo_row_ind array of \p nnz elements containing the row indices of the sparse !> COO matrix. !> @param[inout] !> coo_col_ind array of \p nnz elements containing the column indices of the sparse !> COO matrix. !> @param[inout] !> perm array of \p nnz integers containing the unsorted map indices, can be !> \p NULL. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user, size is returned by !> rocsparse_coosort_buffer_size(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p m, \p n or \p nnz is invalid. !> \retval rocsparse_status_invalid_pointer \p coo_row_ind, \p coo_col_ind or !> \p temp_buffer pointer is invalid. !> \retval rocsparse_status_internal_error an internal error occurred. !> !> \par Example !> The following example sorts a \f$3 \times 3\f$ COO matrix by column indices. !> \code{.c} !> / 1 2 3 !> / A = 4 5 6 !> / 7 8 9 !> rocsparse_int m = 3; !> rocsparse_int n = 3; !> rocsparse_int nnz = 9; !> !> coo_row_ind[nnz] = {0, 0, 0, 1, 1, 1, 2, 2, 2};/ device memory !> coo_col_ind[nnz] = {0, 1, 2, 0, 1, 2, 0, 1, 2};/ device memory !> coo_val[nnz] = {1, 2, 3, 4, 5, 6, 7, 8, 9};/ device memory !> !> / Create permutation vector perm as the identity map !> rocsparse_int* perm; !> hipMalloc((void**)&perm, sizeof(rocsparse_int) * nnz); !> rocsparse_create_identity_permutation(handle, nnz, perm); !> !> / Allocate temporary buffer !> size_t buffer_size; !> void* temp_buffer; !> rocsparse_coosort_buffer_size(handle, !> m, !> n, !> nnz, !> coo_row_ind, !> coo_col_ind, !> &buffer_size); !> hipMalloc(&temp_buffer, buffer_size); !> !> / Sort the COO matrix !> rocsparse_coosort_by_column(handle, !> m, !> n, !> nnz, !> coo_row_ind, !> coo_col_ind, !> perm, !> temp_buffer); !> !> / Gather sorted coo_val array !> float* coo_val_sorted; !> hipMalloc((void**)&coo_val_sorted, sizeof(float) * nnz); !> rocsparse_sgthr(handle, nnz, coo_val, coo_val_sorted, perm, rocsparse_index_base_zero); !> !> / Clean up !> hipFree(temp_buffer); !> hipFree(perm); !> hipFree(coo_val); !> \endcode interface 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 iso_c_binding use hipfort_rocsparse_enums 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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_coosort_by_column_rank_0,& rocsparse_coosort_by_column_rank_1 #endif end interface interface rocsparse_sbsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sbsr2csr_rank_0,& rocsparse_sbsr2csr_rank_1 #endif end interface interface rocsparse_dbsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dbsr2csr_rank_0,& rocsparse_dbsr2csr_rank_1 #endif end interface interface rocsparse_cbsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cbsr2csr_rank_0,& rocsparse_cbsr2csr_rank_1 #endif end interface interface rocsparse_zbsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: block_dim type(c_ptr),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 #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zbsr2csr_rank_0,& rocsparse_zbsr2csr_rank_1 #endif end interface interface rocsparse_sgebsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_sgebsr2csr_rank_0,& rocsparse_sgebsr2csr_rank_1 #endif end interface interface rocsparse_dgebsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dgebsr2csr_rank_0,& rocsparse_dgebsr2csr_rank_1 #endif end interface interface rocsparse_cgebsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_cgebsr2csr_rank_0,& rocsparse_cgebsr2csr_rank_1 #endif end interface interface rocsparse_zgebsr2csr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2csr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb type(c_ptr),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 :: csr_descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zgebsr2csr_rank_0,& rocsparse_zgebsr2csr_rank_1 #endif end interface interface rocsparse_sgebsr2gebsr_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),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 integer(c_size_t) :: buffer_size end function end interface interface rocsparse_dgebsr2gebsr_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),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 integer(c_size_t) :: buffer_size end function end interface interface rocsparse_cgebsr2gebsr_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),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 integer(c_size_t) :: buffer_size end function end interface interface rocsparse_zgebsr2gebsr_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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsr_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),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 integer(c_size_t) :: buffer_size end function end interface !> \ingroup conv_module !> \brief This function is used when converting a general BSR sparse matrix \p A to another general BSR sparse matrix \p C. !> Specifically, this function determines the number of non-zero blocks that will exist in \p C (stored using either a host !> or device pointer), and computes the row pointer array for \p C. !> !> \details !> The routine does support asynchronous execution. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> !> @param[in] !> dir the storage format of the blocks, \p rocsparse_direction_row or \p rocsparse_direction_column !> !> @param[in] !> mb number of block rows of the general BSR sparse matrix \p A. !> !> @param[in] !> nb number of block columns of the general BSR sparse matrix \p A. !> !> @param[in] !> nnzb number of blocks in the general BSR sparse matrix \p A. !> !> @param[in] !> descr_A the descriptor of the general BSR sparse matrix \p A, the supported matrix type is rocsparse_matrix_type_general and also any valid value of the \p rocsparse_index_base. !> !> @param[in] !> bsr_row_ptr_A array of \p mb+1 elements that point to the start of every block row of the !> sparse general BSR matrix \p A. !> @param[in] !> bsr_col_ind_A array of \p nnzb elements containing the block column indices of the sparse general BSR matrix \p A. !> !> @param[in] !> row_block_dim_A row size of the blocks in the sparse general BSR matrix \p A. !> !> @param[in] !> col_block_dim_A column size of the blocks in the sparse general BSR matrix \p A. !> !> @param[in] !> descr_C the descriptor of the general BSR sparse matrix \p C, the supported matrix type is rocsparse_matrix_type_general and also any valid value of the \p rocsparse_index_base. !> !> @param[in] !> bsr_row_ptr_C array of \p mb_C+1 elements that point to the start of every block row of the !> sparse general BSR matrix \p C where \p mb_C=(m+row_block_dim_C-1)/row_block_dim_C. !> @param[in] !> row_block_dim_C row size of the blocks in the sparse general BSR matrix \p C. !> !> @param[in] !> col_block_dim_C column size of the blocks in the sparse general BSR matrix \p C. !> !> @param[out] !> nnz_total_dev_host_ptr !> total number of nonzero blocks in general BSR sparse matrix \p C stored using device or host memory. !> !> @param[out] !> temp_buffer !> buffer allocated by the user whose size is determined by calling rocsparse_xgebsr2gebsr_buffer_size(). !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_size \p mb or \p nb or \p nnzb or \p row_block_dim_A or !> \p col_block_dim_A or \p row_block_dim_C or \p col_block_dim_C is invalid. !> \retval rocsparse_status_invalid_pointer \p bsr_row_ptr_A or \p bsr_col_ind_A !> or \p bsr_row_ptr_C or \p descr_A or \p descr_C or \p temp_buffer pointer is invalid. interface 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_gebsr2gebsr_nnz_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),value :: bsr_col_ind_A integer(c_int),value :: row_block_dim_A integer(c_int),value :: col_block_dim_A type(c_ptr),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 integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr),value :: temp_buffer end function end interface interface rocsparse_sgebsr2gebsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),value :: bsr_col_ind_A integer(c_int),value :: row_block_dim_A integer(c_int),value :: col_block_dim_A type(c_ptr),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 end interface interface rocsparse_dgebsr2gebsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),value :: bsr_col_ind_A integer(c_int),value :: row_block_dim_A integer(c_int),value :: col_block_dim_A type(c_ptr),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 end interface interface rocsparse_cgebsr2gebsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),value :: bsr_col_ind_A integer(c_int),value :: row_block_dim_A integer(c_int),value :: col_block_dim_A type(c_ptr),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 end interface interface rocsparse_zgebsr2gebsr 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 iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsr_ type(c_ptr),value :: handle integer(kind(rocsparse_direction_row)),value :: dir integer(c_int),value :: mb integer(c_int),value :: nb integer(c_int),value :: nnzb type(c_ptr),value :: descr_A type(c_ptr),value :: bsr_val_A type(c_ptr),value :: bsr_row_ptr_A type(c_ptr),value :: bsr_col_ind_A integer(c_int),value :: row_block_dim_A integer(c_int),value :: col_block_dim_A type(c_ptr),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 end interface !> \ingroup generic_module !> \brief Scale a sparse vector and add it to a scaled dense vector. !> !> \details !> \p rocsparse_axpby multiplies the sparse vector \f$x\f$ with scalar \f$\alpha\f$ and !> adds the result to the dense vector \f$y\f$ that is multiplied with scalar !> \f$\beta\f$, such that !> !> \f[ !> y := \alpha \cdot x + \beta \cdot y !> \f] !> !> \code{.c} !> for(i = 0; i < nnz; ++i) !> { !> y[x_ind[i]] = alpha * x_val[i] + beta * y[x_ind[i]] !> } !> \endcode !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> x sparse matrix descriptor. !> @param[in] !> beta scalar \f$\beta\f$. !> @param[inout] !> y dense matrix descriptor. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha, \p x, \p beta or \p y pointer is !> invalid. interface rocsparse_axpby function rocsparse_axpby_(handle,alpha,x,beta,y) bind(c, name="rocsparse_axpby") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_axpby_ type(c_ptr),value :: handle type(c_ptr),value :: alpha type(c_ptr),value :: x type(c_ptr),value :: beta type(c_ptr),value :: y end function end interface !> \ingroup generic_module !> \brief Gather elements from a dense vector and store them into a sparse vector. !> !> \details !> \p rocsparse_gather gathers the elements from the dense vector \f$y\f$ and stores !> them in the sparse vector \f$x\f$. !> !> \code{.c} !> for(i = 0; i < nnz; ++i) !> { !> x_val[i] = y[x_ind[i]]; !> } !> \endcode !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> y dense vector \f$y\f$. !> @param[out] !> x sparse vector \f$x\f$. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p x or \p y pointer is invalid. interface rocsparse_gather function rocsparse_gather_(handle,y,x) bind(c, name="rocsparse_gather") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_gather_ type(c_ptr),value :: handle type(c_ptr),value :: y type(c_ptr),value :: x end function end interface !> \ingroup generic_module !> \brief Scatter elements from a sparse vector into a dense vector. !> !> \details !> \p rocsparse_scatter scatters the elements from the sparse vector \f$x\f$ in the dense !> vector \f$y\f$. !> !> \code{.c} !> for(i = 0; i < nnz; ++i) !> { !> y[x_ind[i]] = x_val[i]; !> } !> \endcode !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> x sparse vector \f$x\f$. !> @param[out] !> y dense vector \f$y\f$. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p x or \p y pointer is invalid. interface rocsparse_scatter function rocsparse_scatter_(handle,x,y) bind(c, name="rocsparse_scatter") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scatter_ type(c_ptr),value :: handle type(c_ptr),value :: x type(c_ptr),value :: y end function end interface !> \ingroup generic_module !> \brief Apply Givens rotation to a dense and a sparse vector. !> !> \details !> \p rocsparse_rot applies the Givens rotation matrix \f$G\f$ to the sparse vector !> \f$x\f$ and the dense vector \f$y\f$, where !> \f[ !> G = \begin{pmatrix} c & s \\ -s & c \end{pmatrix} !> \f] !> !> \code{.c} !> for(i = 0; i < nnz; ++i) !> { !> x_tmp = x_val[i]; !> y_tmp = y[x_ind[i]]; !> !> x_val[i] = c * x_tmp + s * y_tmp; !> y[x_ind[i]] = c * y_tmp - s * x_tmp; !> } !> \endcode !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> c pointer to the cosine element of \f$G\f$, can be on host or device. !> @param[in] !> s pointer to the sine element of \f$G\f$, can be on host or device. !> @param[inout] !> x sparse vector \f$x\f$. !> @param[inout] !> y dense vector \f$y\f$. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p c, \p s, \p x or \p y pointer is !> invalid. interface rocsparse_rot function rocsparse_rot_(handle,c,s,x,y) bind(c, name="rocsparse_rot") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_rot_ type(c_ptr),value :: handle type(c_ptr),value :: c type(c_ptr),value :: s type(c_ptr),value :: x type(c_ptr),value :: y end function end interface !> \ingroup generic_module !> \brief Sparse matrix to dense matrix conversion !> !> \details !> \p rocsparse_sparse_to_dense !> \p rocsparse_sparse_to_dense performs the conversion of a sparse matrix in CSR, CSC, or COO format to !> a dense matrix !> \note !> This function writes the required allocation size (in bytes) to \p buffer_size and !> returns without performing the sparse to dense operation, when a nullptr is passed for !> \p temp_buffer. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> mat_A sparse matrix descriptor. !> @param[in] !> mat_B dense matrix descriptor. !> @param[in] !> alg algorithm for the sparse to dense computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. buffer_size is set when !> \p temp_buffer is nullptr. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the sparse to dense operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p mat_A, \p mat_B, or \p buffer_size !> pointer is invalid. interface rocsparse_sparse_to_dense function rocsparse_sparse_to_dense_(handle,mat_A,mat_B,alg,buffer_size,temp_buffer) bind(c, name="rocsparse_sparse_to_dense") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sparse_to_dense_ type(c_ptr),value :: handle type(c_ptr),value :: mat_A type(c_ptr),value :: mat_B integer(kind(rocsparse_sparse_to_dense_alg_default)),value :: alg integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Dense matrix to sparse matrix conversion !> !> \details !> \p rocsparse_dense_to_sparse !> \p rocsparse_dense_to_sparse performs the conversion of a dense matrix to a sparse matrix in CSR, CSC, or COO format. !> !> \note !> This function writes the required allocation size (in bytes) to \p buffer_size and !> returns without performing the dense to sparse operation, when a nullptr is passed for !> \p temp_buffer. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> mat_A dense matrix descriptor. !> @param[in] !> mat_B sparse matrix descriptor. !> @param[in] !> alg algorithm for the sparse to dense computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. buffer_size is set when !> \p temp_buffer is nullptr. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the dense to sparse operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p mat_A, \p mat_B, or \p buffer_size !> pointer is invalid. interface rocsparse_dense_to_sparse function rocsparse_dense_to_sparse_(handle,mat_A,mat_B,alg,buffer_size,temp_buffer) bind(c, name="rocsparse_dense_to_sparse") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dense_to_sparse_ type(c_ptr),value :: handle type(c_ptr),value :: mat_A type(c_ptr),value :: mat_B integer(kind(rocsparse_dense_to_sparse_alg_default)),value :: alg integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Sparse vector inner dot product !> !> \details !> \p rocsparse_spvv computes the inner dot product of the sparse vecotr \f$x\f$ with the !> dense vector \f$y\f$, such that !> \f[ !> \text{result} := x^{'} \cdot y, !> \f] !> with !> \f[ !> op(x) = \left\{ !> \begin{array}{ll} !> x, & \text{if trans == rocsparse_operation_none} \newline !> !> \bar{x}, & \text{if trans == rocsparse_operation_conjugate_transpose} \newline !> !> \end{array} !> \right. !> \f] !> !> \code{.c} !> result = 0; !> for(i = 0; i < nnz; ++i) !> { !> result += x_val[i] * y[x_ind[i]]; !> } !> \endcode !> !> \note !> This function writes the required allocation size (in bytes) to \p buffer_size and !> returns without performing the SpVV operation, when a nullptr is passed for !> \p temp_buffer. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> trans sparse vector operation type. !> @param[in] !> x sparse vector descriptor. !> @param[in] !> y dense vector descriptor. !> @param[out] !> result pointer to the result, can be host or device memory !> @param[in] !> compute_type floating point precision for the SpVV computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. buffer_size is set when !> \p temp_buffer is nullptr. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the SpVV operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p x, \p y, \p result or \p buffer_size !> pointer is invalid. !> \retval rocsparse_status_not_implemented \p compute_type is currently not !> supported. interface rocsparse_spvv function rocsparse_spvv_(handle,trans,x,y,myResult,compute_type,buffer_size,temp_buffer) bind(c, name="rocsparse_spvv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spvv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans type(c_ptr),value :: x type(c_ptr),value :: y type(c_ptr),value :: myResult integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Sparse matrix vector multiplication !> !> \details !> \p rocsparse_spmv multiplies the scalar \f$\alpha\f$ with a sparse \f$m \times n\f$ !> matrix and the dense vector \f$x\f$ and adds the result to the dense vector \f$y\f$ !> that is multiplied by the scalar \f$\beta\f$, such that !> \f[ !> y := \alpha \cdot op(A) \cdot x + \beta \cdot y, !> \f] !> with !> \f[ !> op(A) = \left\{ !> \begin{array}{ll} !> A, & \text{if trans == rocsparse_operation_none} \newline !> !> A^T, & \text{if trans == rocsparse_operation_transpose} \newline !> !> A^H, & \text{if trans == rocsparse_operation_conjugate_transpose} !> \end{array} !> \right. !> \f] !> !> \note !> This function writes the required allocation size (in bytes) to \p buffer_size and !> returns without performing the SpMV operation, when a nullptr is passed for !> \p temp_buffer. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> trans matrix operation type. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> mat matrix descriptor. !> @param[in] !> x vector descriptor. !> @param[in] !> beta scalar \f$\beta\f$. !> @param[inout] !> y vector descriptor. !> @param[in] !> compute_type floating point precision for the SpMV computation. !> @param[in] !> alg SpMV algorithm for the SpMV computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. buffer_size is set when !> \p temp_buffer is nullptr. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the SpMV operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha, \p mat, \p x, \p beta, \p y or !> \p buffer_size pointer is invalid. !> \retval rocsparse_status_not_implemented \p compute_type or \p alg is !> currently not supported. interface rocsparse_spmv function rocsparse_spmv_(handle,trans,alpha,mat,x,beta,y,compute_type,alg,buffer_size,temp_buffer) bind(c, name="rocsparse_spmv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans type(c_ptr),value :: alpha type(c_ptr),value :: mat type(c_ptr),value :: x type(c_ptr),value :: beta type(c_ptr),value :: y integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_spmv_alg_default)),value :: alg integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Sparse triangular solve !> !> \details !> \p rocsparse_spsv_solve solves a sparse triangular linear system of a sparse !> \f$m \times m\f$ matrix, defined in CSR or COO storage format, a dense solution vector !> \f$y\f$ and the right-hand side \f$x\f$ that is multiplied by \f$\alpha\f$, such that !> \f[ !> op(A) \cdot y = \alpha \cdot x, !> \f] !> with !> \f[ !> op(A) = \left\{ !> \begin{array}{ll} !> A, & \text{if trans == rocsparse_operation_none} \newline !> !> A^T, & \text{if trans == rocsparse_operation_transpose} \newline !> !> A^H, & \text{if trans == rocsparse_operation_conjugate_transpose} !> \end{array} !> \right. !> \f] !> !> \note SpSV requires three stages to complete. The first stage !> \p rocsparse_spsv_stage_buffer_size will return the size of the temporary storage buffer !> that is required for subsequent calls. The second stage !> \p rocsparse_spsv_stage_preprocess will preprocess data that would be saved in the temporary storage buffer. !> In the final stage \p rocsparse_spsv_stage_compute, the actual computation is performed. !> \note If \p rocsparse_spsv_stage_auto is selected, rocSPARSE will automatically detect !> which stage is required based on the following indicators: !> If \p temp_buffer is equal to \p nullptr, the required buffer size will be returned. !> If \p buffer_size is equal to \p nullptr, analysis will be performed. !> Otherwise, the SpSV preprocess and the SpSV algorithm will be executed. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> \note !> Currently, only \p trans == \p rocsparse_operation_none and \p trans == \p rocsparse_operation_transpose is supported. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> trans matrix operation type. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> mat matrix descriptor. !> @param[in] !> x vector descriptor. !> @param[inout] !> y vector descriptor. !> @param[in] !> compute_type floating point precision for the SpSV computation. !> @param[in] !> alg SpSV algorithm for the SpSV computation. !> @param[in] !> stage SpSV stage for the SpSV computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the SpSV operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha, \p mat, \p x, \p y, \p descr or !> \p buffer_size pointer is invalid. !> \retval rocsparse_status_not_implemented \p trans, \p compute_type, \p stage or \p alg is !> currently not supported. interface rocsparse_spsv function rocsparse_spsv_(handle,trans,alpha,mat,x,y,compute_type,alg,stage,buffer_size,temp_buffer) bind(c, name="rocsparse_spsv") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spsv_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans type(c_ptr),value :: alpha type(c_ptr),value :: mat type(c_ptr),value :: x type(c_ptr),value :: y integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_spsv_alg_default)),value :: alg integer(kind(rocsparse_spsv_stage_auto)),value :: stage integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Sparse triangular system solve !> !> \details !> \p rocsparse_spsm_solve solves a sparse triangular linear system of a sparse !> \f$m \times m\f$ matrix, defined in CSR or COO storage format, a dense solution matrix !> \f$C\f$ and the right-hand side \f$B\f$ that is multiplied by \f$\alpha\f$, such that !> \f[ !> op(A) \cdot C = \alpha \cdot op(B), !> \f] !> with !> \f[ !> op(A) = \left\{ !> \begin{array}{ll} !> A, & \text{if trans == rocsparse_operation_none} \newline !> !> A^T, & \text{if trans == rocsparse_operation_transpose} \newline !> !> A^H, & \text{if trans == rocsparse_operation_conjugate_transpose} !> \end{array} !> \right. !> \f] !> and !> \f[ !> op(B) = \left\{ !> \begin{array}{ll} !> B, & \text{if trans_B == rocsparse_operation_none} \newline !> !> B^T, & \text{if trans_B == rocsparse_operation_transpose} \newline !> !> B^H, & \text{if trans_B == rocsparse_operation_conjugate_transpose} !> \end{array} !> \right. !> \f] !> !> \note SpSM requires three stages to complete. The first stage !> \p rocsparse_spsm_stage_buffer_size will return the size of the temporary storage buffer !> that is required for subsequent calls. The second stage !> \p rocsparse_spsm_stage_preprocess will preprocess data that would be saved in the temporary storage buffer. !> In the final stage \p rocsparse_spsm_stage_compute, the actual computation is performed. !> \note If \p rocsparse_spsm_stage_auto is selected, rocSPARSE will automatically detect !> which stage is required based on the following indicators: !> If \p temp_buffer is equal to \p nullptr, the required buffer size will be returned. !> If \p buffer_size is equal to \p nullptr, analysis will be performed. !> Otherwise, the SpSM preprocess and the SpSM algorithm will be executed. !> !> \note !> This function is non blocking and executed asynchronously with respect to the host. !> It may return before the actual computation has finished. !> !> \note !> Currently, only \p trans_A == \p rocsparse_operation_none and \p trans_A == \p rocsparse_operation_transpose is supported. !> Currently, only \p trans_B == \p rocsparse_operation_none and \p trans_B == \p rocsparse_operation_transpose is supported. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> trans_A matrix operation type for the sparse matrix A. !> @param[in] !> trans_B matrix operation type for the dense matrix B. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> matA sparse matrix descriptor. !> @param[in] !> matB dense matrix descriptor. !> @param[inout] !> matC dense matrix descriptor. !> @param[in] !> compute_type floating point precision for the SpSM computation. !> @param[in] !> alg SpSM algorithm for the SpSM computation. !> @param[in] !> stage SpSM stage for the SpSM computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the SpSM operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha, \p matA, \p matB, \p matC, \p descr or !> \p buffer_size pointer is invalid. !> \retval rocsparse_status_not_implemented \p trans_A, \p trans_B, \p compute_type, \p stage or \p alg is !> currently not supported. interface rocsparse_spsm function rocsparse_spsm_(handle,trans_A,trans_B,alpha,matA,matB,matC,compute_type,alg,stage,buffer_size,temp_buffer) bind(c, name="rocsparse_spsm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spsm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B type(c_ptr),value :: alpha type(c_ptr),value :: matA type(c_ptr),value :: matB type(c_ptr),value :: matC integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_spsm_alg_default)),value :: alg integer(kind(rocsparse_spsm_stage_auto)),value :: stage integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface interface rocsparse_spmm function rocsparse_spmm_(handle,trans_A,trans_B,alpha,mat_A,mat_B,beta,mat_C,compute_type,alg,stage,buffer_size,temp_buffer) bind(c, name="rocsparse_spmm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spmm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B type(c_ptr),value :: alpha type(c_ptr),value :: mat_A type(c_ptr),value :: mat_B type(c_ptr),value :: beta type(c_ptr),value :: mat_C integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_spmm_alg_default)),value :: alg integer(kind(rocsparse_spmm_stage_auto)),value :: stage integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Sparse matrix sparse matrix multiplication !> !> \details !> \p rocsparse_spgemm multiplies the scalar \f$\alpha\f$ with the sparse !> \f$m \times k\f$ matrix \f$A\f$ and the sparse \f$k \times n\f$ matrix \f$B\f$ and !> adds the result to the sparse \f$m \times n\f$ matrix \f$D\f$ that is multiplied by !> \f$\beta\f$. The final result is stored in the sparse \f$m \times n\f$ matrix \f$C\f$, !> such that !> \f[ !> C := \alpha \cdot op(A) \cdot op(B) + \beta \cdot D, !> \f] !> with !> \f[ !> op(A) = \left\{ !> \begin{array}{ll} !> A, & \text{if trans_A == rocsparse_operation_none} \newline !> !> A^T, & \text{if trans_A == rocsparse_operation_transpose} \newline !> !> A^H, & \text{if trans_A == rocsparse_operation_conjugate_transpose} !> \end{array} !> \right. !> \f] !> and !> \f[ !> op(B) = \left\{ !> \begin{array}{ll} !> B, & \text{if trans_B == rocsparse_operation_none} \newline !> !> B^T, & \text{if trans_B == rocsparse_operation_transpose} \newline !> !> B^H, & \text{if trans_B == rocsparse_operation_conjugate_transpose} !> \end{array} !> \right. !> \f] !> !> \note SpGEMM requires three stages to complete. The first stage !> \p rocsparse_spgemm_stage_buffer_size will return the size of the temporary storage buffer !> that is required for subsequent calls to \p rocsparse_spgemm. The second stage !> \p rocsparse_spgemm_stage_nnz will determine the number of non-zero elements of the !> resulting \f$C\f$ matrix. If the sparsity pattern of \f$C\f$ is already known, this !> stage can be skipped. In the final stage \p rocsparse_spgemm_stage_compute, the actual !> computation is performed. !> \note If \p rocsparse_spgemm_stage_auto is selected, rocSPARSE will automatically detect !> which stage is required based on the following indicators: !> If \p temp_buffer is equal to \p nullptr, the required buffer size will be returned. !> Else, if the number of non-zeros of \f$C\f$ is zero, the number of non-zero entries will be !> computed. !> Else, the SpGEMM algorithm will be executed. !> \note If \f$\alpha == 0\f$, then \f$C = \beta \cdot D\f$ will be computed. !> \note If \f$\beta == 0\f$, then \f$C = \alpha \cdot op(A) \cdot op(B)\f$ will be !> computed. !> \note \f$\alpha == beta == 0\f$ is invalid. !> \note It is allowed to pass the same sparse matrix for \f$C\f$ and \f$D\f$, if both !> matrices have the same sparsity pattern. !> \note Currently, only \p trans_A == \p rocsparse_operation_none is supported. !> \note Currently, only \p trans_B == \p rocsparse_operation_none is supported. !> \note This function is non blocking and executed asynchronously with respect to the !> host. It may return before the actual computation has finished. !> \note Please note, that for rare matrix products with more than 4096 non-zero entries !> per row, additional temporary storage buffer is allocated by the algorithm. !> !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> trans_A sparse matrix \f$A\f$ operation type. !> @param[in] !> trans_B sparse matrix \f$B\f$ operation type. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> A sparse matrix \f$A\f$ descriptor. !> @param[in] !> B sparse matrix \f$B\f$ descriptor. !> @param[in] !> beta scalar \f$\beta\f$. !> @param[in] !> D sparse matrix \f$D\f$ descriptor. !> @param[out] !> C sparse matrix \f$C\f$ descriptor. !> @param[in] !> compute_type floating point precision for the SpGEMM computation. !> @param[in] !> alg SpGEMM algorithm for the SpGEMM computation. !> @param[in] !> stage SpGEMM stage for the SpGEMM computation. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. buffer_size is set when !> \p temp_buffer is nullptr. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. When a nullptr is passed, !> the required allocation size (in bytes) is written to \p buffer_size and !> function returns without performing the SpGEMM operation. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha and \p beta are invalid, !> \p A, \p B, \p D, \p C or \p buffer_size pointer is invalid. !> \retval rocsparse_status_memory_error additional buffer for long rows could not be !> allocated. !> \retval rocsparse_status_not_implemented !> \p trans_A != \p rocsparse_operation_none or !> \p trans_B != \p rocsparse_operation_none. interface rocsparse_spgemm function rocsparse_spgemm_(handle,trans_A,trans_B,alpha,A,B,beta,D,C,compute_type,alg,stage,buffer_size,temp_buffer) bind(c, name="rocsparse_spgemm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_spgemm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: trans_A integer(kind(rocsparse_operation_none)),value :: trans_B type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: D type(c_ptr),value :: C integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_spgemm_alg_default)),value :: alg integer(kind(rocsparse_spgemm_stage_auto)),value :: stage integer(c_size_t) :: buffer_size type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Sampled Dense-Dense Matrix Multiplication. !> !> \details !> \p rocsparse_sddmm multiplies the scalar \f$\alpha\f$ with the dense !> \f$m \times k\f$ matrix \f$A\f$, the dense \f$k \times n\f$ matrix \f$B\f$, filtered by the sparsity pattern of the \f$m \times n\f$ sparse matrix \f$C\f$ and !> adds the result to \f$C\f$ scaled by !> \f$\beta\f$. The final result is stored in the sparse \f$m \times n\f$ matrix \f$C\f$, !> such that !> \f[ !> C := \alpha ( opA(A) \cdot opB(B) ) \cdot spy(C) + \beta C, !> \f] !> with !> \f[ !> op(A) = \left\{ !> \begin{array}{ll} !> A, & \text{if opA == rocsparse_operation_none} \newline !> !> A^T, & \text{if opA == rocsparse_operation_transpose} \newline !> !> \end{array} !> \right. !> \f], !> \f[ !> op(B) = \left\{ !> \begin{array}{ll} !> B, & \text{if opB == rocsparse_operation_none} \newline !> !> B^T, & \text{if opB == rocsparse_operation_transpose} \newline !> !> \end{array} !> \right. !> \f] !> and !> \f[ !> spy(C)_ij = \left\{ !> \begin{array}{ll} !> 1 \text{if i == j}, & 0 \text{if i != j} \newline !> !> \end{array} !> \right. !> \f] !> \note \p opA == \p rocsparse_operation_conjugate_transpose is not supported. !> \note \p opB == \p rocsparse_operation_conjugate_transpose is not supported. !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> opA dense matrix \f$A\f$ operation type. !> @param[in] !> opB dense matrix \f$B\f$ operation type. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> A dense matrix \f$A\f$ descriptor. !> @param[in] !> B dense matrix \f$B\f$ descriptor. !> @param[in] !> beta scalar \f$\beta\f$. !> @param[inout] !> C sparse matrix \f$C\f$ descriptor. !> @param[in] !> compute_type floating point precision for the SDDMM computation. !> @param[in] !> alg specification of the algorithm to use. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. !> The size must be greater or equal to the size obtained with \p rocsparse_sddmm_buffer_size. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_value the value of \p trans\_A, \p trans\_B, \p compute\_type or alg is incorrect. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha and \p beta are invalid, !> \p A, \p B, \p D, \p C or \p temp_buffer pointer is invalid. !> \retval rocsparse_status_not_implemented !> \p opA == \p rocsparse_operation_conjugate_transpose or !> \p opB == \p rocsparse_operation_conjugate_transpose. interface rocsparse_sddmm function rocsparse_sddmm_(handle,opA,opB,alpha,A,B,beta,C,compute_type,alg,temp_buffer) bind(c, name="rocsparse_sddmm") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sddmm_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: opA integer(kind(rocsparse_operation_none)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: C integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_sddmm_alg_default)),value :: alg type(c_ptr),value :: temp_buffer end function end interface !> \ingroup generic_module !> \brief Calculate the size in bytes of the required buffer for the use of \p rocsparse_sddmm and \p rocsparse_sddmm_preprocess !> !> \details !> \p rocsparse_sddmm_buffer_size returns the size of the required buffer to execute the SDDMM operation from a given configuration. !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> opA dense matrix \f$A\f$ operation type. !> @param[in] !> opB dense matrix \f$B\f$ operation type. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> A dense matrix \f$A\f$ descriptor. !> @param[in] !> B dense matrix \f$B\f$ descriptor. !> @param[in] !> beta scalar \f$\beta\f$. !> @param[inout] !> C sparse matrix \f$C\f$ descriptor. !> @param[in] !> compute_type floating point precision for the SDDMM computation. !> @param[in] !> alg specification of the algorithm to use. !> @param[out] !> buffer_size number of bytes of the temporary storage buffer. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_value the value of \p trans\_A or \p trans\_B is incorrect. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha and \p beta are invalid, !> \p A, \p B, \p D, \p C or \p buffer_size pointer is invalid. !> \retval rocsparse_status_not_implemented !> \p opA == \p rocsparse_operation_conjugate_transpose or !> \p opB == \p rocsparse_operation_conjugate_transpose. interface rocsparse_sddmm_buffer_size function rocsparse_sddmm_buffer_size_(handle,opA,opB,alpha,A,B,beta,C,compute_type,alg,buffer_size) bind(c, name="rocsparse_sddmm_buffer_size") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sddmm_buffer_size_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: opA integer(kind(rocsparse_operation_none)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: C integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_sddmm_alg_default)),value :: alg integer(c_size_t) :: buffer_size end function end interface !> \ingroup generic_module !> \brief Preprocess data before the use of \p rocsparse_sddmm. !> !> \details !> \p rocsparse_sddmm_preprocess executes a part of the algorithm that can be calculated once in the context of multiple calls of the \p rocsparse_sddmm !> with the same sparsity pattern. !> @param[in] !> handle handle to the rocsparse library context queue. !> @param[in] !> opA dense matrix \f$A\f$ operation type. !> @param[in] !> opB dense matrix \f$B\f$ operation type. !> @param[in] !> alpha scalar \f$\alpha\f$. !> @param[in] !> A dense matrix \f$A\f$ descriptor. !> @param[in] !> B dense matrix \f$B\f$ descriptor. !> @param[in] !> beta scalar \f$\beta\f$. !> @param[inout] !> C sparse matrix \f$C\f$ descriptor. !> @param[in] !> compute_type floating point precision for the SDDMM computation. !> @param[in] !> alg specification of the algorithm to use. !> @param[in] !> temp_buffer temporary storage buffer allocated by the user. !> The size must be greater or equal to the size obtained with \p rocsparse_sddmm_buffer_size. !> !> \retval rocsparse_status_success the operation completed successfully. !> \retval rocsparse_status_invalid_value the value of \p trans\_A or \p trans\_B is incorrect. !> \retval rocsparse_status_invalid_handle the library context was not initialized. !> \retval rocsparse_status_invalid_pointer \p alpha and \p beta are invalid, !> \p A, \p B, \p D, \p C or \p temp_buffer pointer is invalid. !> \retval rocsparse_status_not_implemented !> \p opA == \p rocsparse_operation_conjugate_transpose or !> \p opB == \p rocsparse_operation_conjugate_transpose. interface rocsparse_sddmm_preprocess function rocsparse_sddmm_preprocess_(handle,opA,opB,alpha,A,B,beta,C,compute_type,alg,temp_buffer) bind(c, name="rocsparse_sddmm_preprocess") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sddmm_preprocess_ type(c_ptr),value :: handle integer(kind(rocsparse_operation_none)),value :: opA integer(kind(rocsparse_operation_none)),value :: opB type(c_ptr),value :: alpha type(c_ptr),value :: A type(c_ptr),value :: B type(c_ptr),value :: beta type(c_ptr),value :: C integer(kind(rocsparse_datatype_f32_r)),value :: compute_type integer(kind(rocsparse_sddmm_alg_default)),value :: alg type(c_ptr),value :: temp_buffer end function end interface interface rocsparse_scsrcolor function rocsparse_scsrcolor_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) bind(c, name="rocsparse_scsrcolor") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind real(c_float) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_scsrcolor_rank_0,& rocsparse_scsrcolor_rank_1 #endif end interface interface rocsparse_dcsrcolor function rocsparse_dcsrcolor_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) bind(c, name="rocsparse_dcsrcolor") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind real(c_double) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_dcsrcolor_rank_0,& rocsparse_dcsrcolor_rank_1 #endif end interface interface rocsparse_ccsrcolor function rocsparse_ccsrcolor_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) bind(c, name="rocsparse_ccsrcolor") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind real(c_float) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_ccsrcolor_rank_0,& rocsparse_ccsrcolor_rank_1 #endif end interface interface rocsparse_zcsrcolor function rocsparse_zcsrcolor_(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) bind(c, name="rocsparse_zcsrcolor") use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrcolor_ type(c_ptr),value :: handle integer(c_int),value :: m integer(c_int),value :: nnz type(c_ptr),value :: descr type(c_ptr),value :: csr_val type(c_ptr),value :: csr_row_ptr type(c_ptr),value :: csr_col_ind real(c_double) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr),value :: myInfo end function #ifdef USE_FPOINTER_INTERFACES module procedure & rocsparse_zcsrcolor_rank_0,& rocsparse_zcsrcolor_rank_1 #endif end interface #ifdef USE_FPOINTER_INTERFACES contains function rocsparse_saxpyi_rank_0(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_saxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target :: x_val integer(c_int),target :: x_ind real(c_float),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_saxpyi_rank_0 = rocsparse_saxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_saxpyi_rank_1(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_saxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_float),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_saxpyi_rank_1 = rocsparse_saxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_daxpyi_rank_0(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_daxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target :: x_val integer(c_int),target :: x_ind real(c_double),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_daxpyi_rank_0 = rocsparse_daxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_daxpyi_rank_1(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_daxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_double),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_daxpyi_rank_1 = rocsparse_daxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_caxpyi_rank_0(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_caxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind complex(c_float_complex),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_caxpyi_rank_0 = rocsparse_caxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_caxpyi_rank_1(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_caxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_float_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_caxpyi_rank_1 = rocsparse_caxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_zaxpyi_rank_0(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zaxpyi_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind complex(c_double_complex),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zaxpyi_rank_0 = rocsparse_zaxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_zaxpyi_rank_1(handle,nnz,alpha,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zaxpyi_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_double_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zaxpyi_rank_1 = rocsparse_zaxpyi_(handle,nnz,alpha,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_sdoti_rank_0(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: x_val integer(c_int),target :: x_ind real(c_float),target :: y real(c_float),target :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sdoti_rank_0 = rocsparse_sdoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_sdoti_rank_1(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_float),target,dimension(:) :: y real(c_float),target,dimension(:) :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sdoti_rank_1 = rocsparse_sdoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_ddoti_rank_0(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: x_val integer(c_int),target :: x_ind real(c_double),target :: y real(c_double),target :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_ddoti_rank_0 = rocsparse_ddoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_ddoti_rank_1(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_double),target,dimension(:) :: y real(c_double),target,dimension(:) :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_ddoti_rank_1 = rocsparse_ddoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_cdoti_rank_0(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind complex(c_float_complex),target :: y complex(c_float_complex),target :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cdoti_rank_0 = rocsparse_cdoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_cdoti_rank_1(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cdoti_rank_1 = rocsparse_cdoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_zdoti_rank_0(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdoti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind complex(c_double_complex),target :: y complex(c_double_complex),target :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zdoti_rank_0 = rocsparse_zdoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_zdoti_rank_1(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdoti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zdoti_rank_1 = rocsparse_zdoti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_cdotci_rank_0(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdotci_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind complex(c_float_complex),target :: y complex(c_float_complex),target :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cdotci_rank_0 = rocsparse_cdotci_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_cdotci_rank_1(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdotci_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cdotci_rank_1 = rocsparse_cdotci_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_zdotci_rank_0(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdotci_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind complex(c_double_complex),target :: y complex(c_double_complex),target :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zdotci_rank_0 = rocsparse_zdotci_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_zdotci_rank_1(handle,nnz,x_val,x_ind,y,myResult,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdotci_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: myResult integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zdotci_rank_1 = rocsparse_zdotci_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c_loc(myResult),idx_base) end function function rocsparse_sgthr_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: y real(c_float),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sgthr_rank_0 = rocsparse_sgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_sgthr_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: y real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sgthr_rank_1 = rocsparse_sgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_dgthr_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: y real(c_double),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_dgthr_rank_0 = rocsparse_dgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_dgthr_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: y real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_dgthr_rank_1 = rocsparse_dgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_cgthr_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: y complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cgthr_rank_0 = rocsparse_cgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_cgthr_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cgthr_rank_1 = rocsparse_cgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_zgthr_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgthr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: y complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zgthr_rank_0 = rocsparse_zgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_zgthr_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgthr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zgthr_rank_1 = rocsparse_zgthr_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_sgthrz_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: y real(c_float),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sgthrz_rank_0 = rocsparse_sgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_sgthrz_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: y real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sgthrz_rank_1 = rocsparse_sgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_dgthrz_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: y real(c_double),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_dgthrz_rank_0 = rocsparse_dgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_dgthrz_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: y real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_dgthrz_rank_1 = rocsparse_dgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_cgthrz_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: y complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cgthrz_rank_0 = rocsparse_cgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_cgthrz_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: y complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_cgthrz_rank_1 = rocsparse_cgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_zgthrz_rank_0(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgthrz_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: y complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zgthrz_rank_0 = rocsparse_zgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_zgthrz_rank_1(handle,nnz,y,x_val,x_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgthrz_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: y complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zgthrz_rank_1 = rocsparse_zgthrz_(handle,nnz,c_loc(y),c_loc(x_val),c_loc(x_ind),idx_base) end function function rocsparse_sroti_rank_0(handle,nnz,x_val,x_ind,y,c,s,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sroti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: x_val integer(c_int),target :: x_ind real(c_float),target :: y real(c_float) :: c real(c_float) :: s integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sroti_rank_0 = rocsparse_sroti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c,s,idx_base) end function function rocsparse_sroti_rank_1(handle,nnz,x_val,x_ind,y,c,s,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sroti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_float),target,dimension(:) :: y real(c_float) :: c real(c_float) :: s integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_sroti_rank_1 = rocsparse_sroti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c,s,idx_base) end function function rocsparse_droti_rank_0(handle,nnz,x_val,x_ind,y,c,s,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_droti_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: x_val integer(c_int),target :: x_ind real(c_double),target :: y real(c_double) :: c real(c_double) :: s integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_droti_rank_0 = rocsparse_droti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c,s,idx_base) end function function rocsparse_droti_rank_1(handle,nnz,x_val,x_ind,y,c,s,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_droti_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_double),target,dimension(:) :: y real(c_double) :: c real(c_double) :: s integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_droti_rank_1 = rocsparse_droti_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),c,s,idx_base) end function function rocsparse_ssctr_rank_0(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ssctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target :: x_val integer(c_int),target :: x_ind real(c_float),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_ssctr_rank_0 = rocsparse_ssctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_ssctr_rank_1(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ssctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_float),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_ssctr_rank_1 = rocsparse_ssctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_dsctr_rank_0(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dsctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target :: x_val integer(c_int),target :: x_ind real(c_double),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_dsctr_rank_0 = rocsparse_dsctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_dsctr_rank_1(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dsctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_double),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_dsctr_rank_1 = rocsparse_dsctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_csctr_rank_0(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind complex(c_float_complex),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_csctr_rank_0 = rocsparse_csctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_csctr_rank_1(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_float_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_csctr_rank_1 = rocsparse_csctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_zsctr_rank_0(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zsctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind complex(c_double_complex),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zsctr_rank_0 = rocsparse_zsctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_zsctr_rank_1(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zsctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_double_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_zsctr_rank_1 = rocsparse_zsctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_isctr_rank_0(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_isctr_rank_0 type(c_ptr) :: handle integer(c_int) :: nnz integer(c_int),target :: x_val integer(c_int),target :: x_ind integer(c_int),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_isctr_rank_0 = rocsparse_isctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_isctr_rank_1(handle,nnz,x_val,x_ind,y,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_isctr_rank_1 type(c_ptr) :: handle integer(c_int) :: nnz integer(c_int),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind integer(c_int),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_isctr_rank_1 = rocsparse_isctr_(handle,nnz,c_loc(x_val),c_loc(x_ind),c_loc(y),idx_base) end function function rocsparse_sbsrmv_rank_0(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_sbsrmv_rank_0 = rocsparse_sbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_sbsrmv_rank_1(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_sbsrmv_rank_1 = rocsparse_sbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_dbsrmv_rank_0(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dbsrmv_rank_0 = rocsparse_dbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_dbsrmv_rank_1(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dbsrmv_rank_1 = rocsparse_dbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_cbsrmv_rank_0(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_cbsrmv_rank_0 = rocsparse_cbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_cbsrmv_rank_1(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_cbsrmv_rank_1 = rocsparse_cbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_zbsrmv_rank_0(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zbsrmv_rank_0 = rocsparse_zbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_zbsrmv_rank_1(handle,dir,trans,mb,nb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zbsrmv_rank_1 = rocsparse_zbsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_sbsrxmv_rank_0(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_sbsrxmv_rank_0 = rocsparse_sbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_sbsrxmv_rank_1(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target,dimension(:) :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_sbsrxmv_rank_1 = rocsparse_sbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_dbsrxmv_rank_0(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dbsrxmv_rank_0 = rocsparse_dbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_dbsrxmv_rank_1(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target,dimension(:) :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dbsrxmv_rank_1 = rocsparse_dbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_cbsrxmv_rank_0(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_cbsrxmv_rank_0 = rocsparse_cbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_cbsrxmv_rank_1(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target,dimension(:) :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_cbsrxmv_rank_1 = rocsparse_cbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_zbsrxmv_rank_0(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrxmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zbsrxmv_rank_0 = rocsparse_zbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_zbsrxmv_rank_1(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,bsr_val,bsr_mask_ptr,bsr_row_ptr,bsr_end_ptr,bsr_col_ind,block_dim,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrxmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: size_of_mask integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val type(c_ptr) :: bsr_mask_ptr integer(c_int),target,dimension(:) :: bsr_row_ptr type(c_ptr) :: bsr_end_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zbsrxmv_rank_1 = rocsparse_zbsrxmv_(handle,dir,trans,size_of_mask,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),bsr_mask_ptr,c_loc(bsr_row_ptr),bsr_end_ptr,c_loc(bsr_col_ind),block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_sbsrsv_buffer_size_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsrsv_buffer_size_rank_0 = rocsparse_sbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsrsv_buffer_size_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsrsv_buffer_size_rank_1 = rocsparse_sbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsrsv_buffer_size_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsrsv_buffer_size_rank_0 = rocsparse_dbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsrsv_buffer_size_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsrsv_buffer_size_rank_1 = rocsparse_dbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsrsv_buffer_size_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsrsv_buffer_size_rank_0 = rocsparse_cbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsrsv_buffer_size_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsrsv_buffer_size_rank_1 = rocsparse_cbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsrsv_buffer_size_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsrsv_buffer_size_rank_0 = rocsparse_zbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsrsv_buffer_size_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsrsv_buffer_size_rank_1 = rocsparse_zbsrsv_buffer_size_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsrsv_analysis_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsrsv_analysis_rank_0 = rocsparse_sbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsrsv_analysis_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsrsv_analysis_rank_1 = rocsparse_sbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsrsv_analysis_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsrsv_analysis_rank_0 = rocsparse_dbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsrsv_analysis_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsrsv_analysis_rank_1 = rocsparse_dbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsrsv_analysis_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsrsv_analysis_rank_0 = rocsparse_cbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsrsv_analysis_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsrsv_analysis_rank_1 = rocsparse_cbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsrsv_analysis_rank_0(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsrsv_analysis_rank_0 = rocsparse_zbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsrsv_analysis_rank_1(handle,dir,trans,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsrsv_analysis_rank_1 = rocsparse_zbsrsv_analysis_(handle,dir,trans,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsrsv_solve_rank_0(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_float),target :: x real(c_float),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrsv_solve_rank_0 = rocsparse_sbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_sbsrsv_solve_rank_1(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: x real(c_float),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrsv_solve_rank_1 = rocsparse_sbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_dbsrsv_solve_rank_0(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_double),target :: x real(c_double),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrsv_solve_rank_0 = rocsparse_dbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_dbsrsv_solve_rank_1(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: x real(c_double),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrsv_solve_rank_1 = rocsparse_dbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_cbsrsv_solve_rank_0(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_float_complex),target :: x complex(c_float_complex),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrsv_solve_rank_0 = rocsparse_cbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_cbsrsv_solve_rank_1(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrsv_solve_rank_1 = rocsparse_cbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_zbsrsv_solve_rank_0(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_double_complex),target :: x complex(c_double_complex),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrsv_solve_rank_0 = rocsparse_zbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_zbsrsv_solve_rank_1(handle,dir,trans,mb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrsv_solve_rank_1 = rocsparse_zbsrsv_solve_(handle,dir,trans,mb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_scoomv_rank_0(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scoomv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_scoomv_rank_0 = rocsparse_scoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_scoomv_rank_1(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scoomv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_scoomv_rank_1 = rocsparse_scoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_dcoomv_rank_0(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcoomv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dcoomv_rank_0 = rocsparse_dcoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_dcoomv_rank_1(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcoomv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dcoomv_rank_1 = rocsparse_dcoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_ccoomv_rank_0(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccoomv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_ccoomv_rank_0 = rocsparse_ccoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_ccoomv_rank_1(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccoomv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_ccoomv_rank_1 = rocsparse_ccoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_zcoomv_rank_0(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcoomv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zcoomv_rank_0 = rocsparse_zcoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_zcoomv_rank_1(handle,trans,m,n,nnz,alpha,descr,coo_val,coo_row_ind,coo_col_ind,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcoomv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zcoomv_rank_1 = rocsparse_zcoomv_(handle,trans,m,n,nnz,alpha,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(x),beta,c_loc(y)) end function function rocsparse_scsrmv_analysis_rank_0(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_scsrmv_analysis_rank_0 = rocsparse_scsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_scsrmv_analysis_rank_1(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_scsrmv_analysis_rank_1 = rocsparse_scsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_dcsrmv_analysis_rank_0(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_dcsrmv_analysis_rank_0 = rocsparse_dcsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_dcsrmv_analysis_rank_1(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_dcsrmv_analysis_rank_1 = rocsparse_dcsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_ccsrmv_analysis_rank_0(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_ccsrmv_analysis_rank_0 = rocsparse_ccsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_ccsrmv_analysis_rank_1(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_ccsrmv_analysis_rank_1 = rocsparse_ccsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_zcsrmv_analysis_rank_0(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_zcsrmv_analysis_rank_0 = rocsparse_zcsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_zcsrmv_analysis_rank_1(handle,trans,m,n,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo ! rocsparse_zcsrmv_analysis_rank_1 = rocsparse_zcsrmv_analysis_(handle,trans,m,n,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo) end function function rocsparse_scsrmv_rank_0(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_scsrmv_rank_0 = rocsparse_scsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_scsrmv_rank_1(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_scsrmv_rank_1 = rocsparse_scsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_dcsrmv_rank_0(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dcsrmv_rank_0 = rocsparse_dcsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_dcsrmv_rank_1(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dcsrmv_rank_1 = rocsparse_dcsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_ccsrmv_rank_0(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_ccsrmv_rank_0 = rocsparse_ccsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_ccsrmv_rank_1(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_ccsrmv_rank_1 = rocsparse_ccsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_zcsrmv_rank_0(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zcsrmv_rank_0 = rocsparse_zcsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_zcsrmv_rank_1(handle,trans,m,n,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zcsrmv_rank_1 = rocsparse_zcsrmv_(handle,trans,m,n,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),beta,c_loc(y)) end function function rocsparse_scsrsv_buffer_size_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_scsrsv_buffer_size_rank_0 = rocsparse_scsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_scsrsv_buffer_size_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_scsrsv_buffer_size_rank_1 = rocsparse_scsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dcsrsv_buffer_size_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dcsrsv_buffer_size_rank_0 = rocsparse_dcsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dcsrsv_buffer_size_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dcsrsv_buffer_size_rank_1 = rocsparse_dcsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_ccsrsv_buffer_size_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_ccsrsv_buffer_size_rank_0 = rocsparse_ccsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_ccsrsv_buffer_size_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_ccsrsv_buffer_size_rank_1 = rocsparse_ccsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_zcsrsv_buffer_size_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zcsrsv_buffer_size_rank_0 = rocsparse_zcsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_zcsrsv_buffer_size_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zcsrsv_buffer_size_rank_1 = rocsparse_zcsrsv_buffer_size_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_scsrsv_analysis_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrsv_analysis_rank_0 = rocsparse_scsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrsv_analysis_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrsv_analysis_rank_1 = rocsparse_scsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrsv_analysis_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrsv_analysis_rank_0 = rocsparse_dcsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrsv_analysis_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrsv_analysis_rank_1 = rocsparse_dcsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrsv_analysis_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrsv_analysis_rank_0 = rocsparse_ccsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrsv_analysis_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrsv_analysis_rank_1 = rocsparse_ccsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrsv_analysis_rank_0(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrsv_analysis_rank_0 = rocsparse_zcsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrsv_analysis_rank_1(handle,trans,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrsv_analysis_rank_1 = rocsparse_zcsrsv_analysis_(handle,trans,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrsv_solve_rank_0(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo real(c_float),target :: x real(c_float),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrsv_solve_rank_0 = rocsparse_scsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_scsrsv_solve_rank_1(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: x real(c_float),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrsv_solve_rank_1 = rocsparse_scsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_dcsrsv_solve_rank_0(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo real(c_double),target :: x real(c_double),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrsv_solve_rank_0 = rocsparse_dcsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_dcsrsv_solve_rank_1(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: x real(c_double),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrsv_solve_rank_1 = rocsparse_dcsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_ccsrsv_solve_rank_0(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo complex(c_float_complex),target :: x complex(c_float_complex),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrsv_solve_rank_0 = rocsparse_ccsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_ccsrsv_solve_rank_1(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrsv_solve_rank_1 = rocsparse_ccsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_zcsrsv_solve_rank_0(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo complex(c_double_complex),target :: x complex(c_double_complex),target :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrsv_solve_rank_0 = rocsparse_zcsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_zcsrsv_solve_rank_1(handle,trans,m,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,x,y,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex),target,dimension(:) :: y integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrsv_solve_rank_1 = rocsparse_zcsrsv_solve_(handle,trans,m,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,c_loc(x),c_loc(y),policy,temp_buffer) end function function rocsparse_sellmv_rank_0(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sellmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: ell_val integer(c_int),target :: ell_col_ind integer(c_int) :: ell_width real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_sellmv_rank_0 = rocsparse_sellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_sellmv_rank_1(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sellmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind integer(c_int) :: ell_width real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_sellmv_rank_1 = rocsparse_sellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_dellmv_rank_0(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dellmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: ell_val integer(c_int),target :: ell_col_ind integer(c_int) :: ell_width real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dellmv_rank_0 = rocsparse_dellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_dellmv_rank_1(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dellmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind integer(c_int) :: ell_width real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dellmv_rank_1 = rocsparse_dellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_cellmv_rank_0(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cellmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: ell_val integer(c_int),target :: ell_col_ind integer(c_int) :: ell_width complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_cellmv_rank_0 = rocsparse_cellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_cellmv_rank_1(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cellmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind integer(c_int) :: ell_width complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_cellmv_rank_1 = rocsparse_cellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_zellmv_rank_0(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zellmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: ell_val integer(c_int),target :: ell_col_ind integer(c_int) :: ell_width complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zellmv_rank_0 = rocsparse_zellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_zellmv_rank_1(handle,trans,m,n,alpha,descr,ell_val,ell_col_ind,ell_width,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zellmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind integer(c_int) :: ell_width complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zellmv_rank_1 = rocsparse_zellmv_(handle,trans,m,n,alpha,descr,c_loc(ell_val),c_loc(ell_col_ind),ell_width,c_loc(x),beta,c_loc(y)) end function function rocsparse_shybmv_rank_0(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_shybmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans real(c_float) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_shybmv_rank_0 = rocsparse_shybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_shybmv_rank_1(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_shybmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans real(c_float) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_shybmv_rank_1 = rocsparse_shybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_dhybmv_rank_0(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dhybmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans real(c_double) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dhybmv_rank_0 = rocsparse_dhybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_dhybmv_rank_1(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dhybmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans real(c_double) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dhybmv_rank_1 = rocsparse_dhybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_chybmv_rank_0(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_chybmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans complex(c_float_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_chybmv_rank_0 = rocsparse_chybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_chybmv_rank_1(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_chybmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans complex(c_float_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_chybmv_rank_1 = rocsparse_chybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_zhybmv_rank_0(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zhybmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans complex(c_double_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zhybmv_rank_0 = rocsparse_zhybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_zhybmv_rank_1(handle,trans,alpha,descr,hyb,x,beta,y) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zhybmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans complex(c_double_complex) :: alpha type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zhybmv_rank_1 = rocsparse_zhybmv_(handle,trans,alpha,descr,hyb,c_loc(x),beta,c_loc(y)) end function function rocsparse_sgebsrmv_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_float),target :: x real(c_float) :: beta real(c_float),target :: y ! rocsparse_sgebsrmv_rank_0 = rocsparse_sgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_sgebsrmv_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_float),target,dimension(:) :: x real(c_float) :: beta real(c_float),target,dimension(:) :: y ! rocsparse_sgebsrmv_rank_1 = rocsparse_sgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_dgebsrmv_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_double),target :: x real(c_double) :: beta real(c_double),target :: y ! rocsparse_dgebsrmv_rank_0 = rocsparse_dgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_dgebsrmv_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_double),target,dimension(:) :: x real(c_double) :: beta real(c_double),target,dimension(:) :: y ! rocsparse_dgebsrmv_rank_1 = rocsparse_dgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_cgebsrmv_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_float_complex),target :: x complex(c_float_complex) :: beta complex(c_float_complex),target :: y ! rocsparse_cgebsrmv_rank_0 = rocsparse_cgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_cgebsrmv_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_float_complex),target,dimension(:) :: x complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y ! rocsparse_cgebsrmv_rank_1 = rocsparse_cgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_zgebsrmv_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmv_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_double_complex),target :: x complex(c_double_complex) :: beta complex(c_double_complex),target :: y ! rocsparse_zgebsrmv_rank_0 = rocsparse_zgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_zgebsrmv_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmv_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_double_complex),target,dimension(:) :: x complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y ! rocsparse_zgebsrmv_rank_1 = rocsparse_zgebsrmv_(handle,dir,trans,mb,nb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(x),beta,c_loc(y)) end function function rocsparse_sgemvi_full_rank(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemvi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_sgemvi_full_rank = rocsparse_sgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_sgemvi_rank_0(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemvi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_float),target :: x_val integer(c_int),target :: x_ind real(c_float) :: beta real(c_float),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_sgemvi_rank_0 = rocsparse_sgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_sgemvi_rank_1(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemvi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_float),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_float) :: beta real(c_float),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_sgemvi_rank_1 = rocsparse_sgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_dgemvi_full_rank(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemvi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dgemvi_full_rank = rocsparse_dgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_dgemvi_rank_0(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemvi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_double),target :: x_val integer(c_int),target :: x_ind real(c_double) :: beta real(c_double),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dgemvi_rank_0 = rocsparse_dgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_dgemvi_rank_1(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemvi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz real(c_double),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind real(c_double) :: beta real(c_double),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dgemvi_rank_1 = rocsparse_dgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_cgemvi_full_rank(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemvi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_cgemvi_full_rank = rocsparse_cgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_cgemvi_rank_0(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemvi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_float_complex),target :: x_val integer(c_int),target :: x_ind complex(c_float_complex) :: beta complex(c_float_complex),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_cgemvi_rank_0 = rocsparse_cgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_cgemvi_rank_1(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemvi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_cgemvi_rank_1 = rocsparse_cgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_zgemvi_full_rank(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemvi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zgemvi_full_rank = rocsparse_zgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_zgemvi_rank_0(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemvi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_double_complex),target :: x_val integer(c_int),target :: x_ind complex(c_double_complex) :: beta complex(c_double_complex),target :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zgemvi_rank_0 = rocsparse_zgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_zgemvi_rank_1(handle,trans,m,n,alpha,A,lda,nnz,x_val,x_ind,beta,y,idx_base,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemvi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: x_val integer(c_int),target,dimension(:) :: x_ind complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: y integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zgemvi_rank_1 = rocsparse_zgemvi_(handle,trans,m,n,alpha,c_loc(A),lda,nnz,c_loc(x_val),c_loc(x_ind),beta,c_loc(y),idx_base,temp_buffer) end function function rocsparse_sbsrmm_full_rank(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_sbsrmm_full_rank = rocsparse_sbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_sbsrmm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocsparse_sbsrmm_rank_0 = rocsparse_sbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_sbsrmm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_sbsrmm_rank_1 = rocsparse_sbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dbsrmm_full_rank(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_dbsrmm_full_rank = rocsparse_dbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dbsrmm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocsparse_dbsrmm_rank_0 = rocsparse_dbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dbsrmm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_dbsrmm_rank_1 = rocsparse_dbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_cbsrmm_full_rank(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_cbsrmm_full_rank = rocsparse_cbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_cbsrmm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsparse_cbsrmm_rank_0 = rocsparse_cbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_cbsrmm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_cbsrmm_rank_1 = rocsparse_cbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zbsrmm_full_rank(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_zbsrmm_full_rank = rocsparse_zbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zbsrmm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsparse_zbsrmm_rank_0 = rocsparse_zbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zbsrmm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_zbsrmm_rank_1 = rocsparse_zbsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_sgebsrmm_full_rank(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_sgebsrmm_full_rank = rocsparse_sgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_sgebsrmm_rank_0(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocsparse_sgebsrmm_rank_0 = rocsparse_sgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_sgebsrmm_rank_1(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_sgebsrmm_rank_1 = rocsparse_sgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dgebsrmm_full_rank(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_dgebsrmm_full_rank = rocsparse_dgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dgebsrmm_rank_0(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocsparse_dgebsrmm_rank_0 = rocsparse_dgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dgebsrmm_rank_1(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_dgebsrmm_rank_1 = rocsparse_dgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_cgebsrmm_full_rank(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_cgebsrmm_full_rank = rocsparse_cgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_cgebsrmm_rank_0(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsparse_cgebsrmm_rank_0 = rocsparse_cgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_cgebsrmm_rank_1(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_cgebsrmm_rank_1 = rocsparse_cgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zgebsrmm_full_rank(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_zgebsrmm_full_rank = rocsparse_zgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zgebsrmm_rank_0(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsparse_zgebsrmm_rank_0 = rocsparse_zgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zgebsrmm_rank_1(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: mb integer(c_int) :: n integer(c_int) :: kb integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_zgebsrmm_rank_1 = rocsparse_zgebsrmm_(handle,dir,trans_A,trans_B,mb,n,kb,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_scsrmm_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_scsrmm_full_rank = rocsparse_scsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_scsrmm_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocsparse_scsrmm_rank_0 = rocsparse_scsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_scsrmm_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: B integer(c_int) :: ldb real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_scsrmm_rank_1 = rocsparse_scsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dcsrmm_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_dcsrmm_full_rank = rocsparse_dcsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dcsrmm_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocsparse_dcsrmm_rank_0 = rocsparse_dcsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_dcsrmm_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: B integer(c_int) :: ldb real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_dcsrmm_rank_1 = rocsparse_dcsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_ccsrmm_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_ccsrmm_full_rank = rocsparse_ccsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_ccsrmm_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsparse_ccsrmm_rank_0 = rocsparse_ccsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_ccsrmm_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_ccsrmm_rank_1 = rocsparse_ccsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zcsrmm_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmm_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_zcsrmm_full_rank = rocsparse_zcsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zcsrmm_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsparse_zcsrmm_rank_0 = rocsparse_zcsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_zcsrmm_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_zcsrmm_rank_1 = rocsparse_zcsrmm_(handle,trans_A,trans_B,m,n,k,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,beta,c_loc(C),ldc) end function function rocsparse_scsrsm_buffer_size_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_buffer_size_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_scsrsm_buffer_size_full_rank = rocsparse_scsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_scsrsm_buffer_size_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_scsrsm_buffer_size_rank_0 = rocsparse_scsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_scsrsm_buffer_size_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_scsrsm_buffer_size_rank_1 = rocsparse_scsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_dcsrsm_buffer_size_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_buffer_size_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_dcsrsm_buffer_size_full_rank = rocsparse_dcsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_dcsrsm_buffer_size_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_dcsrsm_buffer_size_rank_0 = rocsparse_dcsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_dcsrsm_buffer_size_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_dcsrsm_buffer_size_rank_1 = rocsparse_dcsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_ccsrsm_buffer_size_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_buffer_size_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_ccsrsm_buffer_size_full_rank = rocsparse_ccsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_ccsrsm_buffer_size_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_ccsrsm_buffer_size_rank_0 = rocsparse_ccsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_ccsrsm_buffer_size_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_ccsrsm_buffer_size_rank_1 = rocsparse_ccsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_zcsrsm_buffer_size_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_buffer_size_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_zcsrsm_buffer_size_full_rank = rocsparse_zcsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_zcsrsm_buffer_size_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_zcsrsm_buffer_size_rank_0 = rocsparse_zcsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_zcsrsm_buffer_size_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy integer(c_size_t) :: buffer_size ! rocsparse_zcsrsm_buffer_size_rank_1 = rocsparse_zcsrsm_buffer_size_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,buffer_size) end function function rocsparse_scsrsm_analysis_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_analysis_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrsm_analysis_full_rank = rocsparse_scsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrsm_analysis_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrsm_analysis_rank_0 = rocsparse_scsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrsm_analysis_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrsm_analysis_rank_1 = rocsparse_scsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrsm_analysis_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_analysis_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrsm_analysis_full_rank = rocsparse_dcsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrsm_analysis_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrsm_analysis_rank_0 = rocsparse_dcsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrsm_analysis_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrsm_analysis_rank_1 = rocsparse_dcsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrsm_analysis_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_analysis_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrsm_analysis_full_rank = rocsparse_ccsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrsm_analysis_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrsm_analysis_rank_0 = rocsparse_ccsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrsm_analysis_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrsm_analysis_rank_1 = rocsparse_ccsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrsm_analysis_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_analysis_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrsm_analysis_full_rank = rocsparse_zcsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrsm_analysis_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrsm_analysis_rank_0 = rocsparse_zcsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrsm_analysis_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrsm_analysis_rank_1 = rocsparse_zcsrsm_analysis_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrsm_solve_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrsm_solve_full_rank = rocsparse_scsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_scsrsm_solve_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrsm_solve_rank_0 = rocsparse_scsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_scsrsm_solve_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrsm_solve_rank_1 = rocsparse_scsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_dcsrsm_solve_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrsm_solve_full_rank = rocsparse_dcsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_dcsrsm_solve_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrsm_solve_rank_0 = rocsparse_dcsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_dcsrsm_solve_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrsm_solve_rank_1 = rocsparse_dcsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_ccsrsm_solve_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrsm_solve_full_rank = rocsparse_ccsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_ccsrsm_solve_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrsm_solve_rank_0 = rocsparse_ccsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_ccsrsm_solve_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrsm_solve_rank_1 = rocsparse_ccsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_zcsrsm_solve_full_rank(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrsm_solve_full_rank = rocsparse_zcsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_zcsrsm_solve_rank_0(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrsm_solve_rank_0 = rocsparse_zcsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_zcsrsm_solve_rank_1(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,ldb,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: nrhs integer(c_int) :: nnz complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrsm_solve_rank_1 = rocsparse_zcsrsm_solve_(handle,trans_A,trans_B,m,nrhs,nnz,alpha,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(B),ldb,myInfo,policy,temp_buffer) end function function rocsparse_sbsrsm_buffer_size_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsrsm_buffer_size_rank_0 = rocsparse_sbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsrsm_buffer_size_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsrsm_buffer_size_rank_1 = rocsparse_sbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsrsm_buffer_size_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsrsm_buffer_size_rank_0 = rocsparse_dbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsrsm_buffer_size_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsrsm_buffer_size_rank_1 = rocsparse_dbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsrsm_buffer_size_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsrsm_buffer_size_rank_0 = rocsparse_cbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsrsm_buffer_size_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsrsm_buffer_size_rank_1 = rocsparse_cbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsrsm_buffer_size_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsrsm_buffer_size_rank_0 = rocsparse_zbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsrsm_buffer_size_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsrsm_buffer_size_rank_1 = rocsparse_zbsrsm_buffer_size_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsrsm_analysis_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsrsm_analysis_rank_0 = rocsparse_sbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsrsm_analysis_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsrsm_analysis_rank_1 = rocsparse_sbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsrsm_analysis_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsrsm_analysis_rank_0 = rocsparse_dbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsrsm_analysis_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsrsm_analysis_rank_1 = rocsparse_dbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsrsm_analysis_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsrsm_analysis_rank_0 = rocsparse_cbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsrsm_analysis_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsrsm_analysis_rank_1 = rocsparse_cbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsrsm_analysis_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsrsm_analysis_rank_0 = rocsparse_zbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsrsm_analysis_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsrsm_analysis_rank_1 = rocsparse_zbsrsm_analysis_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsrsm_solve_full_rank(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrsm_solve_full_rank = rocsparse_sbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_sbsrsm_solve_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrsm_solve_rank_0 = rocsparse_sbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_sbsrsm_solve_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_float) :: alpha type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrsm_solve_rank_1 = rocsparse_sbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_dbsrsm_solve_full_rank(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrsm_solve_full_rank = rocsparse_dbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_dbsrsm_solve_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrsm_solve_rank_0 = rocsparse_dbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_dbsrsm_solve_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb real(c_double) :: alpha type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrsm_solve_rank_1 = rocsparse_dbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_cbsrsm_solve_full_rank(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrsm_solve_full_rank = rocsparse_cbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_cbsrsm_solve_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrsm_solve_rank_0 = rocsparse_cbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_cbsrsm_solve_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_float_complex) :: alpha type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrsm_solve_rank_1 = rocsparse_cbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_zbsrsm_solve_full_rank(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_solve_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrsm_solve_full_rank = rocsparse_zbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_zbsrsm_solve_rank_0(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_solve_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrsm_solve_rank_0 = rocsparse_zbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_zbsrsm_solve_rank_1(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,B,ldb,X,ldx,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsm_solve_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_X integer(c_int) :: mb integer(c_int) :: nrhs integer(c_int) :: nnzb complex(c_double_complex) :: alpha type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: X integer(c_int) :: ldx integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrsm_solve_rank_1 = rocsparse_zbsrsm_solve_(handle,dir,trans_A,trans_X,mb,nrhs,nnzb,alpha,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,c_loc(B),ldb,X,ldx,policy,temp_buffer) end function function rocsparse_sgemmi_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemmi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float) :: beta real(c_float),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_sgemmi_full_rank = rocsparse_sgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_sgemmi_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemmi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target :: A integer(c_int) :: lda type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float) :: beta real(c_float),target :: C integer(c_int) :: ldc ! rocsparse_sgemmi_rank_0 = rocsparse_sgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_sgemmi_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgemmi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_float) :: alpha real(c_float),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float) :: beta real(c_float),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_sgemmi_rank_1 = rocsparse_sgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_dgemmi_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemmi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double) :: beta real(c_double),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_dgemmi_full_rank = rocsparse_dgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_dgemmi_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemmi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target :: A integer(c_int) :: lda type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double) :: beta real(c_double),target :: C integer(c_int) :: ldc ! rocsparse_dgemmi_rank_0 = rocsparse_dgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_dgemmi_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgemmi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz real(c_double) :: alpha real(c_double),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double) :: beta real(c_double),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_dgemmi_rank_1 = rocsparse_dgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_cgemmi_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemmi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_cgemmi_full_rank = rocsparse_cgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_cgemmi_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemmi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target :: A integer(c_int) :: lda type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex) :: beta complex(c_float_complex),target :: C integer(c_int) :: ldc ! rocsparse_cgemmi_rank_0 = rocsparse_cgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_cgemmi_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgemmi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_float_complex) :: alpha complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex) :: beta complex(c_float_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_cgemmi_rank_1 = rocsparse_cgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_zgemmi_full_rank(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemmi_full_rank type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: lda type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:,:) :: C integer(c_int) :: ldc ! rocsparse_zgemmi_full_rank = rocsparse_zgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_zgemmi_rank_0(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemmi_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target :: A integer(c_int) :: lda type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex) :: beta complex(c_double_complex),target :: C integer(c_int) :: ldc ! rocsparse_zgemmi_rank_0 = rocsparse_zgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_zgemmi_rank_1(handle,trans_A,trans_B,m,n,k,nnz,alpha,A,lda,descr,csr_val,csr_row_ptr,csr_col_ind,beta,C,ldc) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgemmi_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k integer(c_int) :: nnz complex(c_double_complex) :: alpha complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: lda type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex) :: beta complex(c_double_complex),target,dimension(:) :: C integer(c_int) :: ldc ! rocsparse_zgemmi_rank_1 = rocsparse_zgemmi_(handle,trans_A,trans_B,m,n,k,nnz,alpha,c_loc(A),lda,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),beta,c_loc(C),ldc) end function function rocsparse_csrgeam_nnz_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrgeam_nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B type(c_ptr) :: descr_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: nnz_C ! rocsparse_csrgeam_nnz_rank_0 = rocsparse_csrgeam_nnz_(handle,m,n,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_row_ptr_C),c_loc(nnz_C)) end function function rocsparse_csrgeam_nnz_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrgeam_nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B type(c_ptr) :: descr_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: nnz_C ! rocsparse_csrgeam_nnz_rank_1 = rocsparse_csrgeam_nnz_(handle,m,n,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_row_ptr_C),c_loc(nnz_C)) end function function rocsparse_scsrgeam_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_float),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B type(c_ptr) :: descr_C real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C ! rocsparse_scsrgeam_rank_0 = rocsparse_scsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_scsrgeam_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_float),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B type(c_ptr) :: descr_C real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C ! rocsparse_scsrgeam_rank_1 = rocsparse_scsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_dcsrgeam_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_double),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B type(c_ptr) :: descr_C real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C ! rocsparse_dcsrgeam_rank_0 = rocsparse_dcsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_dcsrgeam_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_double),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B type(c_ptr) :: descr_C real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C ! rocsparse_dcsrgeam_rank_1 = rocsparse_dcsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_ccsrgeam_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_float_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A complex(c_float_complex) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_float_complex),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B type(c_ptr) :: descr_C complex(c_float_complex),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C ! rocsparse_ccsrgeam_rank_0 = rocsparse_ccsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_ccsrgeam_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_float_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_float_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A complex(c_float_complex) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_float_complex),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B type(c_ptr) :: descr_C complex(c_float_complex),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C ! rocsparse_ccsrgeam_rank_1 = rocsparse_ccsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_zcsrgeam_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgeam_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_double_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A complex(c_double_complex) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_double_complex),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B type(c_ptr) :: descr_C complex(c_double_complex),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C ! rocsparse_zcsrgeam_rank_0 = rocsparse_zcsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_zcsrgeam_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgeam_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n complex(c_double_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_double_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A complex(c_double_complex) :: beta type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_double_complex),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B type(c_ptr) :: descr_C complex(c_double_complex),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C ! rocsparse_zcsrgeam_rank_1 = rocsparse_zcsrgeam_(handle,m,n,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),beta,descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C)) end function function rocsparse_scsrgemm_buffer_size_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B real(c_float) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_scsrgemm_buffer_size_rank_0 = rocsparse_scsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_scsrgemm_buffer_size_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B real(c_float) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_scsrgemm_buffer_size_rank_1 = rocsparse_scsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_dcsrgemm_buffer_size_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B real(c_double) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_dcsrgemm_buffer_size_rank_0 = rocsparse_dcsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_dcsrgemm_buffer_size_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B real(c_double) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_dcsrgemm_buffer_size_rank_1 = rocsparse_dcsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_ccsrgemm_buffer_size_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B complex(c_float_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_ccsrgemm_buffer_size_rank_0 = rocsparse_ccsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_ccsrgemm_buffer_size_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B complex(c_float_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_ccsrgemm_buffer_size_rank_1 = rocsparse_ccsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_zcsrgemm_buffer_size_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B complex(c_double_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_zcsrgemm_buffer_size_rank_0 = rocsparse_zcsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_zcsrgemm_buffer_size_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B complex(c_double_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: info_C integer(c_size_t) :: buffer_size ! rocsparse_zcsrgemm_buffer_size_rank_1 = rocsparse_zcsrgemm_buffer_size_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),info_C,buffer_size) end function function rocsparse_csrgemm_nnz_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrgemm_nnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: descr_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: nnz_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_csrgemm_nnz_rank_0 = rocsparse_csrgemm_nnz_(handle,trans_A,trans_B,m,n,k,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_row_ptr_C),c_loc(nnz_C),info_C,temp_buffer) end function function rocsparse_csrgemm_nnz_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrgemm_nnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k type(c_ptr) :: descr_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B type(c_ptr) :: descr_D integer(c_int) :: nnz_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: descr_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: nnz_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_csrgemm_nnz_rank_1 = rocsparse_csrgemm_nnz_(handle,trans_A,trans_B,m,n,k,descr_A,nnz_A,c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),descr_D,nnz_D,c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_row_ptr_C),c_loc(nnz_C),info_C,temp_buffer) end function function rocsparse_scsrgemm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_float),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B real(c_float) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D real(c_float),target :: csr_val_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: descr_C real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_scsrgemm_rank_0 = rocsparse_scsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_scsrgemm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_float) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_float),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B real(c_float) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D real(c_float),target,dimension(:) :: csr_val_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: descr_C real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_scsrgemm_rank_1 = rocsparse_scsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_dcsrgemm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_double),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B real(c_double) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D real(c_double),target :: csr_val_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: descr_C real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_dcsrgemm_rank_0 = rocsparse_dcsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_dcsrgemm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k real(c_double) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B real(c_double),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B real(c_double) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D real(c_double),target,dimension(:) :: csr_val_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: descr_C real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_dcsrgemm_rank_1 = rocsparse_dcsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_ccsrgemm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_float_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_float_complex),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B complex(c_float_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D complex(c_float_complex),target :: csr_val_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: descr_C complex(c_float_complex),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_ccsrgemm_rank_0 = rocsparse_ccsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_ccsrgemm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_float_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_float_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_float_complex),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B complex(c_float_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D complex(c_float_complex),target,dimension(:) :: csr_val_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: descr_C complex(c_float_complex),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_ccsrgemm_rank_1 = rocsparse_ccsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_zcsrgemm_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_double_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_double_complex),target :: csr_val_B integer(c_int),target :: csr_row_ptr_B integer(c_int),target :: csr_col_ind_B complex(c_double_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D complex(c_double_complex),target :: csr_val_D integer(c_int),target :: csr_row_ptr_D integer(c_int),target :: csr_col_ind_D type(c_ptr) :: descr_C complex(c_double_complex),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_zcsrgemm_rank_0 = rocsparse_zcsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_zcsrgemm_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_operation_none)) :: trans_A integer(kind(rocsparse_operation_none)) :: trans_B integer(c_int) :: m integer(c_int) :: n integer(c_int) :: k complex(c_double_complex) :: alpha type(c_ptr) :: descr_A integer(c_int) :: nnz_A complex(c_double_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A type(c_ptr) :: descr_B integer(c_int) :: nnz_B complex(c_double_complex),target,dimension(:) :: csr_val_B integer(c_int),target,dimension(:) :: csr_row_ptr_B integer(c_int),target,dimension(:) :: csr_col_ind_B complex(c_double_complex) :: beta type(c_ptr) :: descr_D integer(c_int) :: nnz_D complex(c_double_complex),target,dimension(:) :: csr_val_D integer(c_int),target,dimension(:) :: csr_row_ptr_D integer(c_int),target,dimension(:) :: csr_col_ind_D type(c_ptr) :: descr_C complex(c_double_complex),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: info_C type(c_ptr) :: temp_buffer ! rocsparse_zcsrgemm_rank_1 = rocsparse_zcsrgemm_(handle,trans_A,trans_B,m,n,k,alpha,descr_A,nnz_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),descr_B,nnz_B,c_loc(csr_val_B),c_loc(csr_row_ptr_B),c_loc(csr_col_ind_B),beta,descr_D,nnz_D,c_loc(csr_val_D),c_loc(csr_row_ptr_D),c_loc(csr_col_ind_D),descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),info_C,temp_buffer) end function function rocsparse_sbsric0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsric0_buffer_size_rank_0 = rocsparse_sbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsric0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsric0_buffer_size_rank_1 = rocsparse_sbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsric0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsric0_buffer_size_rank_0 = rocsparse_dbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsric0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsric0_buffer_size_rank_1 = rocsparse_dbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsric0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsric0_buffer_size_rank_0 = rocsparse_cbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsric0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsric0_buffer_size_rank_1 = rocsparse_cbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsric0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsric0_buffer_size_rank_0 = rocsparse_zbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsric0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsric0_buffer_size_rank_1 = rocsparse_zbsric0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsric0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsric0_analysis_rank_0 = rocsparse_sbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsric0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsric0_analysis_rank_1 = rocsparse_sbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsric0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsric0_analysis_rank_0 = rocsparse_dbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsric0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsric0_analysis_rank_1 = rocsparse_dbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsric0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsric0_analysis_rank_0 = rocsparse_cbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsric0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsric0_analysis_rank_1 = rocsparse_cbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsric0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsric0_analysis_rank_0 = rocsparse_zbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsric0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsric0_analysis_rank_1 = rocsparse_zbsric0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsric0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsric0_rank_0 = rocsparse_sbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_sbsric0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsric0_rank_1 = rocsparse_sbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_dbsric0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsric0_rank_0 = rocsparse_dbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_dbsric0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsric0_rank_1 = rocsparse_dbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_cbsric0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsric0_rank_0 = rocsparse_cbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_cbsric0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsric0_rank_1 = rocsparse_cbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_zbsric0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsric0_rank_0 = rocsparse_zbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_zbsric0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsric0_rank_1 = rocsparse_zbsric0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_sbsrilu0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsrilu0_buffer_size_rank_0 = rocsparse_sbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsrilu0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sbsrilu0_buffer_size_rank_1 = rocsparse_sbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsrilu0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsrilu0_buffer_size_rank_0 = rocsparse_dbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_dbsrilu0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dbsrilu0_buffer_size_rank_1 = rocsparse_dbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsrilu0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsrilu0_buffer_size_rank_0 = rocsparse_cbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_cbsrilu0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_cbsrilu0_buffer_size_rank_1 = rocsparse_cbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsrilu0_buffer_size_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsrilu0_buffer_size_rank_0 = rocsparse_zbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_zbsrilu0_buffer_size_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zbsrilu0_buffer_size_rank_1 = rocsparse_zbsrilu0_buffer_size_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,buffer_size) end function function rocsparse_sbsrilu0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsrilu0_analysis_rank_0 = rocsparse_sbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsrilu0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_sbsrilu0_analysis_rank_1 = rocsparse_sbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsrilu0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsrilu0_analysis_rank_0 = rocsparse_dbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_dbsrilu0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dbsrilu0_analysis_rank_1 = rocsparse_dbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsrilu0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsrilu0_analysis_rank_0 = rocsparse_cbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_cbsrilu0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_cbsrilu0_analysis_rank_1 = rocsparse_cbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsrilu0_analysis_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsrilu0_analysis_rank_0 = rocsparse_zbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_zbsrilu0_analysis_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zbsrilu0_analysis_rank_1 = rocsparse_zbsrilu0_analysis_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,analysis,solve,temp_buffer) end function function rocsparse_sbsrilu0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrilu0_rank_0 = rocsparse_sbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_sbsrilu0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_sbsrilu0_rank_1 = rocsparse_sbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_dbsrilu0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrilu0_rank_0 = rocsparse_dbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_dbsrilu0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dbsrilu0_rank_1 = rocsparse_dbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_cbsrilu0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrilu0_rank_0 = rocsparse_cbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_cbsrilu0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_cbsrilu0_rank_1 = rocsparse_cbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_zbsrilu0_rank_0(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrilu0_rank_0 = rocsparse_zbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_zbsrilu0_rank_1(handle,dir,mb,nnzb,descr,bsr_val,bsr_row_ptr,bsr_col_ind,block_dim,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nnzb type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zbsrilu0_rank_1 = rocsparse_zbsrilu0_(handle,dir,mb,nnzb,descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,myInfo,policy,temp_buffer) end function function rocsparse_scsric0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_scsric0_buffer_size_rank_0 = rocsparse_scsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_scsric0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_scsric0_buffer_size_rank_1 = rocsparse_scsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dcsric0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dcsric0_buffer_size_rank_0 = rocsparse_dcsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dcsric0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dcsric0_buffer_size_rank_1 = rocsparse_dcsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_ccsric0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_ccsric0_buffer_size_rank_0 = rocsparse_ccsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_ccsric0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_ccsric0_buffer_size_rank_1 = rocsparse_ccsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_zcsric0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zcsric0_buffer_size_rank_0 = rocsparse_zcsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_zcsric0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zcsric0_buffer_size_rank_1 = rocsparse_zcsric0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_scsric0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsric0_analysis_rank_0 = rocsparse_scsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsric0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsric0_analysis_rank_1 = rocsparse_scsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsric0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsric0_analysis_rank_0 = rocsparse_dcsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsric0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsric0_analysis_rank_1 = rocsparse_dcsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsric0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsric0_analysis_rank_0 = rocsparse_ccsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsric0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsric0_analysis_rank_1 = rocsparse_ccsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsric0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsric0_analysis_rank_0 = rocsparse_zcsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsric0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsric0_analysis_rank_1 = rocsparse_zcsric0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsric0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsric0_rank_0 = rocsparse_scsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_scsric0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsric0_rank_1 = rocsparse_scsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_dcsric0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsric0_rank_0 = rocsparse_dcsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_dcsric0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsric0_rank_1 = rocsparse_dcsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_ccsric0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsric0_rank_0 = rocsparse_ccsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_ccsric0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsric0_rank_1 = rocsparse_ccsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_zcsric0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsric0_rank_0 = rocsparse_zcsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_zcsric0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsric0_rank_1 = rocsparse_zcsric0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_scsrilu0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_scsrilu0_buffer_size_rank_0 = rocsparse_scsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_scsrilu0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_scsrilu0_buffer_size_rank_1 = rocsparse_scsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dcsrilu0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dcsrilu0_buffer_size_rank_0 = rocsparse_dcsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dcsrilu0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dcsrilu0_buffer_size_rank_1 = rocsparse_dcsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_ccsrilu0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_ccsrilu0_buffer_size_rank_0 = rocsparse_ccsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_ccsrilu0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_ccsrilu0_buffer_size_rank_1 = rocsparse_ccsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_zcsrilu0_buffer_size_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zcsrilu0_buffer_size_rank_0 = rocsparse_zcsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_zcsrilu0_buffer_size_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_zcsrilu0_buffer_size_rank_1 = rocsparse_zcsrilu0_buffer_size_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_scsrilu0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrilu0_analysis_rank_0 = rocsparse_scsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrilu0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_scsrilu0_analysis_rank_1 = rocsparse_scsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrilu0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrilu0_analysis_rank_0 = rocsparse_dcsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_dcsrilu0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_dcsrilu0_analysis_rank_1 = rocsparse_dcsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrilu0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrilu0_analysis_rank_0 = rocsparse_ccsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_ccsrilu0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_ccsrilu0_analysis_rank_1 = rocsparse_ccsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrilu0_analysis_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_analysis_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrilu0_analysis_rank_0 = rocsparse_zcsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_zcsrilu0_analysis_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,analysis,solve,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_analysis_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_analysis_policy_reuse)) :: analysis integer(kind(rocsparse_solve_policy_auto)) :: solve type(c_ptr) :: temp_buffer ! rocsparse_zcsrilu0_analysis_rank_1 = rocsparse_zcsrilu0_analysis_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,analysis,solve,temp_buffer) end function function rocsparse_scsrilu0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrilu0_rank_0 = rocsparse_scsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_scsrilu0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_scsrilu0_rank_1 = rocsparse_scsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_dcsrilu0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrilu0_rank_0 = rocsparse_dcsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_dcsrilu0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_dcsrilu0_rank_1 = rocsparse_dcsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_ccsrilu0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrilu0_rank_0 = rocsparse_ccsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_ccsrilu0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_ccsrilu0_rank_1 = rocsparse_ccsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_zcsrilu0_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrilu0_rank_0 = rocsparse_zcsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_zcsrilu0_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,policy,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(kind(rocsparse_solve_policy_auto)) :: policy type(c_ptr) :: temp_buffer ! rocsparse_zcsrilu0_rank_1 = rocsparse_zcsrilu0_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,policy,temp_buffer) end function function rocsparse_sgtsv_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_buffer_size_full_rank = rocsparse_sgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_sgtsv_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_buffer_size_rank_0 = rocsparse_sgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_sgtsv_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_buffer_size_rank_1 = rocsparse_sgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_dgtsv_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_buffer_size_full_rank = rocsparse_dgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_dgtsv_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_buffer_size_rank_0 = rocsparse_dgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_dgtsv_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_buffer_size_rank_1 = rocsparse_dgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_cgtsv_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_buffer_size_full_rank = rocsparse_cgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_cgtsv_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_buffer_size_rank_0 = rocsparse_cgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_cgtsv_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_buffer_size_rank_1 = rocsparse_cgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_zgtsv_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_buffer_size_full_rank = rocsparse_zgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_zgtsv_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_buffer_size_rank_0 = rocsparse_zgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_zgtsv_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_buffer_size_rank_1 = rocsparse_zgtsv_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_sgtsv_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_full_rank = rocsparse_sgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_sgtsv_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_rank_0 = rocsparse_sgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_sgtsv_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_rank_1 = rocsparse_sgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_dgtsv_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_full_rank = rocsparse_dgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_dgtsv_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_rank_0 = rocsparse_dgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_dgtsv_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_rank_1 = rocsparse_dgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_cgtsv_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_full_rank = rocsparse_cgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_cgtsv_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_rank_0 = rocsparse_cgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_cgtsv_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_rank_1 = rocsparse_cgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_zgtsv_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_full_rank = rocsparse_zgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_zgtsv_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_rank_0 = rocsparse_zgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_zgtsv_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_rank_1 = rocsparse_zgtsv_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_sgtsv_no_pivot_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_no_pivot_buffer_size_full_rank = rocsparse_sgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_sgtsv_no_pivot_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_no_pivot_buffer_size_rank_0 = rocsparse_sgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_sgtsv_no_pivot_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_no_pivot_buffer_size_rank_1 = rocsparse_sgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_dgtsv_no_pivot_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_no_pivot_buffer_size_full_rank = rocsparse_dgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_dgtsv_no_pivot_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_no_pivot_buffer_size_rank_0 = rocsparse_dgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_dgtsv_no_pivot_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_no_pivot_buffer_size_rank_1 = rocsparse_dgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_cgtsv_no_pivot_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_no_pivot_buffer_size_full_rank = rocsparse_cgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_cgtsv_no_pivot_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_no_pivot_buffer_size_rank_0 = rocsparse_cgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_cgtsv_no_pivot_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_no_pivot_buffer_size_rank_1 = rocsparse_cgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_zgtsv_no_pivot_buffer_size_full_rank(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_no_pivot_buffer_size_full_rank = rocsparse_zgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_zgtsv_no_pivot_buffer_size_rank_0(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_no_pivot_buffer_size_rank_0 = rocsparse_zgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_zgtsv_no_pivot_buffer_size_rank_1(handle,m,n,dl,d,du,B,ldb,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_no_pivot_buffer_size_rank_1 = rocsparse_zgtsv_no_pivot_buffer_size_(handle,m,n,dl,d,du,c_loc(B),ldb,buffer_size) end function function rocsparse_sgtsv_no_pivot_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_no_pivot_full_rank = rocsparse_sgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_sgtsv_no_pivot_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_no_pivot_rank_0 = rocsparse_sgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_sgtsv_no_pivot_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_no_pivot_rank_1 = rocsparse_sgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_dgtsv_no_pivot_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_no_pivot_full_rank = rocsparse_dgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_dgtsv_no_pivot_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_no_pivot_rank_0 = rocsparse_dgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_dgtsv_no_pivot_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_no_pivot_rank_1 = rocsparse_dgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_cgtsv_no_pivot_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_no_pivot_full_rank = rocsparse_cgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_cgtsv_no_pivot_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_no_pivot_rank_0 = rocsparse_cgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_cgtsv_no_pivot_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_no_pivot_rank_1 = rocsparse_cgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_zgtsv_no_pivot_full_rank(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:,:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_no_pivot_full_rank = rocsparse_zgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_zgtsv_no_pivot_rank_0(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_no_pivot_rank_0 = rocsparse_zgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_zgtsv_no_pivot_rank_1(handle,m,n,dl,d,du,B,ldb,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: B integer(c_int) :: ldb type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_no_pivot_rank_1 = rocsparse_zgtsv_no_pivot_(handle,m,n,dl,d,du,c_loc(B),ldb,temp_buffer) end function function rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_0 = rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_rank_1 = rocsparse_sgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_0 = rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_rank_1 = rocsparse_dgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_0 = rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_rank_1 = rocsparse_cgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_0 = rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride integer(c_size_t) :: buffer_size ! rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_rank_1 = rocsparse_zgtsv_no_pivot_strided_batch_buffer_size_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,buffer_size) end function function rocsparse_sgtsv_no_pivot_strided_batch_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_strided_batch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_no_pivot_strided_batch_rank_0 = rocsparse_sgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_sgtsv_no_pivot_strided_batch_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_strided_batch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_float),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_sgtsv_no_pivot_strided_batch_rank_1 = rocsparse_sgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_dgtsv_no_pivot_strided_batch_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_strided_batch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_no_pivot_strided_batch_rank_0 = rocsparse_dgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_dgtsv_no_pivot_strided_batch_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_strided_batch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du real(c_double),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_dgtsv_no_pivot_strided_batch_rank_1 = rocsparse_dgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_cgtsv_no_pivot_strided_batch_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_strided_batch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_no_pivot_strided_batch_rank_0 = rocsparse_cgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_cgtsv_no_pivot_strided_batch_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_strided_batch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_float_complex),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_cgtsv_no_pivot_strided_batch_rank_1 = rocsparse_cgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_zgtsv_no_pivot_strided_batch_rank_0(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_strided_batch_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_no_pivot_strided_batch_rank_0 = rocsparse_zgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_zgtsv_no_pivot_strided_batch_rank_1(handle,m,dl,d,du,x,batch_count,batch_stride,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_strided_batch_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: dl type(c_ptr) :: d type(c_ptr) :: du complex(c_double_complex),target,dimension(:) :: x integer(c_int) :: batch_count integer(c_int) :: batch_stride type(c_ptr) :: temp_buffer ! rocsparse_zgtsv_no_pivot_strided_batch_rank_1 = rocsparse_zgtsv_no_pivot_strided_batch_(handle,m,dl,d,du,c_loc(x),batch_count,batch_stride,temp_buffer) end function function rocsparse_snnz_full_rank(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_snnz_full_rank = rocsparse_snnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_snnz_rank_0(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_snnz_rank_0 = rocsparse_snnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_snnz_rank_1(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_snnz_rank_1 = rocsparse_snnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_dnnz_full_rank(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_dnnz_full_rank = rocsparse_dnnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_dnnz_rank_0(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_dnnz_rank_0 = rocsparse_dnnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_dnnz_rank_1(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_dnnz_rank_1 = rocsparse_dnnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_cnnz_full_rank(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_cnnz_full_rank = rocsparse_cnnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_cnnz_rank_0(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_cnnz_rank_0 = rocsparse_cnnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_cnnz_rank_1(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_cnnz_rank_1 = rocsparse_cnnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_znnz_full_rank(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_full_rank type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_znnz_full_rank = rocsparse_znnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_znnz_rank_0(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_znnz_rank_0 = rocsparse_znnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_znnz_rank_1(handle,dir,m,n,descr,A,ld,nnz_per_row_columns,nnz_total_dev_host_ptr) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_row_columns integer(c_int) :: nnz_total_dev_host_ptr ! rocsparse_znnz_rank_1 = rocsparse_znnz_(handle,dir,m,n,descr,c_loc(A),ld,c_loc(nnz_per_row_columns),nnz_total_dev_host_ptr) end function function rocsparse_sdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_sdense2csr_full_rank = rocsparse_sdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_sdense2csr_rank_0 = rocsparse_sdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_sdense2csr_rank_1 = rocsparse_sdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_ddense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_ddense2csr_full_rank = rocsparse_ddense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_ddense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_ddense2csr_rank_0 = rocsparse_ddense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_ddense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_ddense2csr_rank_1 = rocsparse_ddense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_cdense2csr_full_rank = rocsparse_cdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_cdense2csr_rank_0 = rocsparse_cdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_cdense2csr_rank_1 = rocsparse_cdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zdense2csr_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_zdense2csr_full_rank = rocsparse_zdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zdense2csr_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_zdense2csr_rank_0 = rocsparse_zdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zdense2csr_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_zdense2csr_rank_1 = rocsparse_zdense2csr_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sprune_dense2csr_buffer_size_full_rank(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_sprune_dense2csr_buffer_size_full_rank = rocsparse_sprune_dense2csr_buffer_size_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_sprune_dense2csr_buffer_size_rank_0(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_sprune_dense2csr_buffer_size_rank_0 = rocsparse_sprune_dense2csr_buffer_size_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_sprune_dense2csr_buffer_size_rank_1(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_sprune_dense2csr_buffer_size_rank_1 = rocsparse_sprune_dense2csr_buffer_size_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_dprune_dense2csr_buffer_size_full_rank(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_dprune_dense2csr_buffer_size_full_rank = rocsparse_dprune_dense2csr_buffer_size_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_dprune_dense2csr_buffer_size_rank_0(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_dprune_dense2csr_buffer_size_rank_0 = rocsparse_dprune_dense2csr_buffer_size_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_dprune_dense2csr_buffer_size_rank_1(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_dprune_dense2csr_buffer_size_rank_1 = rocsparse_dprune_dense2csr_buffer_size_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_sprune_dense2csr_nnz_full_rank(handle,m,n,A,lda,threshold,descr,csr_row_ptr,nnz_total_dev_host_ptr,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_nnz_full_rank = rocsparse_sprune_dense2csr_nnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_sprune_dense2csr_nnz_rank_0(handle,m,n,A,lda,threshold,descr,csr_row_ptr,nnz_total_dev_host_ptr,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr integer(c_int),target :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_nnz_rank_0 = rocsparse_sprune_dense2csr_nnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_sprune_dense2csr_nnz_rank_1(handle,m,n,A,lda,threshold,descr,csr_row_ptr,nnz_total_dev_host_ptr,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_nnz_rank_1 = rocsparse_sprune_dense2csr_nnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_dprune_dense2csr_nnz_full_rank(handle,m,n,A,lda,threshold,descr,csr_row_ptr,nnz_total_dev_host_ptr,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_nnz_full_rank = rocsparse_dprune_dense2csr_nnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_dprune_dense2csr_nnz_rank_0(handle,m,n,A,lda,threshold,descr,csr_row_ptr,nnz_total_dev_host_ptr,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr integer(c_int),target :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_nnz_rank_0 = rocsparse_dprune_dense2csr_nnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_dprune_dense2csr_nnz_rank_1(handle,m,n,A,lda,threshold,descr,csr_row_ptr,nnz_total_dev_host_ptr,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_nnz_rank_1 = rocsparse_dprune_dense2csr_nnz_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_sprune_dense2csr_full_rank(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_full_rank = rocsparse_sprune_dense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_sprune_dense2csr_rank_0(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_rank_0 = rocsparse_sprune_dense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_sprune_dense2csr_rank_1(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: threshold type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_rank_1 = rocsparse_sprune_dense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_dprune_dense2csr_full_rank(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_full_rank = rocsparse_dprune_dense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_dprune_dense2csr_rank_0(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_rank_0 = rocsparse_dprune_dense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_dprune_dense2csr_rank_1(handle,m,n,A,lda,threshold,descr,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: threshold type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_rank_1 = rocsparse_dprune_dense2csr_(handle,m,n,c_loc(A),lda,threshold,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_sprune_dense2csr_by_percentage_buffer_size_full_rank(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sprune_dense2csr_by_percentage_buffer_size_full_rank = rocsparse_sprune_dense2csr_by_percentage_buffer_size_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_0(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_0 = rocsparse_sprune_dense2csr_by_percentage_buffer_size_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_1(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sprune_dense2csr_by_percentage_buffer_size_rank_1 = rocsparse_sprune_dense2csr_by_percentage_buffer_size_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dprune_dense2csr_by_percentage_buffer_size_full_rank(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_buffer_size_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dprune_dense2csr_by_percentage_buffer_size_full_rank = rocsparse_dprune_dense2csr_by_percentage_buffer_size_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_0(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_0 = rocsparse_dprune_dense2csr_by_percentage_buffer_size_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_1(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dprune_dense2csr_by_percentage_buffer_size_rank_1 = rocsparse_dprune_dense2csr_by_percentage_buffer_size_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,buffer_size) end function function rocsparse_sprune_dense2csr_nnz_by_percentage_full_rank(handle,m,n,A,lda,percentage,descr,csr_row_ptr,nnz_total_dev_host_ptr,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_by_percentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_nnz_by_percentage_full_rank = rocsparse_sprune_dense2csr_nnz_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_sprune_dense2csr_nnz_by_percentage_rank_0(handle,m,n,A,lda,percentage,descr,csr_row_ptr,nnz_total_dev_host_ptr,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr integer(c_int),target :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_nnz_by_percentage_rank_0 = rocsparse_sprune_dense2csr_nnz_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_sprune_dense2csr_nnz_by_percentage_rank_1(handle,m,n,A,lda,percentage,descr,csr_row_ptr,nnz_total_dev_host_ptr,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_nnz_by_percentage_rank_1 = rocsparse_sprune_dense2csr_nnz_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_dprune_dense2csr_nnz_by_percentage_full_rank(handle,m,n,A,lda,percentage,descr,csr_row_ptr,nnz_total_dev_host_ptr,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_by_percentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_nnz_by_percentage_full_rank = rocsparse_dprune_dense2csr_nnz_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_dprune_dense2csr_nnz_by_percentage_rank_0(handle,m,n,A,lda,percentage,descr,csr_row_ptr,nnz_total_dev_host_ptr,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr integer(c_int),target :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_nnz_by_percentage_rank_0 = rocsparse_dprune_dense2csr_nnz_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_dprune_dense2csr_nnz_by_percentage_rank_1(handle,m,n,A,lda,percentage,descr,csr_row_ptr,nnz_total_dev_host_ptr,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_nnz_by_percentage_rank_1 = rocsparse_dprune_dense2csr_nnz_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_row_ptr),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_sprune_dense2csr_by_percentage_full_rank(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:,:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_by_percentage_full_rank = rocsparse_sprune_dense2csr_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,temp_buffer) end function function rocsparse_sprune_dense2csr_by_percentage_rank_0(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_by_percentage_rank_0 = rocsparse_sprune_dense2csr_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,temp_buffer) end function function rocsparse_sprune_dense2csr_by_percentage_rank_1(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_float),target,dimension(:) :: A integer(c_int) :: lda real(c_float) :: percentage type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_dense2csr_by_percentage_rank_1 = rocsparse_sprune_dense2csr_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,temp_buffer) end function function rocsparse_dprune_dense2csr_by_percentage_full_rank(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:,:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_by_percentage_full_rank = rocsparse_dprune_dense2csr_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,temp_buffer) end function function rocsparse_dprune_dense2csr_by_percentage_rank_0(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_by_percentage_rank_0 = rocsparse_dprune_dense2csr_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,temp_buffer) end function function rocsparse_dprune_dense2csr_by_percentage_rank_1(handle,m,n,A,lda,percentage,descr,csr_val,csr_row_ptr,csr_col_ind,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n real(c_double),target,dimension(:) :: A integer(c_int) :: lda real(c_double) :: percentage type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_dense2csr_by_percentage_rank_1 = rocsparse_dprune_dense2csr_by_percentage_(handle,m,n,c_loc(A),lda,percentage,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),myInfo,temp_buffer) end function function rocsparse_sdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_sdense2csc_full_rank = rocsparse_sdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_sdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns real(c_float),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind ! rocsparse_sdense2csc_rank_0 = rocsparse_sdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_sdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_sdense2csc_rank_1 = rocsparse_sdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_ddense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_ddense2csc_full_rank = rocsparse_ddense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_ddense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns real(c_double),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind ! rocsparse_ddense2csc_rank_0 = rocsparse_ddense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_ddense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_ddense2csc_rank_1 = rocsparse_ddense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_cdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_cdense2csc_full_rank = rocsparse_cdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_cdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns complex(c_float_complex),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind ! rocsparse_cdense2csc_rank_0 = rocsparse_cdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_cdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_cdense2csc_rank_1 = rocsparse_cdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_zdense2csc_full_rank(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csc_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_zdense2csc_full_rank = rocsparse_zdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_zdense2csc_rank_0(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_columns complex(c_double_complex),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind ! rocsparse_zdense2csc_rank_0 = rocsparse_zdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_zdense2csc_rank_1(handle,m,n,descr,A,ld,nnz_per_columns,csc_val,csc_col_ptr,csc_row_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_columns complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind ! rocsparse_zdense2csc_rank_1 = rocsparse_zdense2csc_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_columns),c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind)) end function function rocsparse_sdense2coo_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2coo_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_float),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_sdense2coo_full_rank = rocsparse_sdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_sdense2coo_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2coo_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows real(c_float),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind ! rocsparse_sdense2coo_rank_0 = rocsparse_sdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_sdense2coo_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sdense2coo_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_float),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_sdense2coo_rank_1 = rocsparse_sdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_ddense2coo_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2coo_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_double),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_ddense2coo_full_rank = rocsparse_ddense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_ddense2coo_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2coo_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows real(c_double),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind ! rocsparse_ddense2coo_rank_0 = rocsparse_ddense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_ddense2coo_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ddense2coo_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows real(c_double),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_ddense2coo_rank_1 = rocsparse_ddense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_cdense2coo_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2coo_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_float_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_cdense2coo_full_rank = rocsparse_cdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_cdense2coo_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2coo_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows complex(c_float_complex),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind ! rocsparse_cdense2coo_rank_0 = rocsparse_cdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_cdense2coo_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cdense2coo_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_float_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_cdense2coo_rank_1 = rocsparse_cdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_zdense2coo_full_rank(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2coo_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_double_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_zdense2coo_full_rank = rocsparse_zdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_zdense2coo_rank_0(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2coo_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: A integer(c_int) :: ld integer(c_int),target :: nnz_per_rows complex(c_double_complex),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind ! rocsparse_zdense2coo_rank_0 = rocsparse_zdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_zdense2coo_rank_1(handle,m,n,descr,A,ld,nnz_per_rows,coo_val,coo_row_ind,coo_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zdense2coo_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld integer(c_int),target,dimension(:) :: nnz_per_rows complex(c_double_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind ! rocsparse_zdense2coo_rank_1 = rocsparse_zdense2coo_(handle,m,n,descr,c_loc(A),ld,c_loc(nnz_per_rows),c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind)) end function function rocsparse_scsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_scsr2dense_full_rank = rocsparse_scsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_scsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: A integer(c_int) :: ld ! rocsparse_scsr2dense_rank_0 = rocsparse_scsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_scsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_scsr2dense_rank_1 = rocsparse_scsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_dcsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_dcsr2dense_full_rank = rocsparse_dcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_dcsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: A integer(c_int) :: ld ! rocsparse_dcsr2dense_rank_0 = rocsparse_dcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_dcsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_dcsr2dense_rank_1 = rocsparse_dcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_ccsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_ccsr2dense_full_rank = rocsparse_ccsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_ccsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: A integer(c_int) :: ld ! rocsparse_ccsr2dense_rank_0 = rocsparse_ccsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_ccsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_ccsr2dense_rank_1 = rocsparse_ccsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_zcsr2dense_full_rank(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_zcsr2dense_full_rank = rocsparse_zcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_zcsr2dense_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: A integer(c_int) :: ld ! rocsparse_zcsr2dense_rank_0 = rocsparse_zcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_zcsr2dense_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_zcsr2dense_rank_1 = rocsparse_zcsr2dense_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(A),ld) end function function rocsparse_scsc2dense_full_rank(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_scsc2dense_full_rank = rocsparse_scsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_scsc2dense_rank_0(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind real(c_float),target :: A integer(c_int) :: ld ! rocsparse_scsc2dense_rank_0 = rocsparse_scsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_scsc2dense_rank_1(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind real(c_float),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_scsc2dense_rank_1 = rocsparse_scsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_dcsc2dense_full_rank(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_dcsc2dense_full_rank = rocsparse_dcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_dcsc2dense_rank_0(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind real(c_double),target :: A integer(c_int) :: ld ! rocsparse_dcsc2dense_rank_0 = rocsparse_dcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_dcsc2dense_rank_1(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind real(c_double),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_dcsc2dense_rank_1 = rocsparse_dcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_ccsc2dense_full_rank(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_ccsc2dense_full_rank = rocsparse_ccsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_ccsc2dense_rank_0(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind complex(c_float_complex),target :: A integer(c_int) :: ld ! rocsparse_ccsc2dense_rank_0 = rocsparse_ccsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_ccsc2dense_rank_1(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_ccsc2dense_rank_1 = rocsparse_ccsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_zcsc2dense_full_rank(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsc2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_zcsc2dense_full_rank = rocsparse_zcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_zcsc2dense_rank_0(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsc2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: csc_val integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind complex(c_double_complex),target :: A integer(c_int) :: ld ! rocsparse_zcsc2dense_rank_0 = rocsparse_zcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_zcsc2dense_rank_1(handle,m,n,descr,csc_val,csc_col_ptr,csc_row_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsc2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_zcsc2dense_rank_1 = rocsparse_zcsc2dense_(handle,m,n,descr,c_loc(csc_val),c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(A),ld) end function function rocsparse_scoo2dense_full_rank(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scoo2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind real(c_float),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_scoo2dense_full_rank = rocsparse_scoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_scoo2dense_rank_0(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scoo2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind real(c_float),target :: A integer(c_int) :: ld ! rocsparse_scoo2dense_rank_0 = rocsparse_scoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_scoo2dense_rank_1(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scoo2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind real(c_float),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_scoo2dense_rank_1 = rocsparse_scoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_dcoo2dense_full_rank(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcoo2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind real(c_double),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_dcoo2dense_full_rank = rocsparse_dcoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_dcoo2dense_rank_0(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcoo2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind real(c_double),target :: A integer(c_int) :: ld ! rocsparse_dcoo2dense_rank_0 = rocsparse_dcoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_dcoo2dense_rank_1(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcoo2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind real(c_double),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_dcoo2dense_rank_1 = rocsparse_dcoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_ccoo2dense_full_rank(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccoo2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind complex(c_float_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_ccoo2dense_full_rank = rocsparse_ccoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_ccoo2dense_rank_0(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccoo2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind complex(c_float_complex),target :: A integer(c_int) :: ld ! rocsparse_ccoo2dense_rank_0 = rocsparse_ccoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_ccoo2dense_rank_1(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccoo2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind complex(c_float_complex),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_ccoo2dense_rank_1 = rocsparse_ccoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_zcoo2dense_full_rank(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcoo2dense_full_rank type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind complex(c_double_complex),target,dimension(:,:) :: A integer(c_int) :: ld ! rocsparse_zcoo2dense_full_rank = rocsparse_zcoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_zcoo2dense_rank_0(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcoo2dense_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: coo_val integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind complex(c_double_complex),target :: A integer(c_int) :: ld ! rocsparse_zcoo2dense_rank_0 = rocsparse_zcoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_zcoo2dense_rank_1(handle,m,n,nnz,descr,coo_val,coo_row_ind,coo_col_ind,A,ld) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcoo2dense_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: coo_val integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind complex(c_double_complex),target,dimension(:) :: A integer(c_int) :: ld ! rocsparse_zcoo2dense_rank_1 = rocsparse_zcoo2dense_(handle,m,n,nnz,descr,c_loc(coo_val),c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(A),ld) end function function rocsparse_snnz_compress_rank_0(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: nnz_per_row integer(c_int),target :: nnz_C real(c_float) :: tol ! rocsparse_snnz_compress_rank_0 = rocsparse_snnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_snnz_compress_rank_1(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_snnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: nnz_per_row integer(c_int),target,dimension(:) :: nnz_C real(c_float) :: tol ! rocsparse_snnz_compress_rank_1 = rocsparse_snnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_dnnz_compress_rank_0(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: nnz_per_row integer(c_int),target :: nnz_C real(c_double) :: tol ! rocsparse_dnnz_compress_rank_0 = rocsparse_dnnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_dnnz_compress_rank_1(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: nnz_per_row integer(c_int),target,dimension(:) :: nnz_C real(c_double) :: tol ! rocsparse_dnnz_compress_rank_1 = rocsparse_dnnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_cnnz_compress_rank_0(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A complex(c_float_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: nnz_per_row integer(c_int),target :: nnz_C complex(c_float_complex) :: tol ! rocsparse_cnnz_compress_rank_0 = rocsparse_cnnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_cnnz_compress_rank_1(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A complex(c_float_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: nnz_per_row integer(c_int),target,dimension(:) :: nnz_C complex(c_float_complex) :: tol ! rocsparse_cnnz_compress_rank_1 = rocsparse_cnnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_znnz_compress_rank_0(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A complex(c_double_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: nnz_per_row integer(c_int),target :: nnz_C complex(c_double_complex) :: tol ! rocsparse_znnz_compress_rank_0 = rocsparse_znnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_znnz_compress_rank_1(handle,m,descr_A,csr_val_A,csr_row_ptr_A,nnz_per_row,nnz_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_znnz_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: descr_A complex(c_double_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: nnz_per_row integer(c_int),target,dimension(:) :: nnz_C complex(c_double_complex) :: tol ! rocsparse_znnz_compress_rank_1 = rocsparse_znnz_compress_(handle,m,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(nnz_per_row),c_loc(nnz_C),tol) end function function rocsparse_csr2coo_rank_0(handle,csr_row_ptr,nnz,m,coo_row_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2coo_rank_0 type(c_ptr) :: handle integer(c_int),target :: csr_row_ptr integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target :: coo_row_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_csr2coo_rank_0 = rocsparse_csr2coo_(handle,c_loc(csr_row_ptr),nnz,m,c_loc(coo_row_ind),idx_base) end function function rocsparse_csr2coo_rank_1(handle,csr_row_ptr,nnz,m,coo_row_ind,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2coo_rank_1 type(c_ptr) :: handle integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target,dimension(:) :: coo_row_ind integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_csr2coo_rank_1 = rocsparse_csr2coo_(handle,c_loc(csr_row_ptr),nnz,m,c_loc(coo_row_ind),idx_base) end function function rocsparse_csr2csc_buffer_size_rank_0(handle,m,n,nnz,csr_row_ptr,csr_col_ind,copy_values,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2csc_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(kind(rocsparse_action_symbolic)) :: copy_values integer(c_size_t) :: buffer_size ! rocsparse_csr2csc_buffer_size_rank_0 = rocsparse_csr2csc_buffer_size_(handle,m,n,nnz,c_loc(csr_row_ptr),c_loc(csr_col_ind),copy_values,buffer_size) end function function rocsparse_csr2csc_buffer_size_rank_1(handle,m,n,nnz,csr_row_ptr,csr_col_ind,copy_values,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2csc_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(kind(rocsparse_action_symbolic)) :: copy_values integer(c_size_t) :: buffer_size ! rocsparse_csr2csc_buffer_size_rank_1 = rocsparse_csr2csc_buffer_size_(handle,m,n,nnz,c_loc(csr_row_ptr),c_loc(csr_col_ind),copy_values,buffer_size) end function function rocsparse_scsr2csc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_scsr2csc_rank_0 = rocsparse_scsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_scsr2csc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_scsr2csc_rank_1 = rocsparse_scsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_dcsr2csc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dcsr2csc_rank_0 = rocsparse_dcsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_dcsr2csc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dcsr2csc_rank_1 = rocsparse_dcsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_ccsr2csc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_float_complex),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_ccsr2csc_rank_0 = rocsparse_ccsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_ccsr2csc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_float_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_ccsr2csc_rank_1 = rocsparse_ccsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_zcsr2csc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2csc_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind complex(c_double_complex),target :: csc_val integer(c_int),target :: csc_row_ind integer(c_int),target :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zcsr2csc_rank_0 = rocsparse_zcsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_zcsr2csc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2csc_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind complex(c_double_complex),target,dimension(:) :: csc_val integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: csc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zcsr2csc_rank_1 = rocsparse_zcsr2csc_(handle,m,n,nnz,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(csc_val),c_loc(csc_row_ind),c_loc(csc_col_ptr),copy_values,idx_base,temp_buffer) end function function rocsparse_sgebsr2gebsc_buffer_size_rank_0(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsc_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_sgebsr2gebsc_buffer_size_rank_0 = rocsparse_sgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_sgebsr2gebsc_buffer_size_rank_1(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsc_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_sgebsr2gebsc_buffer_size_rank_1 = rocsparse_sgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_dgebsr2gebsc_buffer_size_rank_0(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsc_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_dgebsr2gebsc_buffer_size_rank_0 = rocsparse_dgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_dgebsr2gebsc_buffer_size_rank_1(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsc_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_dgebsr2gebsc_buffer_size_rank_1 = rocsparse_dgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_cgebsr2gebsc_buffer_size_rank_0(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsc_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_cgebsr2gebsc_buffer_size_rank_0 = rocsparse_cgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_cgebsr2gebsc_buffer_size_rank_1(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsc_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_cgebsr2gebsc_buffer_size_rank_1 = rocsparse_cgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_zgebsr2gebsc_buffer_size_rank_0(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsc_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_zgebsr2gebsc_buffer_size_rank_0 = rocsparse_zgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_zgebsr2gebsc_buffer_size_rank_1(handle,mb,nb,nnzb,bsr_val,bsr_row_ptr,bsr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsc_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_zgebsr2gebsc_buffer_size_rank_1 = rocsparse_zgebsr2gebsc_buffer_size_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_sgebsr2gebsc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsc_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_sgebsr2gebsc_rank_0 = rocsparse_sgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_sgebsr2gebsc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsc_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_sgebsr2gebsc_rank_1 = rocsparse_sgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_dgebsr2gebsc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsc_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dgebsr2gebsc_rank_0 = rocsparse_dgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_dgebsr2gebsc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsc_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_dgebsr2gebsc_rank_1 = rocsparse_dgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_cgebsr2gebsc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsc_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_cgebsr2gebsc_rank_0 = rocsparse_cgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_cgebsr2gebsc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsc_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_cgebsr2gebsc_rank_1 = rocsparse_cgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_zgebsr2gebsc_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsc_rank_0 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zgebsr2gebsc_rank_0 = rocsparse_zgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_zgebsr2gebsc_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsc_rank_1 type(c_ptr) :: handle integer(c_int) :: mb integer(c_int) :: nb integer(c_int) :: nnzb complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsc_val type(c_ptr) :: bsc_row_ind type(c_ptr) :: bsc_col_ptr integer(kind(rocsparse_action_symbolic)) :: copy_values integer(kind(rocsparse_index_base_zero)) :: idx_base type(c_ptr) :: temp_buffer ! rocsparse_zgebsr2gebsc_rank_1 = rocsparse_zgebsr2gebsc_(handle,mb,nb,nnzb,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,bsc_val,bsc_row_ind,bsc_col_ptr,copy_values,idx_base,temp_buffer) end function function rocsparse_csr2ell_width_rank_0(handle,m,csr_descr,csr_row_ptr,ell_descr,ell_width) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2ell_width_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr integer(c_int),target :: csr_row_ptr type(c_ptr) :: ell_descr integer(c_int),target :: ell_width ! rocsparse_csr2ell_width_rank_0 = rocsparse_csr2ell_width_(handle,m,csr_descr,c_loc(csr_row_ptr),ell_descr,c_loc(ell_width)) end function function rocsparse_csr2ell_width_rank_1(handle,m,csr_descr,csr_row_ptr,ell_descr,ell_width) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2ell_width_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr integer(c_int),target,dimension(:) :: csr_row_ptr type(c_ptr) :: ell_descr integer(c_int),target,dimension(:) :: ell_width ! rocsparse_csr2ell_width_rank_1 = rocsparse_csr2ell_width_(handle,m,csr_descr,c_loc(csr_row_ptr),ell_descr,c_loc(ell_width)) end function function rocsparse_scsr2ell_rank_0(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2ell_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_float),target :: ell_val integer(c_int),target :: ell_col_ind ! rocsparse_scsr2ell_rank_0 = rocsparse_scsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_scsr2ell_rank_1(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2ell_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_float),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind ! rocsparse_scsr2ell_rank_1 = rocsparse_scsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_dcsr2ell_rank_0(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2ell_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_double),target :: ell_val integer(c_int),target :: ell_col_ind ! rocsparse_dcsr2ell_rank_0 = rocsparse_dcsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_dcsr2ell_rank_1(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2ell_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_double),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind ! rocsparse_dcsr2ell_rank_1 = rocsparse_dcsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_ccsr2ell_rank_0(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2ell_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_float_complex),target :: ell_val integer(c_int),target :: ell_col_ind ! rocsparse_ccsr2ell_rank_0 = rocsparse_ccsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_ccsr2ell_rank_1(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2ell_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_float_complex),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind ! rocsparse_ccsr2ell_rank_1 = rocsparse_ccsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_zcsr2ell_rank_0(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2ell_rank_0 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_double_complex),target :: ell_val integer(c_int),target :: ell_col_ind ! rocsparse_zcsr2ell_rank_0 = rocsparse_zcsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_zcsr2ell_rank_1(handle,m,csr_descr,csr_val,csr_row_ptr,csr_col_ind,ell_descr,ell_width,ell_val,ell_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2ell_rank_1 type(c_ptr) :: handle integer(c_int) :: m type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_double_complex),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind ! rocsparse_zcsr2ell_rank_1 = rocsparse_zcsr2ell_(handle,m,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind)) end function function rocsparse_scsr2hyb_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_scsr2hyb_rank_0 = rocsparse_scsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_scsr2hyb_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_scsr2hyb_rank_1 = rocsparse_scsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_dcsr2hyb_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_dcsr2hyb_rank_0 = rocsparse_dcsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_dcsr2hyb_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_dcsr2hyb_rank_1 = rocsparse_dcsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_ccsr2hyb_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_ccsr2hyb_rank_0 = rocsparse_ccsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_ccsr2hyb_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_ccsr2hyb_rank_1 = rocsparse_ccsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_zcsr2hyb_rank_0(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2hyb_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_zcsr2hyb_rank_0 = rocsparse_zcsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_zcsr2hyb_rank_1(handle,m,n,descr,csr_val,csr_row_ptr,csr_col_ind,hyb,user_ell_width,partition_type) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2hyb_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: hyb integer(c_int) :: user_ell_width integer(kind(rocsparse_hyb_partition_auto)) :: partition_type ! rocsparse_zcsr2hyb_rank_1 = rocsparse_zcsr2hyb_(handle,m,n,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),hyb,user_ell_width,partition_type) end function function rocsparse_csr2bsr_nnz_rank_0(handle,dir,m,n,csr_descr,csr_row_ptr,csr_col_ind,block_dim,bsr_descr,bsr_row_ptr,bsr_nnz) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2bsr_nnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_nnz ! rocsparse_csr2bsr_nnz_rank_0 = rocsparse_csr2bsr_nnz_(handle,dir,m,n,csr_descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_row_ptr),c_loc(bsr_nnz)) end function function rocsparse_csr2bsr_nnz_rank_1(handle,dir,m,n,csr_descr,csr_row_ptr,csr_col_ind,block_dim,bsr_descr,bsr_row_ptr,bsr_nnz) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2bsr_nnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_nnz ! rocsparse_csr2bsr_nnz_rank_1 = rocsparse_csr2bsr_nnz_(handle,dir,m,n,csr_descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_row_ptr),c_loc(bsr_nnz)) end function function rocsparse_scsr2bsr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind ! rocsparse_scsr2bsr_rank_0 = rocsparse_scsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_scsr2bsr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind ! rocsparse_scsr2bsr_rank_1 = rocsparse_scsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_dcsr2bsr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind ! rocsparse_dcsr2bsr_rank_0 = rocsparse_dcsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_dcsr2bsr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind ! rocsparse_dcsr2bsr_rank_1 = rocsparse_dcsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_ccsr2bsr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind ! rocsparse_ccsr2bsr_rank_0 = rocsparse_ccsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_ccsr2bsr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind ! rocsparse_ccsr2bsr_rank_1 = rocsparse_ccsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_zcsr2bsr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2bsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind ! rocsparse_zcsr2bsr_rank_0 = rocsparse_zcsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_zcsr2bsr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2bsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: block_dim type(c_ptr) :: bsr_descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind ! rocsparse_zcsr2bsr_rank_1 = rocsparse_zcsr2bsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),block_dim,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind)) end function function rocsparse_scsr2gebsr_buffer_size_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_scsr2gebsr_buffer_size_rank_0 = rocsparse_scsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_scsr2gebsr_buffer_size_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_scsr2gebsr_buffer_size_rank_1 = rocsparse_scsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_dcsr2gebsr_buffer_size_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_dcsr2gebsr_buffer_size_rank_0 = rocsparse_dcsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_dcsr2gebsr_buffer_size_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_dcsr2gebsr_buffer_size_rank_1 = rocsparse_dcsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_ccsr2gebsr_buffer_size_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_ccsr2gebsr_buffer_size_rank_0 = rocsparse_ccsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_ccsr2gebsr_buffer_size_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_ccsr2gebsr_buffer_size_rank_1 = rocsparse_ccsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_zcsr2gebsr_buffer_size_rank_0(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_buffer_size_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_zcsr2gebsr_buffer_size_rank_0 = rocsparse_zcsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_zcsr2gebsr_buffer_size_rank_1(handle,dir,m,n,csr_descr,csr_val,csr_row_ptr,csr_col_ind,row_block_dim,col_block_dim,p_buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_buffer_size_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer_size ! rocsparse_zcsr2gebsr_buffer_size_rank_1 = rocsparse_zcsr2gebsr_buffer_size_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),row_block_dim,col_block_dim,p_buffer_size) end function function rocsparse_csr2gebsr_nnz_rank_0(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_devhost,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2gebsr_nnz_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr integer(c_int),target :: bsr_row_ptr integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsr_nnz_devhost type(c_ptr) :: p_buffer ! rocsparse_csr2gebsr_nnz_rank_0 = rocsparse_csr2gebsr_nnz_(handle,dir,m,n,csr_descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_row_ptr),row_block_dim,col_block_dim,bsr_nnz_devhost,p_buffer) end function function rocsparse_csr2gebsr_nnz_rank_1(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_devhost,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csr2gebsr_nnz_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: bsr_nnz_devhost type(c_ptr) :: p_buffer ! rocsparse_csr2gebsr_nnz_rank_1 = rocsparse_csr2gebsr_nnz_(handle,dir,m,n,csr_descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_row_ptr),row_block_dim,col_block_dim,bsr_nnz_devhost,p_buffer) end function function rocsparse_scsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_scsr2gebsr_rank_0 = rocsparse_scsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_scsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_scsr2gebsr_rank_1 = rocsparse_scsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_dcsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_dcsr2gebsr_rank_0 = rocsparse_dcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_dcsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_dcsr2gebsr_rank_1 = rocsparse_dcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_ccsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_ccsr2gebsr_rank_0 = rocsparse_ccsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_ccsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_ccsr2gebsr_rank_1 = rocsparse_ccsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_zcsr2gebsr_rank_0(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: bsr_descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_zcsr2gebsr_rank_0 = rocsparse_zcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_zcsr2gebsr_rank_1(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,p_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: bsr_descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: p_buffer ! rocsparse_zcsr2gebsr_rank_1 = rocsparse_zcsr2gebsr_(handle,dir,m,n,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,p_buffer) end function function rocsparse_scsr2csr_compress_rank_0(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target :: nnz_per_row real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C real(c_float) :: tol ! rocsparse_scsr2csr_compress_rank_0 = rocsparse_scsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_scsr2csr_compress_rank_1(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: nnz_per_row real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C real(c_float) :: tol ! rocsparse_scsr2csr_compress_rank_1 = rocsparse_scsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_dcsr2csr_compress_rank_0(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target :: nnz_per_row real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C real(c_double) :: tol ! rocsparse_dcsr2csr_compress_rank_0 = rocsparse_dcsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_dcsr2csr_compress_rank_1(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: nnz_per_row real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C real(c_double) :: tol ! rocsparse_dcsr2csr_compress_rank_1 = rocsparse_dcsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_ccsr2csr_compress_rank_0(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A complex(c_float_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target :: nnz_per_row complex(c_float_complex),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C complex(c_float_complex) :: tol ! rocsparse_ccsr2csr_compress_rank_0 = rocsparse_ccsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_ccsr2csr_compress_rank_1(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A complex(c_float_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: nnz_per_row complex(c_float_complex),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C complex(c_float_complex) :: tol ! rocsparse_ccsr2csr_compress_rank_1 = rocsparse_ccsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_zcsr2csr_compress_rank_0(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2csr_compress_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A complex(c_double_complex),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target :: nnz_per_row complex(c_double_complex),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C complex(c_double_complex) :: tol ! rocsparse_zcsr2csr_compress_rank_0 = rocsparse_zcsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_zcsr2csr_compress_rank_1(handle,m,n,descr_A,csr_val_A,csr_row_ptr_A,csr_col_ind_A,nnz_A,nnz_per_row,csr_val_C,csr_row_ptr_C,csr_col_ind_C,tol) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2csr_compress_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: descr_A complex(c_double_complex),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A integer(c_int) :: nnz_A integer(c_int),target,dimension(:) :: nnz_per_row complex(c_double_complex),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C complex(c_double_complex) :: tol ! rocsparse_zcsr2csr_compress_rank_1 = rocsparse_zcsr2csr_compress_(handle,m,n,descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),nnz_A,c_loc(nnz_per_row),c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),tol) end function function rocsparse_sprune_csr2csr_buffer_size_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: threshold type(c_ptr) :: csr_descr_C real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C integer(c_size_t) :: buffer_size ! rocsparse_sprune_csr2csr_buffer_size_rank_0 = rocsparse_sprune_csr2csr_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),buffer_size) end function function rocsparse_sprune_csr2csr_buffer_size_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: threshold type(c_ptr) :: csr_descr_C real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C integer(c_size_t) :: buffer_size ! rocsparse_sprune_csr2csr_buffer_size_rank_1 = rocsparse_sprune_csr2csr_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),buffer_size) end function function rocsparse_dprune_csr2csr_buffer_size_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: threshold type(c_ptr) :: csr_descr_C real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C integer(c_size_t) :: buffer_size ! rocsparse_dprune_csr2csr_buffer_size_rank_0 = rocsparse_dprune_csr2csr_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),buffer_size) end function function rocsparse_dprune_csr2csr_buffer_size_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: threshold type(c_ptr) :: csr_descr_C real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C integer(c_size_t) :: buffer_size ! rocsparse_dprune_csr2csr_buffer_size_rank_1 = rocsparse_dprune_csr2csr_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),buffer_size) end function function rocsparse_sprune_csr2csr_nnz_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: threshold type(c_ptr) :: csr_descr_C integer(c_int),target :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_nnz_rank_0 = rocsparse_sprune_csr2csr_nnz_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_sprune_csr2csr_nnz_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: threshold type(c_ptr) :: csr_descr_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_nnz_rank_1 = rocsparse_sprune_csr2csr_nnz_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_dprune_csr2csr_nnz_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: threshold type(c_ptr) :: csr_descr_C integer(c_int),target :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_nnz_rank_0 = rocsparse_dprune_csr2csr_nnz_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_dprune_csr2csr_nnz_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: threshold type(c_ptr) :: csr_descr_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_nnz_rank_1 = rocsparse_dprune_csr2csr_nnz_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,temp_buffer) end function function rocsparse_sprune_csr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: threshold type(c_ptr) :: csr_descr_C real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_rank_0 = rocsparse_sprune_csr2csr_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),temp_buffer) end function function rocsparse_sprune_csr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: threshold type(c_ptr) :: csr_descr_C real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_rank_1 = rocsparse_sprune_csr2csr_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),temp_buffer) end function function rocsparse_dprune_csr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: threshold type(c_ptr) :: csr_descr_C real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_rank_0 = rocsparse_dprune_csr2csr_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),temp_buffer) end function function rocsparse_dprune_csr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: threshold type(c_ptr) :: csr_descr_C real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_rank_1 = rocsparse_dprune_csr2csr_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),threshold,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),temp_buffer) end function function rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_0(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,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: percentage type(c_ptr) :: csr_descr_C real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_0 = rocsparse_sprune_csr2csr_by_percentage_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,buffer_size) end function function rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_1(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,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: percentage type(c_ptr) :: csr_descr_C real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_sprune_csr2csr_by_percentage_buffer_size_rank_1 = rocsparse_sprune_csr2csr_by_percentage_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,buffer_size) end function function rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_0(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,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: percentage type(c_ptr) :: csr_descr_C real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_0 = rocsparse_dprune_csr2csr_by_percentage_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,buffer_size) end function function rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_1(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,myInfo,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: percentage type(c_ptr) :: csr_descr_C real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: myInfo integer(c_size_t) :: buffer_size ! rocsparse_dprune_csr2csr_by_percentage_buffer_size_rank_1 = rocsparse_dprune_csr2csr_by_percentage_buffer_size_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,buffer_size) end function function rocsparse_sprune_csr2csr_nnz_by_percentage_rank_0(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_nnz_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: percentage type(c_ptr) :: csr_descr_C integer(c_int),target :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_nnz_by_percentage_rank_0 = rocsparse_sprune_csr2csr_nnz_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_sprune_csr2csr_nnz_by_percentage_rank_1(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_nnz_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: percentage type(c_ptr) :: csr_descr_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_nnz_by_percentage_rank_1 = rocsparse_sprune_csr2csr_nnz_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_dprune_csr2csr_nnz_by_percentage_rank_0(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_nnz_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: percentage type(c_ptr) :: csr_descr_C integer(c_int),target :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_nnz_by_percentage_rank_0 = rocsparse_dprune_csr2csr_nnz_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_dprune_csr2csr_nnz_by_percentage_rank_1(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_nnz_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: percentage type(c_ptr) :: csr_descr_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int) :: nnz_total_dev_host_ptr type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_nnz_by_percentage_rank_1 = rocsparse_dprune_csr2csr_nnz_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_row_ptr_C),nnz_total_dev_host_ptr,myInfo,temp_buffer) end function function rocsparse_sprune_csr2csr_by_percentage_rank_0(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_float) :: percentage type(c_ptr) :: csr_descr_C real(c_float),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_by_percentage_rank_0 = rocsparse_sprune_csr2csr_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,temp_buffer) end function function rocsparse_sprune_csr2csr_by_percentage_rank_1(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_float),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_float) :: percentage type(c_ptr) :: csr_descr_C real(c_float),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_sprune_csr2csr_by_percentage_rank_1 = rocsparse_sprune_csr2csr_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,temp_buffer) end function function rocsparse_dprune_csr2csr_by_percentage_rank_0(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_by_percentage_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target :: csr_val_A integer(c_int),target :: csr_row_ptr_A integer(c_int),target :: csr_col_ind_A real(c_double) :: percentage type(c_ptr) :: csr_descr_C real(c_double),target :: csr_val_C integer(c_int),target :: csr_row_ptr_C integer(c_int),target :: csr_col_ind_C type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_by_percentage_rank_0 = rocsparse_dprune_csr2csr_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,temp_buffer) end function function rocsparse_dprune_csr2csr_by_percentage_rank_1(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,myInfo,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_by_percentage_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz_A type(c_ptr) :: csr_descr_A real(c_double),target,dimension(:) :: csr_val_A integer(c_int),target,dimension(:) :: csr_row_ptr_A integer(c_int),target,dimension(:) :: csr_col_ind_A real(c_double) :: percentage type(c_ptr) :: csr_descr_C real(c_double),target,dimension(:) :: csr_val_C integer(c_int),target,dimension(:) :: csr_row_ptr_C integer(c_int),target,dimension(:) :: csr_col_ind_C type(c_ptr) :: myInfo type(c_ptr) :: temp_buffer ! rocsparse_dprune_csr2csr_by_percentage_rank_1 = rocsparse_dprune_csr2csr_by_percentage_(handle,m,n,nnz_A,csr_descr_A,c_loc(csr_val_A),c_loc(csr_row_ptr_A),c_loc(csr_col_ind_A),percentage,csr_descr_C,c_loc(csr_val_C),c_loc(csr_row_ptr_C),c_loc(csr_col_ind_C),myInfo,temp_buffer) end function function rocsparse_coo2csr_rank_0(handle,coo_row_ind,nnz,m,csr_row_ptr,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo2csr_rank_0 type(c_ptr) :: handle integer(c_int),target :: coo_row_ind integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target :: csr_row_ptr integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_coo2csr_rank_0 = rocsparse_coo2csr_(handle,c_loc(coo_row_ind),nnz,m,c_loc(csr_row_ptr),idx_base) end function function rocsparse_coo2csr_rank_1(handle,coo_row_ind,nnz,m,csr_row_ptr,idx_base) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coo2csr_rank_1 type(c_ptr) :: handle integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int) :: nnz integer(c_int) :: m integer(c_int),target,dimension(:) :: csr_row_ptr integer(kind(rocsparse_index_base_zero)) :: idx_base ! rocsparse_coo2csr_rank_1 = rocsparse_coo2csr_(handle,c_loc(coo_row_ind),nnz,m,c_loc(csr_row_ptr),idx_base) end function function rocsparse_ell2csr_nnz_rank_0(handle,m,n,ell_descr,ell_width,ell_col_ind,csr_descr,csr_row_ptr,csr_nnz) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ell2csr_nnz_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width integer(c_int),target :: ell_col_ind type(c_ptr) :: csr_descr integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_nnz ! rocsparse_ell2csr_nnz_rank_0 = rocsparse_ell2csr_nnz_(handle,m,n,ell_descr,ell_width,c_loc(ell_col_ind),csr_descr,c_loc(csr_row_ptr),c_loc(csr_nnz)) end function function rocsparse_ell2csr_nnz_rank_1(handle,m,n,ell_descr,ell_width,ell_col_ind,csr_descr,csr_row_ptr,csr_nnz) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ell2csr_nnz_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width integer(c_int),target,dimension(:) :: ell_col_ind type(c_ptr) :: csr_descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_nnz ! rocsparse_ell2csr_nnz_rank_1 = rocsparse_ell2csr_nnz_(handle,m,n,ell_descr,ell_width,c_loc(ell_col_ind),csr_descr,c_loc(csr_row_ptr),c_loc(csr_nnz)) end function function rocsparse_sell2csr_rank_0(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sell2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_float),target :: ell_val integer(c_int),target :: ell_col_ind type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_sell2csr_rank_0 = rocsparse_sell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sell2csr_rank_1(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sell2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_float),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_sell2csr_rank_1 = rocsparse_sell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_dell2csr_rank_0(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dell2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_double),target :: ell_val integer(c_int),target :: ell_col_ind type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_dell2csr_rank_0 = rocsparse_dell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_dell2csr_rank_1(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dell2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width real(c_double),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_dell2csr_rank_1 = rocsparse_dell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cell2csr_rank_0(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cell2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_float_complex),target :: ell_val integer(c_int),target :: ell_col_ind type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_cell2csr_rank_0 = rocsparse_cell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cell2csr_rank_1(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cell2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_float_complex),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_cell2csr_rank_1 = rocsparse_cell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zell2csr_rank_0(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zell2csr_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_double_complex),target :: ell_val integer(c_int),target :: ell_col_ind type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_zell2csr_rank_0 = rocsparse_zell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zell2csr_rank_1(handle,m,n,ell_descr,ell_width,ell_val,ell_col_ind,csr_descr,csr_val,csr_row_ptr,csr_col_ind) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zell2csr_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n type(c_ptr) :: ell_descr integer(c_int) :: ell_width complex(c_double_complex),target,dimension(:) :: ell_val integer(c_int),target,dimension(:) :: ell_col_ind type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_zell2csr_rank_1 = rocsparse_zell2csr_(handle,m,n,ell_descr,ell_width,c_loc(ell_val),c_loc(ell_col_ind),csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_hyb2csr_buffer_size_rank_0(handle,descr,hyb,csr_row_ptr,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_hyb2csr_buffer_size_rank_0 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb integer(c_int),target :: csr_row_ptr integer(c_size_t) :: buffer_size ! rocsparse_hyb2csr_buffer_size_rank_0 = rocsparse_hyb2csr_buffer_size_(handle,descr,hyb,c_loc(csr_row_ptr),buffer_size) end function function rocsparse_hyb2csr_buffer_size_rank_1(handle,descr,hyb,csr_row_ptr,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_hyb2csr_buffer_size_rank_1 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_size_t) :: buffer_size ! rocsparse_hyb2csr_buffer_size_rank_1 = rocsparse_hyb2csr_buffer_size_(handle,descr,hyb,c_loc(csr_row_ptr),buffer_size) end function function rocsparse_shyb2csr_rank_0(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_shyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_shyb2csr_rank_0 = rocsparse_shyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_shyb2csr_rank_1(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_shyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_shyb2csr_rank_1 = rocsparse_shyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_dhyb2csr_rank_0(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dhyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_dhyb2csr_rank_0 = rocsparse_dhyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_dhyb2csr_rank_1(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dhyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_dhyb2csr_rank_1 = rocsparse_dhyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_chyb2csr_rank_0(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_chyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_chyb2csr_rank_0 = rocsparse_chyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_chyb2csr_rank_1(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_chyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_chyb2csr_rank_1 = rocsparse_chyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_zhyb2csr_rank_0(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zhyb2csr_rank_0 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_zhyb2csr_rank_0 = rocsparse_zhyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_zhyb2csr_rank_1(handle,descr,hyb,csr_val,csr_row_ptr,csr_col_ind,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zhyb2csr_rank_1 type(c_ptr) :: handle type(c_ptr) :: descr type(c_ptr) :: hyb complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind type(c_ptr) :: temp_buffer ! rocsparse_zhyb2csr_rank_1 = rocsparse_zhyb2csr_(handle,descr,hyb,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),temp_buffer) end function function rocsparse_create_identity_permutation_rank_0(handle,n,p) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_identity_permutation_rank_0 type(c_ptr) :: handle integer(c_int) :: n integer(c_int),target :: p ! rocsparse_create_identity_permutation_rank_0 = rocsparse_create_identity_permutation_(handle,n,c_loc(p)) end function function rocsparse_create_identity_permutation_rank_1(handle,n,p) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_create_identity_permutation_rank_1 type(c_ptr) :: handle integer(c_int) :: n integer(c_int),target,dimension(:) :: p ! rocsparse_create_identity_permutation_rank_1 = rocsparse_create_identity_permutation_(handle,n,c_loc(p)) end function function rocsparse_csrsort_buffer_size_rank_0(handle,m,n,nnz,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsort_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_csrsort_buffer_size_rank_0 = rocsparse_csrsort_buffer_size_(handle,m,n,nnz,c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_csrsort_buffer_size_rank_1(handle,m,n,nnz,csr_row_ptr,csr_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsort_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_size_t) :: buffer_size ! rocsparse_csrsort_buffer_size_rank_1 = rocsparse_csrsort_buffer_size_(handle,m,n,nnz,c_loc(csr_row_ptr),c_loc(csr_col_ind),buffer_size) end function function rocsparse_csrsort_rank_0(handle,m,n,nnz,descr,csr_row_ptr,csr_col_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsort_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind integer(c_int),target :: perm type(c_ptr) :: temp_buffer ! rocsparse_csrsort_rank_0 = rocsparse_csrsort_(handle,m,n,nnz,descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(perm),temp_buffer) end function function rocsparse_csrsort_rank_1(handle,m,n,nnz,descr,csr_row_ptr,csr_col_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_csrsort_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind integer(c_int),target,dimension(:) :: perm type(c_ptr) :: temp_buffer ! rocsparse_csrsort_rank_1 = rocsparse_csrsort_(handle,m,n,nnz,descr,c_loc(csr_row_ptr),c_loc(csr_col_ind),c_loc(perm),temp_buffer) end function function rocsparse_cscsort_buffer_size_rank_0(handle,m,n,nnz,csc_col_ptr,csc_row_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cscsort_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind integer(c_size_t) :: buffer_size ! rocsparse_cscsort_buffer_size_rank_0 = rocsparse_cscsort_buffer_size_(handle,m,n,nnz,c_loc(csc_col_ptr),c_loc(csc_row_ind),buffer_size) end function function rocsparse_cscsort_buffer_size_rank_1(handle,m,n,nnz,csc_col_ptr,csc_row_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cscsort_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind integer(c_size_t) :: buffer_size ! rocsparse_cscsort_buffer_size_rank_1 = rocsparse_cscsort_buffer_size_(handle,m,n,nnz,c_loc(csc_col_ptr),c_loc(csc_row_ind),buffer_size) end function function rocsparse_cscsort_rank_0(handle,m,n,nnz,descr,csc_col_ptr,csc_row_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cscsort_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr integer(c_int),target :: csc_col_ptr integer(c_int),target :: csc_row_ind integer(c_int),target :: perm type(c_ptr) :: temp_buffer ! rocsparse_cscsort_rank_0 = rocsparse_cscsort_(handle,m,n,nnz,descr,c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(perm),temp_buffer) end function function rocsparse_cscsort_rank_1(handle,m,n,nnz,descr,csc_col_ptr,csc_row_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cscsort_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz type(c_ptr) :: descr integer(c_int),target,dimension(:) :: csc_col_ptr integer(c_int),target,dimension(:) :: csc_row_ind integer(c_int),target,dimension(:) :: perm type(c_ptr) :: temp_buffer ! rocsparse_cscsort_rank_1 = rocsparse_cscsort_(handle,m,n,nnz,descr,c_loc(csc_col_ptr),c_loc(csc_row_ind),c_loc(perm),temp_buffer) end function function rocsparse_coosort_buffer_size_rank_0(handle,m,n,nnz,coo_row_ind,coo_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coosort_buffer_size_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind integer(c_size_t) :: buffer_size ! rocsparse_coosort_buffer_size_rank_0 = rocsparse_coosort_buffer_size_(handle,m,n,nnz,c_loc(coo_row_ind),c_loc(coo_col_ind),buffer_size) end function function rocsparse_coosort_buffer_size_rank_1(handle,m,n,nnz,coo_row_ind,coo_col_ind,buffer_size) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coosort_buffer_size_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind integer(c_size_t) :: buffer_size ! rocsparse_coosort_buffer_size_rank_1 = rocsparse_coosort_buffer_size_(handle,m,n,nnz,c_loc(coo_row_ind),c_loc(coo_col_ind),buffer_size) end function function rocsparse_coosort_by_row_rank_0(handle,m,n,nnz,coo_row_ind,coo_col_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coosort_by_row_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind integer(c_int),target :: perm type(c_ptr) :: temp_buffer ! rocsparse_coosort_by_row_rank_0 = rocsparse_coosort_by_row_(handle,m,n,nnz,c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(perm),temp_buffer) end function function rocsparse_coosort_by_row_rank_1(handle,m,n,nnz,coo_row_ind,coo_col_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coosort_by_row_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind integer(c_int),target,dimension(:) :: perm type(c_ptr) :: temp_buffer ! rocsparse_coosort_by_row_rank_1 = rocsparse_coosort_by_row_(handle,m,n,nnz,c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(perm),temp_buffer) end function function rocsparse_coosort_by_column_rank_0(handle,m,n,nnz,coo_row_ind,coo_col_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coosort_by_column_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target :: coo_row_ind integer(c_int),target :: coo_col_ind integer(c_int),target :: perm type(c_ptr) :: temp_buffer ! rocsparse_coosort_by_column_rank_0 = rocsparse_coosort_by_column_(handle,m,n,nnz,c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(perm),temp_buffer) end function function rocsparse_coosort_by_column_rank_1(handle,m,n,nnz,coo_row_ind,coo_col_ind,perm,temp_buffer) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_coosort_by_column_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: n integer(c_int) :: nnz integer(c_int),target,dimension(:) :: coo_row_ind integer(c_int),target,dimension(:) :: coo_col_ind integer(c_int),target,dimension(:) :: perm type(c_ptr) :: temp_buffer ! rocsparse_coosort_by_column_rank_1 = rocsparse_coosort_by_column_(handle,m,n,nnz,c_loc(coo_row_ind),c_loc(coo_col_ind),c_loc(perm),temp_buffer) end function function rocsparse_sbsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_sbsr2csr_rank_0 = rocsparse_sbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sbsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_sbsr2csr_rank_1 = rocsparse_sbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_dbsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_dbsr2csr_rank_0 = rocsparse_dbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_dbsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_dbsr2csr_rank_1 = rocsparse_dbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cbsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_cbsr2csr_rank_0 = rocsparse_cbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cbsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_cbsr2csr_rank_1 = rocsparse_cbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zbsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_zbsr2csr_rank_0 = rocsparse_zbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zbsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zbsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: block_dim type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_zbsr2csr_rank_1 = rocsparse_zbsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sgebsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_float),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_sgebsr2csr_rank_0 = rocsparse_sgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_sgebsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_float),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_sgebsr2csr_rank_1 = rocsparse_sgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_dgebsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_double),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_dgebsr2csr_rank_0 = rocsparse_dgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_dgebsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr real(c_double),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_dgebsr2csr_rank_1 = rocsparse_dgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cgebsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_float_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_cgebsr2csr_rank_0 = rocsparse_cgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_cgebsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_float_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_cgebsr2csr_rank_1 = rocsparse_cgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zgebsr2csr_rank_0(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2csr_rank_0 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_double_complex),target :: bsr_val integer(c_int),target :: bsr_row_ptr integer(c_int),target :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind ! rocsparse_zgebsr2csr_rank_0 = rocsparse_zgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_zgebsr2csr_rank_1(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) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2csr_rank_1 type(c_ptr) :: handle integer(kind(rocsparse_direction_row)) :: dir integer(c_int) :: mb integer(c_int) :: nb type(c_ptr) :: bsr_descr complex(c_double_complex),target,dimension(:) :: bsr_val integer(c_int),target,dimension(:) :: bsr_row_ptr integer(c_int),target,dimension(:) :: bsr_col_ind integer(c_int) :: row_block_dim integer(c_int) :: col_block_dim type(c_ptr) :: csr_descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind ! rocsparse_zgebsr2csr_rank_1 = rocsparse_zgebsr2csr_(handle,dir,mb,nb,bsr_descr,c_loc(bsr_val),c_loc(bsr_row_ptr),c_loc(bsr_col_ind),row_block_dim,col_block_dim,csr_descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind)) end function function rocsparse_scsrcolor_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_scsrcolor_rank_0 = rocsparse_scsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_scsrcolor_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_scsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_float),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_scsrcolor_rank_1 = rocsparse_scsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_dcsrcolor_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_dcsrcolor_rank_0 = rocsparse_dcsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_dcsrcolor_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_dcsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr real(c_double),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_dcsrcolor_rank_1 = rocsparse_dcsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_ccsrcolor_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_float) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_ccsrcolor_rank_0 = rocsparse_ccsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_ccsrcolor_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_ccsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_float_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_float) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_ccsrcolor_rank_1 = rocsparse_ccsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_zcsrcolor_rank_0(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrcolor_rank_0 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target :: csr_val integer(c_int),target :: csr_row_ptr integer(c_int),target :: csr_col_ind real(c_double) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_zcsrcolor_rank_0 = rocsparse_zcsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function function rocsparse_zcsrcolor_rank_1(handle,m,nnz,descr,csr_val,csr_row_ptr,csr_col_ind,fraction_to_color,ncolors,coloring,reordering,myInfo) use iso_c_binding use hipfort_rocsparse_enums implicit none integer(kind(rocsparse_status_success)) :: rocsparse_zcsrcolor_rank_1 type(c_ptr) :: handle integer(c_int) :: m integer(c_int) :: nnz type(c_ptr) :: descr complex(c_double_complex),target,dimension(:) :: csr_val integer(c_int),target,dimension(:) :: csr_row_ptr integer(c_int),target,dimension(:) :: csr_col_ind real(c_double) :: fraction_to_color integer(c_int) :: ncolors integer(c_int) :: coloring integer(c_int) :: reordering type(c_ptr) :: myInfo ! rocsparse_zcsrcolor_rank_1 = rocsparse_zcsrcolor_(handle,m,nnz,descr,c_loc(csr_val),c_loc(csr_row_ptr),c_loc(csr_col_ind),fraction_to_color,ncolors,coloring,reordering,myInfo) end function #endif end module hipfort_rocsparse hipfort-7.2.4/lib/hipfort/hipfort_hipfft.F900000664000175000017500000020017315207260635021110 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipfft use hipfort_hipfft_enums use hipfort_hipfft_params implicit none !> @brief Create a new one-dimensional FFT plan. !> !> @details Allocate and initialize a new one-dimensional FFT plan. !> !> @param[out] plan Pointer to the FFT plan handle. !> @param[in] nx FFT length. !> @param[in] type FFT type. !> @param[in] batch Number of batched transforms to compute. interface hipfftPlan1d #ifdef USE_CUDA_NAMES function hipfftPlan1d_(plan,nx,myType,batch) bind(c, name="cufftPlan1d") #else function hipfftPlan1d_(plan,nx,myType,batch) bind(c, name="hipfftPlan1d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftPlan1d_ type(c_ptr) :: plan integer(c_int),value :: nx integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch end function end interface !> @brief Create a new two-dimensional FFT plan. !> !> @details Allocate and initialize a new two-dimensional FFT plan. !> Two-dimensional data should be stored in C ordering (row-major !> format), so that indexes in y-direction (j index) vary the !> fastest. !> !> @param[out] plan Pointer to the FFT plan handle. !> @param[in] nx Number of elements in the x-direction (slow index). !> @param[in] ny Number of elements in the y-direction (fast index). !> @param[in] type FFT type. interface hipfftPlan2d #ifdef USE_CUDA_NAMES function hipfftPlan2d_(plan,nx,ny,myType) bind(c, name="cufftPlan2d") #else function hipfftPlan2d_(plan,nx,ny,myType) bind(c, name="hipfftPlan2d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftPlan2d_ type(c_ptr) :: plan integer(c_int),value :: nx integer(c_int),value :: ny integer(kind(HIPFFT_R2C)),value :: myType end function end interface !> @brief Create a new three-dimensional FFT plan. !> !> @details Allocate and initialize a new three-dimensional FFT plan. !> Three-dimensional data should be stored in C ordering (row-major !> format), so that indexes in z-direction (k index) vary the !> fastest. !> !> @param[out] plan Pointer to the FFT plan handle. !> @param[in] nx Number of elements in the x-direction (slowest index). !> @param[in] ny Number of elements in the y-direction. !> @param[in] nz Number of elements in the z-direction (fastest index). !> @param[in] type FFT type. interface hipfftPlan3d #ifdef USE_CUDA_NAMES function hipfftPlan3d_(plan,nx,ny,nz,myType) bind(c, name="cufftPlan3d") #else function hipfftPlan3d_(plan,nx,ny,nz,myType) bind(c, name="hipfftPlan3d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftPlan3d_ type(c_ptr) :: plan integer(c_int),value :: nx integer(c_int),value :: ny integer(c_int),value :: nz integer(kind(HIPFFT_R2C)),value :: myType end function end interface !> @brief Create a new batched rank-dimensional FFT plan. !> !> @details Allocate and initialize a new batched rank-dimensional !> FFT. The batch parameter tells hipFFT how many transforms to !> perform. Used in complicated usage case like flexible input and !> output layout. !> !> @param[out] plan Pointer to the FFT plan handle. !> @param[in] rank Dimension of FFT transform (1, 2, or 3). !> @param[in] n Number of elements in the x/y/z directions. !> @param[in] inembed !> @param[in] istride !> @param[in] idist Distance between input batches. !> @param[in] onembed !> @param[in] ostride !> @param[in] odist Distance between output batches. !> @param[in] type FFT type. !> @param[in] batch Number of batched transforms to perform. interface hipfftPlanMany #ifdef USE_CUDA_NAMES function hipfftPlanMany_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch) bind(c, name="cufftPlanMany") #else function hipfftPlanMany_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch) bind(c, name="hipfftPlanMany") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftPlanMany_ type(c_ptr) :: plan integer(c_int),value :: rank type(c_ptr),value :: n type(c_ptr),value :: inembed integer(c_int),value :: istride integer(c_int),value :: idist type(c_ptr),value :: onembed integer(c_int),value :: ostride integer(c_int),value :: odist integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftPlanMany_rank_0,& hipfftPlanMany_rank_1 #endif end interface !> @brief Allocate a new plan. interface hipfftCreate #ifdef USE_CUDA_NAMES function hipfftCreate_(plan) bind(c, name="cufftCreate") #else function hipfftCreate_(plan) bind(c, name="hipfftCreate") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftCreate_ type(c_ptr) :: plan end function end interface !> @brief Initialize a new one-dimensional FFT plan. !> !> @details Assumes that the plan has been created already, and !> modifies the plan associated with the plan handle. !> !> @param[in] plan Handle of the FFT plan. !> @param[in] nx FFT length. !> @param[in] type FFT type. !> @param[in] batch Number of batched transforms to compute. interface hipfftMakePlan1d #ifdef USE_CUDA_NAMES function hipfftMakePlan1d_(plan,nx,myType,batch,workSize) bind(c, name="cufftMakePlan1d") #else function hipfftMakePlan1d_(plan,nx,myType,batch,workSize) bind(c, name="hipfftMakePlan1d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan1d_ type(c_ptr),value :: plan integer(c_int),value :: nx integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftMakePlan1d_rank_0,& hipfftMakePlan1d_rank_1 #endif end interface !> @brief Initialize a new two-dimensional FFT plan. !> !> @details Assumes that the plan has been created already, and !> modifies the plan associated with the plan handle. !> Two-dimensional data should be stored in C ordering (row-major !> format), so that indexes in y-direction (j index) vary the !> fastest. !> !> @param[in] plan Handle of the FFT plan. !> @param[in] nx Number of elements in the x-direction (slow index). !> @param[in] ny Number of elements in the y-direction (fast index). !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftMakePlan2d #ifdef USE_CUDA_NAMES function hipfftMakePlan2d_(plan,nx,ny,myType,workSize) bind(c, name="cufftMakePlan2d") #else function hipfftMakePlan2d_(plan,nx,ny,myType,workSize) bind(c, name="hipfftMakePlan2d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan2d_ type(c_ptr),value :: plan integer(c_int),value :: nx integer(c_int),value :: ny integer(kind(HIPFFT_R2C)),value :: myType type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftMakePlan2d_rank_0,& hipfftMakePlan2d_rank_1 #endif end interface !> @brief Initialize a new two-dimensional FFT plan. !> !> @details Assumes that the plan has been created already, and !> modifies the plan associated with the plan handle. !> Three-dimensional data should be stored in C ordering (row-major !> format), so that indexes in z-direction (k index) vary the !> fastest. !> !> @param[in] plan Handle of the FFT plan. !> @param[in] nx Number of elements in the x-direction (slowest index). !> @param[in] ny Number of elements in the y-direction. !> @param[in] nz Number of elements in the z-direction (fastest index). !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftMakePlan3d #ifdef USE_CUDA_NAMES function hipfftMakePlan3d_(plan,nx,ny,nz,myType,workSize) bind(c, name="cufftMakePlan3d") #else function hipfftMakePlan3d_(plan,nx,ny,nz,myType,workSize) bind(c, name="hipfftMakePlan3d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan3d_ type(c_ptr),value :: plan integer(c_int),value :: nx integer(c_int),value :: ny integer(c_int),value :: nz integer(kind(HIPFFT_R2C)),value :: myType type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftMakePlan3d_rank_0,& hipfftMakePlan3d_rank_1 #endif end interface !> @brief Initialize a new batched rank-dimensional FFT plan. !> !> @details Assumes that the plan has been created already, and !> modifies the plan associated with the plan handle. The !> batch parameter tells hipFFT how many transforms to perform. Used !> in complicated usage case like flexible input and output layout. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] rank Dimension of FFT transform (1, 2, or 3). !> @param[in] n Number of elements in the x/y/z directions. !> @param[in] inembed !> @param[in] istride !> @param[in] idist Distance between input batches. !> @param[in] onembed !> @param[in] ostride !> @param[in] odist Distance between output batches. !> @param[in] type FFT type. !> @param[in] batch Number of batched transforms to perform. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftMakePlanMany #ifdef USE_CUDA_NAMES function hipfftMakePlanMany_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="cufftMakePlanMany") #else function hipfftMakePlanMany_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="hipfftMakePlanMany") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlanMany_ type(c_ptr),value :: plan integer(c_int),value :: rank type(c_ptr),value :: n type(c_ptr),value :: inembed integer(c_int),value :: istride integer(c_int),value :: idist type(c_ptr),value :: onembed integer(c_int),value :: ostride integer(c_int),value :: odist integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftMakePlanMany_rank_0,& hipfftMakePlanMany_rank_1 #endif end interface interface hipfftMakePlanMany64 #ifdef USE_CUDA_NAMES function hipfftMakePlanMany64_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="cufftMakePlanMany64") #else function hipfftMakePlanMany64_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="hipfftMakePlanMany64") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlanMany64_ type(c_ptr),value :: plan integer(c_int),value :: rank type(c_ptr),value :: n type(c_ptr),value :: inembed integer(c_long_long),value :: istride integer(c_long_long),value :: idist type(c_ptr),value :: onembed integer(c_long_long),value :: ostride integer(c_long_long),value :: odist integer(kind(HIPFFT_R2C)),value :: myType integer(c_long_long),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftMakePlanMany64_rank_0,& hipfftMakePlanMany64_rank_1 #endif end interface !> @brief Return an estimate of the work area size required for a 1D plan. !> !> @param[in] nx Number of elements in the x-direction. !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftEstimate1d #ifdef USE_CUDA_NAMES function hipfftEstimate1d_(nx,myType,batch,workSize) bind(c, name="cufftEstimate1d") #else function hipfftEstimate1d_(nx,myType,batch,workSize) bind(c, name="hipfftEstimate1d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate1d_ integer(c_int),value :: nx integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftEstimate1d_rank_0,& hipfftEstimate1d_rank_1 #endif end interface !> @brief Return an estimate of the work area size required for a 2D plan. !> !> @param[in] nx Number of elements in the x-direction. !> @param[in] ny Number of elements in the y-direction. !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftEstimate2d #ifdef USE_CUDA_NAMES function hipfftEstimate2d_(nx,ny,myType,workSize) bind(c, name="cufftEstimate2d") #else function hipfftEstimate2d_(nx,ny,myType,workSize) bind(c, name="hipfftEstimate2d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate2d_ integer(c_int),value :: nx integer(c_int),value :: ny integer(kind(HIPFFT_R2C)),value :: myType type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftEstimate2d_rank_0,& hipfftEstimate2d_rank_1 #endif end interface !> @brief Return an estimate of the work area size required for a 3D plan. !> !> @param[in] nx Number of elements in the x-direction. !> @param[in] ny Number of elements in the y-direction. !> @param[in] nz Number of elements in the z-direction. !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftEstimate3d #ifdef USE_CUDA_NAMES function hipfftEstimate3d_(nx,ny,nz,myType,workSize) bind(c, name="cufftEstimate3d") #else function hipfftEstimate3d_(nx,ny,nz,myType,workSize) bind(c, name="hipfftEstimate3d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate3d_ integer(c_int),value :: nx integer(c_int),value :: ny integer(c_int),value :: nz integer(kind(HIPFFT_R2C)),value :: myType type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftEstimate3d_rank_0,& hipfftEstimate3d_rank_1 #endif end interface !> @brief Return an estimate of the work area size required for a rank-dimensional plan. !> !> @param[in] rank Dimension of FFT transform (1, 2, or 3). !> @param[in] n Number of elements in the x/y/z directions. !> @param[in] inembed !> @param[in] istride !> @param[in] idist Distance between input batches. !> @param[in] onembed !> @param[in] ostride !> @param[in] odist Distance between output batches. !> @param[in] type FFT type. !> @param[in] batch Number of batched transforms to perform. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftEstimateMany #ifdef USE_CUDA_NAMES function hipfftEstimateMany_(rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="cufftEstimateMany") #else function hipfftEstimateMany_(rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="hipfftEstimateMany") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimateMany_ integer(c_int),value :: rank type(c_ptr),value :: n type(c_ptr),value :: inembed integer(c_int),value :: istride integer(c_int),value :: idist type(c_ptr),value :: onembed integer(c_int),value :: ostride integer(c_int),value :: odist integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftEstimateMany_rank_0,& hipfftEstimateMany_rank_1 #endif end interface !> @brief Return size of the work area size required for a 1D plan. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] nx Number of elements in the x-direction. !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftGetSize1d #ifdef USE_CUDA_NAMES function hipfftGetSize1d_(plan,nx,myType,batch,workSize) bind(c, name="cufftGetSize1d") #else function hipfftGetSize1d_(plan,nx,myType,batch,workSize) bind(c, name="hipfftGetSize1d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize1d_ type(c_ptr),value :: plan integer(c_int),value :: nx integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftGetSize1d_rank_0,& hipfftGetSize1d_rank_1 #endif end interface !> @brief Return size of the work area size required for a 2D plan. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] nx Number of elements in the x-direction. !> @param[in] ny Number of elements in the y-direction. !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftGetSize2d #ifdef USE_CUDA_NAMES function hipfftGetSize2d_(plan,nx,ny,myType,workSize) bind(c, name="cufftGetSize2d") #else function hipfftGetSize2d_(plan,nx,ny,myType,workSize) bind(c, name="hipfftGetSize2d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize2d_ type(c_ptr),value :: plan integer(c_int),value :: nx integer(c_int),value :: ny integer(kind(HIPFFT_R2C)),value :: myType type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftGetSize2d_rank_0,& hipfftGetSize2d_rank_1 #endif end interface !> @brief Return size of the work area size required for a 3D plan. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] nx Number of elements in the x-direction. !> @param[in] ny Number of elements in the y-direction. !> @param[in] nz Number of elements in the z-direction. !> @param[in] type FFT type. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftGetSize3d #ifdef USE_CUDA_NAMES function hipfftGetSize3d_(plan,nx,ny,nz,myType,workSize) bind(c, name="cufftGetSize3d") #else function hipfftGetSize3d_(plan,nx,ny,nz,myType,workSize) bind(c, name="hipfftGetSize3d") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize3d_ type(c_ptr),value :: plan integer(c_int),value :: nx integer(c_int),value :: ny integer(c_int),value :: nz integer(kind(HIPFFT_R2C)),value :: myType type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftGetSize3d_rank_0,& hipfftGetSize3d_rank_1 #endif end interface !> @brief Return size of the work area size required for a rank-dimensional plan. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] rank Dimension of FFT transform (1, 2, or 3). !> @param[in] n Number of elements in the x/y/z directions. !> @param[in] inembed !> @param[in] istride !> @param[in] idist Distance between input batches. !> @param[in] onembed !> @param[in] ostride !> @param[in] odist Distance between output batches. !> @param[in] type FFT type. !> @param[in] batch Number of batched transforms to perform. !> @param[out] workSize Pointer to work area size (returned value). interface hipfftGetSizeMany #ifdef USE_CUDA_NAMES function hipfftGetSizeMany_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="cufftGetSizeMany") #else function hipfftGetSizeMany_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="hipfftGetSizeMany") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSizeMany_ type(c_ptr),value :: plan integer(c_int),value :: rank type(c_ptr),value :: n type(c_ptr),value :: inembed integer(c_int),value :: istride integer(c_int),value :: idist type(c_ptr),value :: onembed integer(c_int),value :: ostride integer(c_int),value :: odist integer(kind(HIPFFT_R2C)),value :: myType integer(c_int),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftGetSizeMany_rank_0,& hipfftGetSizeMany_rank_1 #endif end interface interface hipfftGetSizeMany64 #ifdef USE_CUDA_NAMES function hipfftGetSizeMany64_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="cufftGetSizeMany64") #else function hipfftGetSizeMany64_(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) bind(c, name="hipfftGetSizeMany64") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSizeMany64_ type(c_ptr),value :: plan integer(c_int),value :: rank type(c_ptr),value :: n type(c_ptr),value :: inembed integer(c_long_long),value :: istride integer(c_long_long),value :: idist type(c_ptr),value :: onembed integer(c_long_long),value :: ostride integer(c_long_long),value :: odist integer(kind(HIPFFT_R2C)),value :: myType integer(c_long_long),value :: batch type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftGetSizeMany64_rank_0,& hipfftGetSizeMany64_rank_1 #endif end interface !> @brief Return size of the work area size required for a rank-dimensional plan. !> !> @param[in] plan Pointer to the FFT plan. interface hipfftGetSize #ifdef USE_CUDA_NAMES function hipfftGetSize_(plan,workSize) bind(c, name="cufftGetSize") #else function hipfftGetSize_(plan,workSize) bind(c, name="hipfftGetSize") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize_ type(c_ptr),value :: plan type(c_ptr),value :: workSize end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftGetSize_rank_0,& hipfftGetSize_rank_1 #endif end interface !> @brief Set the plan's auto-allocation flag. The plan will allocate its own workarea. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] autoAllocate 0 to disable auto-allocation, non-zero to enable. interface hipfftSetAutoAllocation #ifdef USE_CUDA_NAMES function hipfftSetAutoAllocation_(plan,autoAllocate) bind(c, name="cufftSetAutoAllocation") #else function hipfftSetAutoAllocation_(plan,autoAllocate) bind(c, name="hipfftSetAutoAllocation") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftSetAutoAllocation_ type(c_ptr),value :: plan integer(c_int),value :: autoAllocate end function end interface !> @brief Set the plan's work area. !> !> @param[in] plan Pointer to the FFT plan. !> @param[in] workArea Pointer to the work area (on device). interface hipfftSetWorkArea #ifdef USE_CUDA_NAMES function hipfftSetWorkArea_(plan,workArea) bind(c, name="cufftSetWorkArea") #else function hipfftSetWorkArea_(plan,workArea) bind(c, name="hipfftSetWorkArea") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftSetWorkArea_ type(c_ptr),value :: plan type(c_ptr),value :: workArea end function end interface !> @brief Execute a (float) complex-to-complex FFT. !> !> @details If the input and output buffers are equal, an in-place !> transform is performed. !> !> @param plan The FFT plan. !> @param idata Input data (on device). !> @param odata Output data (on device). !> @param direction Either `HIPFFT_FORWARD` or `HIPFFT_BACKWARD`. interface hipfftExecC2C #ifdef USE_CUDA_NAMES function hipfftExecC2C_(plan,idata,odata,direction) bind(c, name="cufftExecC2C") #else function hipfftExecC2C_(plan,idata,odata,direction) bind(c, name="hipfftExecC2C") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2C_ type(c_ptr),value :: plan type(c_ptr),value :: idata type(c_ptr),value :: odata integer(c_int),value :: direction end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftExecC2C_rank_0,& hipfftExecC2C_rank_1,& hipfftExecC2C_rank_2,& hipfftExecC2C_rank_3 #endif end interface !> @brief Execute a (float) real-to-complex FFT. !> !> @details If the input and output buffers are equal, an in-place !> transform is performed. !> !> @param plan The FFT plan. !> @param idata Input data (on device). !> @param odata Output data (on device). interface hipfftExecR2C #ifdef USE_CUDA_NAMES function hipfftExecR2C_(plan,idata,odata) bind(c, name="cufftExecR2C") #else function hipfftExecR2C_(plan,idata,odata) bind(c, name="hipfftExecR2C") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecR2C_ type(c_ptr),value :: plan type(c_ptr),value :: idata type(c_ptr),value :: odata end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftExecR2C_rank_0,& hipfftExecR2C_rank_1,& hipfftExecR2C_rank_2,& hipfftExecR2C_rank_3 #endif end interface !> @brief Execute a (float) complex-to-real FFT. !> !> @details If the input and output buffers are equal, an in-place !> transform is performed. !> !> @param plan The FFT plan. !> @param idata Input data (on device). !> @param odata Output data (on device). interface hipfftExecC2R #ifdef USE_CUDA_NAMES function hipfftExecC2R_(plan,idata,odata) bind(c, name="cufftExecC2R") #else function hipfftExecC2R_(plan,idata,odata) bind(c, name="hipfftExecC2R") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2R_ type(c_ptr),value :: plan type(c_ptr),value :: idata type(c_ptr),value :: odata end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftExecC2R_rank_0,& hipfftExecC2R_rank_1,& hipfftExecC2R_rank_2,& hipfftExecC2R_rank_3 #endif end interface !> @brief Execute a (double) complex-to-complex FFT. !> !> @details If the input and output buffers are equal, an in-place !> transform is performed. !> !> @param plan The FFT plan. !> @param idata Input data (on device). !> @param odata Output data (on device). !> @param direction Either `HIPFFT_FORWARD` or `HIPFFT_BACKWARD`. interface hipfftExecZ2Z #ifdef USE_CUDA_NAMES function hipfftExecZ2Z_(plan,idata,odata,direction) bind(c, name="cufftExecZ2Z") #else function hipfftExecZ2Z_(plan,idata,odata,direction) bind(c, name="hipfftExecZ2Z") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2Z_ type(c_ptr),value :: plan type(c_ptr),value :: idata type(c_ptr),value :: odata integer(c_int),value :: direction end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftExecZ2Z_rank_0,& hipfftExecZ2Z_rank_1,& hipfftExecZ2Z_rank_2,& hipfftExecZ2Z_rank_3 #endif end interface !> @brief Execute a (double) real-to-complex FFT. !> !> @details If the input and output buffers are equal, an in-place !> transform is performed. !> !> @param plan The FFT plan. !> @param idata Input data (on device). !> @param odata Output data (on device). interface hipfftExecD2Z #ifdef USE_CUDA_NAMES function hipfftExecD2Z_(plan,idata,odata) bind(c, name="cufftExecD2Z") #else function hipfftExecD2Z_(plan,idata,odata) bind(c, name="hipfftExecD2Z") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecD2Z_ type(c_ptr),value :: plan type(c_ptr),value :: idata type(c_ptr),value :: odata end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftExecD2Z_rank_0,& hipfftExecD2Z_rank_1,& hipfftExecD2Z_rank_2,& hipfftExecD2Z_rank_3 #endif end interface !> @brief Execute a (double) complex-to-real FFT. !> !> @details If the input and output buffers are equal, an in-place !> transform is performed. !> !> @param plan The FFT plan. !> @param idata Input data (on device). !> @param odata Output data (on device). interface hipfftExecZ2D #ifdef USE_CUDA_NAMES function hipfftExecZ2D_(plan,idata,odata) bind(c, name="cufftExecZ2D") #else function hipfftExecZ2D_(plan,idata,odata) bind(c, name="hipfftExecZ2D") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2D_ type(c_ptr),value :: plan type(c_ptr),value :: idata type(c_ptr),value :: odata end function #ifdef USE_FPOINTER_INTERFACES module procedure & hipfftExecZ2D_rank_0,& hipfftExecZ2D_rank_1,& hipfftExecZ2D_rank_2,& hipfftExecZ2D_rank_3 #endif end interface !> @brief Set HIP stream to execute plan on. !> !> @details Associates a HIP stream with a hipFFT plan. All kernels !> launched by this plan are associated with the provided stream. !> !> @param plan The FFT plan. !> @param stream The HIP stream. interface hipfftSetStream #ifdef USE_CUDA_NAMES function hipfftSetStream_(plan,stream) bind(c, name="cufftSetStream") #else function hipfftSetStream_(plan,stream) bind(c, name="hipfftSetStream") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftSetStream_ type(c_ptr),value :: plan type(c_ptr),value :: stream end function end interface !> @brief Destroy and deallocate an existing plan. interface hipfftDestroy #ifdef USE_CUDA_NAMES function hipfftDestroy_(plan) bind(c, name="cufftDestroy") #else function hipfftDestroy_(plan) bind(c, name="hipfftDestroy") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftDestroy_ type(c_ptr),value :: plan end function end interface !> @brief Get rocFFT/cuFFT version. !> !> @param[out] version cuFFT/rocFFT version (returned value). interface hipfftGetVersion #ifdef USE_CUDA_NAMES function hipfftGetVersion_(version) bind(c, name="cufftGetVersion") #else function hipfftGetVersion_(version) bind(c, name="hipfftGetVersion") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetVersion_ type(c_ptr),value :: version end function end interface !> @brief Get library property. !> !> @param[in] type Property type. !> @param[out] value Returned value. interface hipfftGetProperty #ifdef USE_CUDA_NAMES function hipfftGetProperty_(myType,myValue) bind(c, name="cufftGetProperty") #else function hipfftGetProperty_(myType,myValue) bind(c, name="hipfftGetProperty") #endif use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetProperty_ integer(kind(HIPFFT_MAJOR_VERSION)),value :: myType type(c_ptr),value :: myValue end function end interface #ifdef USE_FPOINTER_INTERFACES contains function hipfftPlanMany_rank_0(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftPlanMany_rank_0 type(c_ptr) :: plan integer(c_int) :: rank integer(c_int),target :: n integer(c_int),target :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch ! hipfftPlanMany_rank_0 = hipfftPlanMany_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch) end function function hipfftPlanMany_rank_1(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftPlanMany_rank_1 type(c_ptr) :: plan integer(c_int) :: rank integer(c_int),target,dimension(:) :: n integer(c_int),target,dimension(:) :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target,dimension(:) :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch ! hipfftPlanMany_rank_1 = hipfftPlanMany_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch) end function function hipfftMakePlan1d_rank_0(plan,nx,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan1d_rank_0 type(c_ptr) :: plan integer(c_int) :: nx integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target :: workSize ! hipfftMakePlan1d_rank_0 = hipfftMakePlan1d_(plan,nx,myType,batch,c_loc(workSize)) end function function hipfftMakePlan1d_rank_1(plan,nx,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan1d_rank_1 type(c_ptr) :: plan integer(c_int) :: nx integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftMakePlan1d_rank_1 = hipfftMakePlan1d_(plan,nx,myType,batch,c_loc(workSize)) end function function hipfftMakePlan2d_rank_0(plan,nx,ny,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan2d_rank_0 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target :: workSize ! hipfftMakePlan2d_rank_0 = hipfftMakePlan2d_(plan,nx,ny,myType,c_loc(workSize)) end function function hipfftMakePlan2d_rank_1(plan,nx,ny,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan2d_rank_1 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target,dimension(:) :: workSize ! hipfftMakePlan2d_rank_1 = hipfftMakePlan2d_(plan,nx,ny,myType,c_loc(workSize)) end function function hipfftMakePlan3d_rank_0(plan,nx,ny,nz,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan3d_rank_0 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(c_int) :: nz integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target :: workSize ! hipfftMakePlan3d_rank_0 = hipfftMakePlan3d_(plan,nx,ny,nz,myType,c_loc(workSize)) end function function hipfftMakePlan3d_rank_1(plan,nx,ny,nz,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlan3d_rank_1 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(c_int) :: nz integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target,dimension(:) :: workSize ! hipfftMakePlan3d_rank_1 = hipfftMakePlan3d_(plan,nx,ny,nz,myType,c_loc(workSize)) end function function hipfftMakePlanMany_rank_0(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlanMany_rank_0 type(c_ptr) :: plan integer(c_int) :: rank integer(c_int),target :: n integer(c_int),target :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target :: workSize ! hipfftMakePlanMany_rank_0 = hipfftMakePlanMany_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftMakePlanMany_rank_1(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlanMany_rank_1 type(c_ptr) :: plan integer(c_int) :: rank integer(c_int),target,dimension(:) :: n integer(c_int),target,dimension(:) :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target,dimension(:) :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftMakePlanMany_rank_1 = hipfftMakePlanMany_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftMakePlanMany64_rank_0(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlanMany64_rank_0 type(c_ptr) :: plan integer(c_int) :: rank integer(c_long_long),target :: n integer(c_long_long),target :: inembed integer(c_long_long) :: istride integer(c_long_long) :: idist integer(c_long_long),target :: onembed integer(c_long_long) :: ostride integer(c_long_long) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_long_long) :: batch integer(c_size_t),target :: workSize ! hipfftMakePlanMany64_rank_0 = hipfftMakePlanMany64_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftMakePlanMany64_rank_1(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftMakePlanMany64_rank_1 type(c_ptr) :: plan integer(c_int) :: rank integer(c_long_long),target,dimension(:) :: n integer(c_long_long),target,dimension(:) :: inembed integer(c_long_long) :: istride integer(c_long_long) :: idist integer(c_long_long),target,dimension(:) :: onembed integer(c_long_long) :: ostride integer(c_long_long) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_long_long) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftMakePlanMany64_rank_1 = hipfftMakePlanMany64_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftEstimate1d_rank_0(nx,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate1d_rank_0 integer(c_int) :: nx integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target :: workSize ! hipfftEstimate1d_rank_0 = hipfftEstimate1d_(nx,myType,batch,c_loc(workSize)) end function function hipfftEstimate1d_rank_1(nx,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate1d_rank_1 integer(c_int) :: nx integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftEstimate1d_rank_1 = hipfftEstimate1d_(nx,myType,batch,c_loc(workSize)) end function function hipfftEstimate2d_rank_0(nx,ny,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate2d_rank_0 integer(c_int) :: nx integer(c_int) :: ny integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target :: workSize ! hipfftEstimate2d_rank_0 = hipfftEstimate2d_(nx,ny,myType,c_loc(workSize)) end function function hipfftEstimate2d_rank_1(nx,ny,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate2d_rank_1 integer(c_int) :: nx integer(c_int) :: ny integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target,dimension(:) :: workSize ! hipfftEstimate2d_rank_1 = hipfftEstimate2d_(nx,ny,myType,c_loc(workSize)) end function function hipfftEstimate3d_rank_0(nx,ny,nz,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate3d_rank_0 integer(c_int) :: nx integer(c_int) :: ny integer(c_int) :: nz integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target :: workSize ! hipfftEstimate3d_rank_0 = hipfftEstimate3d_(nx,ny,nz,myType,c_loc(workSize)) end function function hipfftEstimate3d_rank_1(nx,ny,nz,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimate3d_rank_1 integer(c_int) :: nx integer(c_int) :: ny integer(c_int) :: nz integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target,dimension(:) :: workSize ! hipfftEstimate3d_rank_1 = hipfftEstimate3d_(nx,ny,nz,myType,c_loc(workSize)) end function function hipfftEstimateMany_rank_0(rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimateMany_rank_0 integer(c_int) :: rank integer(c_int),target :: n integer(c_int),target :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target :: workSize ! hipfftEstimateMany_rank_0 = hipfftEstimateMany_(rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftEstimateMany_rank_1(rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftEstimateMany_rank_1 integer(c_int) :: rank integer(c_int),target,dimension(:) :: n integer(c_int),target,dimension(:) :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target,dimension(:) :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftEstimateMany_rank_1 = hipfftEstimateMany_(rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftGetSize1d_rank_0(plan,nx,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize1d_rank_0 type(c_ptr) :: plan integer(c_int) :: nx integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target :: workSize ! hipfftGetSize1d_rank_0 = hipfftGetSize1d_(plan,nx,myType,batch,c_loc(workSize)) end function function hipfftGetSize1d_rank_1(plan,nx,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize1d_rank_1 type(c_ptr) :: plan integer(c_int) :: nx integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftGetSize1d_rank_1 = hipfftGetSize1d_(plan,nx,myType,batch,c_loc(workSize)) end function function hipfftGetSize2d_rank_0(plan,nx,ny,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize2d_rank_0 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target :: workSize ! hipfftGetSize2d_rank_0 = hipfftGetSize2d_(plan,nx,ny,myType,c_loc(workSize)) end function function hipfftGetSize2d_rank_1(plan,nx,ny,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize2d_rank_1 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target,dimension(:) :: workSize ! hipfftGetSize2d_rank_1 = hipfftGetSize2d_(plan,nx,ny,myType,c_loc(workSize)) end function function hipfftGetSize3d_rank_0(plan,nx,ny,nz,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize3d_rank_0 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(c_int) :: nz integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target :: workSize ! hipfftGetSize3d_rank_0 = hipfftGetSize3d_(plan,nx,ny,nz,myType,c_loc(workSize)) end function function hipfftGetSize3d_rank_1(plan,nx,ny,nz,myType,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize3d_rank_1 type(c_ptr) :: plan integer(c_int) :: nx integer(c_int) :: ny integer(c_int) :: nz integer(kind(HIPFFT_R2C)) :: myType integer(c_size_t),target,dimension(:) :: workSize ! hipfftGetSize3d_rank_1 = hipfftGetSize3d_(plan,nx,ny,nz,myType,c_loc(workSize)) end function function hipfftGetSizeMany_rank_0(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSizeMany_rank_0 type(c_ptr) :: plan integer(c_int) :: rank integer(c_int),target :: n integer(c_int),target :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target :: workSize ! hipfftGetSizeMany_rank_0 = hipfftGetSizeMany_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftGetSizeMany_rank_1(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSizeMany_rank_1 type(c_ptr) :: plan integer(c_int) :: rank integer(c_int),target,dimension(:) :: n integer(c_int),target,dimension(:) :: inembed integer(c_int) :: istride integer(c_int) :: idist integer(c_int),target,dimension(:) :: onembed integer(c_int) :: ostride integer(c_int) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_int) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftGetSizeMany_rank_1 = hipfftGetSizeMany_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftGetSizeMany64_rank_0(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSizeMany64_rank_0 type(c_ptr) :: plan integer(c_int) :: rank integer(c_long_long),target :: n integer(c_long_long),target :: inembed integer(c_long_long) :: istride integer(c_long_long) :: idist integer(c_long_long),target :: onembed integer(c_long_long) :: ostride integer(c_long_long) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_long_long) :: batch integer(c_size_t),target :: workSize ! hipfftGetSizeMany64_rank_0 = hipfftGetSizeMany64_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftGetSizeMany64_rank_1(plan,rank,n,inembed,istride,idist,onembed,ostride,odist,myType,batch,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSizeMany64_rank_1 type(c_ptr) :: plan integer(c_int) :: rank integer(c_long_long),target,dimension(:) :: n integer(c_long_long),target,dimension(:) :: inembed integer(c_long_long) :: istride integer(c_long_long) :: idist integer(c_long_long),target,dimension(:) :: onembed integer(c_long_long) :: ostride integer(c_long_long) :: odist integer(kind(HIPFFT_R2C)) :: myType integer(c_long_long) :: batch integer(c_size_t),target,dimension(:) :: workSize ! hipfftGetSizeMany64_rank_1 = hipfftGetSizeMany64_(plan,rank,c_loc(n),c_loc(inembed),istride,idist,c_loc(onembed),ostride,odist,myType,batch,c_loc(workSize)) end function function hipfftGetSize_rank_0(plan,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize_rank_0 type(c_ptr) :: plan integer(c_size_t),target :: workSize ! hipfftGetSize_rank_0 = hipfftGetSize_(plan,c_loc(workSize)) end function function hipfftGetSize_rank_1(plan,workSize) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftGetSize_rank_1 type(c_ptr) :: plan integer(c_size_t),target,dimension(:) :: workSize ! hipfftGetSize_rank_1 = hipfftGetSize_(plan,c_loc(workSize)) end function function hipfftExecC2C_rank_0(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2C_rank_0 type(c_ptr) :: plan complex(c_float_complex),target :: idata complex(c_float_complex),target :: odata integer(c_int) :: direction ! hipfftExecC2C_rank_0 = hipfftExecC2C_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecC2C_rank_1(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2C_rank_1 type(c_ptr) :: plan complex(c_float_complex),target,dimension(:) :: idata complex(c_float_complex),target,dimension(:) :: odata integer(c_int) :: direction ! hipfftExecC2C_rank_1 = hipfftExecC2C_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecR2C_rank_0(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecR2C_rank_0 type(c_ptr) :: plan real(c_float),target :: idata complex(c_float_complex),target :: odata ! hipfftExecR2C_rank_0 = hipfftExecR2C_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecR2C_rank_1(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecR2C_rank_1 type(c_ptr) :: plan real(c_float),target,dimension(:) :: idata complex(c_float_complex),target,dimension(:) :: odata ! hipfftExecR2C_rank_1 = hipfftExecR2C_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecC2R_rank_0(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2R_rank_0 type(c_ptr) :: plan complex(c_float_complex),target :: idata real(c_float),target :: odata ! hipfftExecC2R_rank_0 = hipfftExecC2R_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecC2R_rank_1(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2R_rank_1 type(c_ptr) :: plan complex(c_float_complex),target,dimension(:) :: idata real(c_float),target,dimension(:) :: odata ! hipfftExecC2R_rank_1 = hipfftExecC2R_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2Z_rank_0(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2Z_rank_0 type(c_ptr) :: plan complex(c_double_complex),target :: idata complex(c_double_complex),target :: odata integer(c_int) :: direction ! hipfftExecZ2Z_rank_0 = hipfftExecZ2Z_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecZ2Z_rank_1(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2Z_rank_1 type(c_ptr) :: plan complex(c_double_complex),target,dimension(:) :: idata complex(c_double_complex),target,dimension(:) :: odata integer(c_int) :: direction ! hipfftExecZ2Z_rank_1 = hipfftExecZ2Z_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecD2Z_rank_0(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecD2Z_rank_0 type(c_ptr) :: plan real(c_double),target :: idata complex(c_double_complex),target :: odata ! hipfftExecD2Z_rank_0 = hipfftExecD2Z_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecD2Z_rank_1(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecD2Z_rank_1 type(c_ptr) :: plan real(c_double),target,dimension(:) :: idata complex(c_double_complex),target,dimension(:) :: odata ! hipfftExecD2Z_rank_1 = hipfftExecD2Z_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2D_rank_0(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2D_rank_0 type(c_ptr) :: plan complex(c_double_complex),target :: idata real(c_double),target :: odata ! hipfftExecZ2D_rank_0 = hipfftExecZ2D_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2D_rank_1(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2D_rank_1 type(c_ptr) :: plan complex(c_double_complex),target,dimension(:) :: idata real(c_double),target,dimension(:) :: odata ! hipfftExecZ2D_rank_1 = hipfftExecZ2D_(plan,c_loc(idata),c_loc(odata)) end function ! 2D function hipfftExecC2C_rank_2(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2C_rank_2 type(c_ptr),value :: plan complex(c_float_complex),target,dimension(:,:) :: idata complex(c_float_complex),target,dimension(:,:) :: odata integer(c_int),value :: direction ! hipfftExecC2C_rank_2 = hipfftExecC2C_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecR2C_rank_2(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecR2C_rank_2 type(c_ptr),value :: plan real(c_float),target,dimension(:,:) :: idata complex(c_float_complex),target,dimension(:,:) :: odata ! hipfftExecR2C_rank_2 = hipfftExecR2C_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecC2R_rank_2(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2R_rank_2 type(c_ptr),value :: plan complex(c_float_complex),target,dimension(:,:) :: idata real(c_float),target,dimension(:,:) :: odata ! hipfftExecC2R_rank_2 = hipfftExecC2R_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2Z_rank_2(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2Z_rank_2 type(c_ptr),value :: plan complex(c_double_complex),target,dimension(:,:) :: idata complex(c_double_complex),target,dimension(:,:) :: odata integer(c_int),value :: direction ! hipfftExecZ2Z_rank_2 = hipfftExecZ2Z_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecD2Z_rank_2(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecD2Z_rank_2 type(c_ptr),value :: plan real(c_double),target,dimension(:,:) :: idata complex(c_double_complex),target,dimension(:,:) :: odata ! hipfftExecD2Z_rank_2 = hipfftExecD2Z_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2D_rank_2(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2D_rank_2 type(c_ptr),value :: plan complex(c_double_complex),target,dimension(:,:) :: idata real(c_double),target,dimension(:,:) :: odata ! hipfftExecZ2D_rank_2 = hipfftExecZ2D_(plan,c_loc(idata),c_loc(odata)) end function ! 3D function hipfftExecC2C_rank_3(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2C_rank_3 type(c_ptr),value :: plan complex(c_float_complex),target,dimension(:,:,:) :: idata complex(c_float_complex),target,dimension(:,:,:) :: odata integer(c_int),value :: direction ! hipfftExecC2C_rank_3 = hipfftExecC2C_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecR2C_rank_3(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecR2C_rank_3 type(c_ptr),value :: plan real(c_float),target,dimension(:,:,:) :: idata complex(c_float_complex),target,dimension(:,:,:) :: odata ! hipfftExecR2C_rank_3 = hipfftExecR2C_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecC2R_rank_3(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecC2R_rank_3 type(c_ptr),value :: plan complex(c_float_complex),target,dimension(:,:,:) :: idata real(c_float),target,dimension(:,:,:) :: odata ! hipfftExecC2R_rank_3 = hipfftExecC2R_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2Z_rank_3(plan,idata,odata,direction) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2Z_rank_3 type(c_ptr),value :: plan complex(c_double_complex),target,dimension(:,:,:) :: idata complex(c_double_complex),target,dimension(:,:,:) :: odata integer(c_int),value :: direction ! hipfftExecZ2Z_rank_3 = hipfftExecZ2Z_(plan,c_loc(idata),c_loc(odata),direction) end function function hipfftExecD2Z_rank_3(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecD2Z_rank_3 type(c_ptr),value :: plan real(c_double),target,dimension(:,:,:) :: idata complex(c_double_complex),target,dimension(:,:,:) :: odata ! hipfftExecD2Z_rank_3 = hipfftExecD2Z_(plan,c_loc(idata),c_loc(odata)) end function function hipfftExecZ2D_rank_3(plan,idata,odata) use iso_c_binding use hipfort_hipfft_enums implicit none integer(kind(HIPFFT_SUCCESS)) :: hipfftExecZ2D_rank_3 type(c_ptr),value :: plan complex(c_double_complex),target,dimension(:,:,:) :: idata real(c_double),target,dimension(:,:,:) :: odata ! hipfftExecZ2D_rank_3 = hipfftExecZ2D_(plan,c_loc(idata),c_loc(odata)) end function #endif end module hipfort_hipffthipfort-7.2.4/lib/hipfort/hipfort_hipblas_enums.F900000664000175000017500000001161615207260635022463 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipblas_enums implicit none enum, bind(c) enumerator :: HIPBLAS_STATUS_SUCCESS = 0 enumerator :: HIPBLAS_STATUS_NOT_INITIALIZED = 1 enumerator :: HIPBLAS_STATUS_ALLOC_FAILED = 2 enumerator :: HIPBLAS_STATUS_INVALID_VALUE = 3 enumerator :: HIPBLAS_STATUS_MAPPING_ERROR = 4 enumerator :: HIPBLAS_STATUS_EXECUTION_FAILED = 5 enumerator :: HIPBLAS_STATUS_INTERNAL_ERROR = 6 enumerator :: HIPBLAS_STATUS_NOT_SUPPORTED = 7 enumerator :: HIPBLAS_STATUS_ARCH_MISMATCH = 8 enumerator :: HIPBLAS_STATUS_HANDLE_IS_NULLPTR = 9 enumerator :: HIPBLAS_STATUS_INVALID_ENUM = 10 enumerator :: HIPBLAS_STATUS_UNKNOWN = 11 end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_OP_N = 0 #else enumerator :: HIPBLAS_OP_N = 111 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_OP_T = 1 #else enumerator :: HIPBLAS_OP_T = 112 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_OP_C = 2 #else enumerator :: HIPBLAS_OP_C = 113 #endif end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_POINTER_MODE_HOST = 0 #else enumerator :: HIPBLAS_POINTER_MODE_HOST #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_POINTER_MODE_DEVICE = 1 #else enumerator :: HIPBLAS_POINTER_MODE_DEVICE #endif end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_FILL_MODE_UPPER = 1 #else enumerator :: HIPBLAS_FILL_MODE_UPPER = 121 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_FILL_MODE_LOWER = 0 #else enumerator :: HIPBLAS_FILL_MODE_LOWER = 122 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_FILL_MODE_FULL = 2 #else enumerator :: HIPBLAS_FILL_MODE_FULL = 123 #endif end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_DIAG_NON_UNIT = 0 #else enumerator :: HIPBLAS_DIAG_NON_UNIT = 131 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_DIAG_UNIT = 1 #else enumerator :: HIPBLAS_DIAG_UNIT = 132 #endif end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_SIDE_LEFT = 0 #else enumerator :: HIPBLAS_SIDE_LEFT = 141 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_SIDE_RIGHT = 1 #else enumerator :: HIPBLAS_SIDE_RIGHT = 142 #endif enumerator :: HIPBLAS_SIDE_BOTH = 143 end enum enum, bind(c) enumerator :: HIPBLAS_R_16F = 150 enumerator :: HIPBLAS_R_32F = 151 enumerator :: HIPBLAS_R_64F = 152 enumerator :: HIPBLAS_C_16F = 153 enumerator :: HIPBLAS_C_32F = 154 enumerator :: HIPBLAS_C_64F = 155 enumerator :: HIPBLAS_R_8I = 160 enumerator :: HIPBLAS_R_8U = 161 enumerator :: HIPBLAS_R_32I = 162 enumerator :: HIPBLAS_R_32U = 163 enumerator :: HIPBLAS_C_8I = 164 enumerator :: HIPBLAS_C_8U = 165 enumerator :: HIPBLAS_C_32I = 166 enumerator :: HIPBLAS_C_32U = 167 enumerator :: HIPBLAS_R_16B = 168 enumerator :: HIPBLAS_C_16B = 169 end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_GEMM_DEFAULT = -1 #else enumerator :: HIPBLAS_GEMM_DEFAULT = 160 #endif end enum enum, bind(c) #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_ATOMICS_NOT_ALLOWED = 0 #else enumerator :: HIPBLAS_ATOMICS_NOT_ALLOWED = 0 #endif #ifdef USE_CUDA_NAMES enumerator :: HIPBLAS_ATOMICS_ALLOWED = 1 #else enumerator :: HIPBLAS_ATOMICS_ALLOWED = 1 #endif end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_hipblas_enumshipfort-7.2.4/lib/hipfort/hipfort_hiphostregister.F900000664000175000017500000070406715207260635023066 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hiphostregister !> !> @brief Register host memory so it can be accessed from the current device. !> !> @param[out] hostPtr Pointer to host memory to be registered. !> @param[in] sizeBytes size of the host memory !> @param[in] flags. See below. !> !> Flags: !> - hipHostRegisterDefault Memory is Mapped and Portable !> - hipHostRegisterPortable Memory is considered registered by all contexts. HIP only supports !> one context so this is always assumed true. !> - hipHostRegisterMapped Map the allocation into the address space for the current device. !> The device pointer can be obtained with hipHostGetDevicePointer. !> !> !> After registering the memory, use hipHostGetDevicePointer to obtain the mapped device pointer. !> On many systems, the mapped device pointer will have a different value than the mapped host !> pointer. Applications must use the device pointer in device code, and the host pointer in device !> code. !> !> On some systems, registered memory is pinned. On some systems, registered memory may not be !> actually be pinned but uses OS or hardware facilities to all GPU access to the host memory. !> !> Developers are strongly encouraged to register memory blocks which are aligned to the host !> cache-line size. (typically 64-bytes but can be obtains from the CPUID instruction). !> !> If registering non-aligned pointers, the application must take care when register pointers from !> the same cache line on different devices. HIP's coarse-grained synchronization model does not !> guarantee correct results if different devices write to different parts of the same cache block - !> typically one of the writes will "win" and overwrite data from the other registered memory !> region. !> !> @return hipSuccess, hipErrorOutOfMemory !> !> @see hipHostUnregister, hipHostGetFlags, hipHostGetDevicePointer !> interface hipHostRegister #ifdef USE_CUDA_NAMES function hipHostRegister_(hostPtr,sizeBytes,flags) bind(c, name="cudaHostRegister") #else function hipHostRegister_(hostPtr,sizeBytes,flags) bind(c, name="hipHostRegister") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_ #else integer(kind(hipSuccess)) :: hipHostRegister_ #endif type(c_ptr),value :: hostPtr integer(c_size_t),value :: sizeBytes integer(kind=4),value :: flags end function #ifdef USE_FPOINTER_INTERFACES module procedure hipHostRegister_l_0_nosize,& hipHostRegister_l_1_nosize,& hipHostRegister_l_1_c_int,& hipHostRegister_l_1_c_size_t,& hipHostRegister_l_2_nosize,& hipHostRegister_l_2_c_int,& hipHostRegister_l_2_c_size_t,& hipHostRegister_l_3_nosize,& hipHostRegister_l_3_c_int,& hipHostRegister_l_3_c_size_t,& hipHostRegister_l_4_nosize,& hipHostRegister_l_4_c_int,& hipHostRegister_l_4_c_size_t,& hipHostRegister_l_5_nosize,& hipHostRegister_l_5_c_int,& hipHostRegister_l_5_c_size_t,& hipHostRegister_l_6_nosize,& hipHostRegister_l_6_c_int,& hipHostRegister_l_6_c_size_t,& hipHostRegister_l_7_nosize,& hipHostRegister_l_7_c_int,& hipHostRegister_l_7_c_size_t,& hipHostRegister_i4_0_nosize,& hipHostRegister_i4_1_nosize,& hipHostRegister_i4_1_c_int,& hipHostRegister_i4_1_c_size_t,& hipHostRegister_i4_2_nosize,& hipHostRegister_i4_2_c_int,& hipHostRegister_i4_2_c_size_t,& hipHostRegister_i4_3_nosize,& hipHostRegister_i4_3_c_int,& hipHostRegister_i4_3_c_size_t,& hipHostRegister_i4_4_nosize,& hipHostRegister_i4_4_c_int,& hipHostRegister_i4_4_c_size_t,& hipHostRegister_i4_5_nosize,& hipHostRegister_i4_5_c_int,& hipHostRegister_i4_5_c_size_t,& hipHostRegister_i4_6_nosize,& hipHostRegister_i4_6_c_int,& hipHostRegister_i4_6_c_size_t,& hipHostRegister_i4_7_nosize,& hipHostRegister_i4_7_c_int,& hipHostRegister_i4_7_c_size_t,& hipHostRegister_i8_0_nosize,& hipHostRegister_i8_1_nosize,& hipHostRegister_i8_1_c_int,& hipHostRegister_i8_1_c_size_t,& hipHostRegister_i8_2_nosize,& hipHostRegister_i8_2_c_int,& hipHostRegister_i8_2_c_size_t,& hipHostRegister_i8_3_nosize,& hipHostRegister_i8_3_c_int,& hipHostRegister_i8_3_c_size_t,& hipHostRegister_i8_4_nosize,& hipHostRegister_i8_4_c_int,& hipHostRegister_i8_4_c_size_t,& hipHostRegister_i8_5_nosize,& hipHostRegister_i8_5_c_int,& hipHostRegister_i8_5_c_size_t,& hipHostRegister_i8_6_nosize,& hipHostRegister_i8_6_c_int,& hipHostRegister_i8_6_c_size_t,& hipHostRegister_i8_7_nosize,& hipHostRegister_i8_7_c_int,& hipHostRegister_i8_7_c_size_t,& hipHostRegister_r4_0_nosize,& hipHostRegister_r4_1_nosize,& hipHostRegister_r4_1_c_int,& hipHostRegister_r4_1_c_size_t,& hipHostRegister_r4_2_nosize,& hipHostRegister_r4_2_c_int,& hipHostRegister_r4_2_c_size_t,& hipHostRegister_r4_3_nosize,& hipHostRegister_r4_3_c_int,& hipHostRegister_r4_3_c_size_t,& hipHostRegister_r4_4_nosize,& hipHostRegister_r4_4_c_int,& hipHostRegister_r4_4_c_size_t,& hipHostRegister_r4_5_nosize,& hipHostRegister_r4_5_c_int,& hipHostRegister_r4_5_c_size_t,& hipHostRegister_r4_6_nosize,& hipHostRegister_r4_6_c_int,& hipHostRegister_r4_6_c_size_t,& hipHostRegister_r4_7_nosize,& hipHostRegister_r4_7_c_int,& hipHostRegister_r4_7_c_size_t,& hipHostRegister_r8_0_nosize,& hipHostRegister_r8_1_nosize,& hipHostRegister_r8_1_c_int,& hipHostRegister_r8_1_c_size_t,& hipHostRegister_r8_2_nosize,& hipHostRegister_r8_2_c_int,& hipHostRegister_r8_2_c_size_t,& hipHostRegister_r8_3_nosize,& hipHostRegister_r8_3_c_int,& hipHostRegister_r8_3_c_size_t,& hipHostRegister_r8_4_nosize,& hipHostRegister_r8_4_c_int,& hipHostRegister_r8_4_c_size_t,& hipHostRegister_r8_5_nosize,& hipHostRegister_r8_5_c_int,& hipHostRegister_r8_5_c_size_t,& hipHostRegister_r8_6_nosize,& hipHostRegister_r8_6_c_int,& hipHostRegister_r8_6_c_size_t,& hipHostRegister_r8_7_nosize,& hipHostRegister_r8_7_c_int,& hipHostRegister_r8_7_c_size_t,& hipHostRegister_c4_0_nosize,& hipHostRegister_c4_1_nosize,& hipHostRegister_c4_1_c_int,& hipHostRegister_c4_1_c_size_t,& hipHostRegister_c4_2_nosize,& hipHostRegister_c4_2_c_int,& hipHostRegister_c4_2_c_size_t,& hipHostRegister_c4_3_nosize,& hipHostRegister_c4_3_c_int,& hipHostRegister_c4_3_c_size_t,& hipHostRegister_c4_4_nosize,& hipHostRegister_c4_4_c_int,& hipHostRegister_c4_4_c_size_t,& hipHostRegister_c4_5_nosize,& hipHostRegister_c4_5_c_int,& hipHostRegister_c4_5_c_size_t,& hipHostRegister_c4_6_nosize,& hipHostRegister_c4_6_c_int,& hipHostRegister_c4_6_c_size_t,& hipHostRegister_c4_7_nosize,& hipHostRegister_c4_7_c_int,& hipHostRegister_c4_7_c_size_t,& hipHostRegister_c8_0_nosize,& hipHostRegister_c8_1_nosize,& hipHostRegister_c8_1_c_int,& hipHostRegister_c8_1_c_size_t,& hipHostRegister_c8_2_nosize,& hipHostRegister_c8_2_c_int,& hipHostRegister_c8_2_c_size_t,& hipHostRegister_c8_3_nosize,& hipHostRegister_c8_3_c_int,& hipHostRegister_c8_3_c_size_t,& hipHostRegister_c8_4_nosize,& hipHostRegister_c8_4_c_int,& hipHostRegister_c8_4_c_size_t,& hipHostRegister_c8_5_nosize,& hipHostRegister_c8_5_c_int,& hipHostRegister_c8_5_c_size_t,& hipHostRegister_c8_6_nosize,& hipHostRegister_c8_6_c_int,& hipHostRegister_c8_6_c_size_t,& hipHostRegister_c8_7_nosize,& hipHostRegister_c8_7_c_int,& hipHostRegister_c8_7_c_size_t #endif end interface !> !> @brief Un-register host pointer !> !> @param[in] hostPtr Host pointer previously registered with hipHostRegister !> @return Error code !> !> @see hipHostRegister !> interface hipHostUnregister #ifdef USE_CUDA_NAMES function hipHostUnregister_(hostPtr) bind(c, name="cudaHostUnregister") #else function hipHostUnregister_(hostPtr) bind(c, name="hipHostUnregister") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_ #else integer(kind(hipSuccess)) :: hipHostUnregister_ #endif type(c_ptr),value :: hostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure hipHostUnregister_l_0,& hipHostUnregister_l_1,& hipHostUnregister_l_2,& hipHostUnregister_l_3,& hipHostUnregister_l_4,& hipHostUnregister_l_5,& hipHostUnregister_l_6,& hipHostUnregister_l_7,& hipHostUnregister_i4_0,& hipHostUnregister_i4_1,& hipHostUnregister_i4_2,& hipHostUnregister_i4_3,& hipHostUnregister_i4_4,& hipHostUnregister_i4_5,& hipHostUnregister_i4_6,& hipHostUnregister_i4_7,& hipHostUnregister_i8_0,& hipHostUnregister_i8_1,& hipHostUnregister_i8_2,& hipHostUnregister_i8_3,& hipHostUnregister_i8_4,& hipHostUnregister_i8_5,& hipHostUnregister_i8_6,& hipHostUnregister_i8_7,& hipHostUnregister_r4_0,& hipHostUnregister_r4_1,& hipHostUnregister_r4_2,& hipHostUnregister_r4_3,& hipHostUnregister_r4_4,& hipHostUnregister_r4_5,& hipHostUnregister_r4_6,& hipHostUnregister_r4_7,& hipHostUnregister_r8_0,& hipHostUnregister_r8_1,& hipHostUnregister_r8_2,& hipHostUnregister_r8_3,& hipHostUnregister_r8_4,& hipHostUnregister_r8_5,& hipHostUnregister_r8_6,& hipHostUnregister_r8_7,& hipHostUnregister_c4_0,& hipHostUnregister_c4_1,& hipHostUnregister_c4_2,& hipHostUnregister_c4_3,& hipHostUnregister_c4_4,& hipHostUnregister_c4_5,& hipHostUnregister_c4_6,& hipHostUnregister_c4_7,& hipHostUnregister_c8_0,& hipHostUnregister_c8_1,& hipHostUnregister_c8_2,& hipHostUnregister_c8_3,& hipHostUnregister_c8_4,& hipHostUnregister_c8_5,& hipHostUnregister_c8_6,& hipHostUnregister_c8_7 #endif end interface !> !> @brief Get Device pointer from Host Pointer allocated through hipHostMalloc !> !> @param[out] dstPtr Device Pointer mapped to passed host pointer !> @param[in] hstPtr Host Pointer allocated through hipHostMalloc !> @param[in] flags Flags to be passed for extension !> !> @return hipSuccess, hipErrorInvalidValue, hipErrorOutOfMemory !> !> @see hipSetDeviceFlags, hipHostMalloc !> interface hipHostGetDevicePointer #ifdef USE_CUDA_NAMES function hipHostGetDevicePointer_(devPtr,hstPtr,flags) bind(c, name="cudaHostGetDevicePointer") #else function hipHostGetDevicePointer_(devPtr,hstPtr,flags) bind(c, name="hipHostGetDevicePointer") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_ #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_ #endif type(c_ptr) :: devPtr type(c_ptr),value :: hstPtr integer(kind=4),value :: flags end function #ifdef USE_FPOINTER_INTERFACES module procedure hipHostGetDevicePointer_l_0,& hipHostGetDevicePointer_l_1,& hipHostGetDevicePointer_l_2,& hipHostGetDevicePointer_l_3,& hipHostGetDevicePointer_l_4,& hipHostGetDevicePointer_l_5,& hipHostGetDevicePointer_l_6,& hipHostGetDevicePointer_l_7,& hipHostGetDevicePointer_i4_0,& hipHostGetDevicePointer_i4_1,& hipHostGetDevicePointer_i4_2,& hipHostGetDevicePointer_i4_3,& hipHostGetDevicePointer_i4_4,& hipHostGetDevicePointer_i4_5,& hipHostGetDevicePointer_i4_6,& hipHostGetDevicePointer_i4_7,& hipHostGetDevicePointer_i8_0,& hipHostGetDevicePointer_i8_1,& hipHostGetDevicePointer_i8_2,& hipHostGetDevicePointer_i8_3,& hipHostGetDevicePointer_i8_4,& hipHostGetDevicePointer_i8_5,& hipHostGetDevicePointer_i8_6,& hipHostGetDevicePointer_i8_7,& hipHostGetDevicePointer_r4_0,& hipHostGetDevicePointer_r4_1,& hipHostGetDevicePointer_r4_2,& hipHostGetDevicePointer_r4_3,& hipHostGetDevicePointer_r4_4,& hipHostGetDevicePointer_r4_5,& hipHostGetDevicePointer_r4_6,& hipHostGetDevicePointer_r4_7,& hipHostGetDevicePointer_r8_0,& hipHostGetDevicePointer_r8_1,& hipHostGetDevicePointer_r8_2,& hipHostGetDevicePointer_r8_3,& hipHostGetDevicePointer_r8_4,& hipHostGetDevicePointer_r8_5,& hipHostGetDevicePointer_r8_6,& hipHostGetDevicePointer_r8_7,& hipHostGetDevicePointer_c4_0,& hipHostGetDevicePointer_c4_1,& hipHostGetDevicePointer_c4_2,& hipHostGetDevicePointer_c4_3,& hipHostGetDevicePointer_c4_4,& hipHostGetDevicePointer_c4_5,& hipHostGetDevicePointer_c4_6,& hipHostGetDevicePointer_c4_7,& hipHostGetDevicePointer_c8_0,& hipHostGetDevicePointer_c8_1,& hipHostGetDevicePointer_c8_2,& hipHostGetDevicePointer_c8_3,& hipHostGetDevicePointer_c8_4,& hipHostGetDevicePointer_c8_5,& hipHostGetDevicePointer_c8_6,& hipHostGetDevicePointer_c8_7 #endif end interface !> !> @brief Return flags associated with host pointer !> !> @param[out] flagsPtr Memory location to store flags !> @param[in] hostPtr Host Pointer allocated through hipHostMalloc !> @return hipSuccess, hipErrorInvalidValue !> !> @see hipHostMalloc !> interface hipHostGetFlags #ifdef USE_CUDA_NAMES function hipHostGetFlags_(flagsPtr,hostPtr) bind(c, name="cudaHostGetFlags") #else function hipHostGetFlags_(flagsPtr,hostPtr) bind(c, name="hipHostGetFlags") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_ #else integer(kind(hipSuccess)) :: hipHostGetFlags_ #endif integer(kind=4) :: flagsPtr type(c_ptr),value :: hostPtr end function #ifdef USE_FPOINTER_INTERFACES module procedure hipHostGetFlags_l_0,& hipHostGetFlags_l_1,& hipHostGetFlags_l_2,& hipHostGetFlags_l_3,& hipHostGetFlags_l_4,& hipHostGetFlags_l_5,& hipHostGetFlags_l_6,& hipHostGetFlags_l_7,& hipHostGetFlags_i4_0,& hipHostGetFlags_i4_1,& hipHostGetFlags_i4_2,& hipHostGetFlags_i4_3,& hipHostGetFlags_i4_4,& hipHostGetFlags_i4_5,& hipHostGetFlags_i4_6,& hipHostGetFlags_i4_7,& hipHostGetFlags_i8_0,& hipHostGetFlags_i8_1,& hipHostGetFlags_i8_2,& hipHostGetFlags_i8_3,& hipHostGetFlags_i8_4,& hipHostGetFlags_i8_5,& hipHostGetFlags_i8_6,& hipHostGetFlags_i8_7,& hipHostGetFlags_r4_0,& hipHostGetFlags_r4_1,& hipHostGetFlags_r4_2,& hipHostGetFlags_r4_3,& hipHostGetFlags_r4_4,& hipHostGetFlags_r4_5,& hipHostGetFlags_r4_6,& hipHostGetFlags_r4_7,& hipHostGetFlags_r8_0,& hipHostGetFlags_r8_1,& hipHostGetFlags_r8_2,& hipHostGetFlags_r8_3,& hipHostGetFlags_r8_4,& hipHostGetFlags_r8_5,& hipHostGetFlags_r8_6,& hipHostGetFlags_r8_7,& hipHostGetFlags_c4_0,& hipHostGetFlags_c4_1,& hipHostGetFlags_c4_2,& hipHostGetFlags_c4_3,& hipHostGetFlags_c4_4,& hipHostGetFlags_c4_5,& hipHostGetFlags_c4_6,& hipHostGetFlags_c4_7,& hipHostGetFlags_c8_0,& hipHostGetFlags_c8_1,& hipHostGetFlags_c8_2,& hipHostGetFlags_c8_3,& hipHostGetFlags_c8_4,& hipHostGetFlags_c8_5,& hipHostGetFlags_c8_6,& hipHostGetFlags_c8_7 #endif end interface #ifdef USE_FPOINTER_INTERFACES contains function hipHostRegister_l_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_0_nosize #endif ! hipHostRegister_l_0_nosize = hipHostRegister_(c_loc(hostPtr),1_8,flags) end function function hipHostRegister_l_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_1_nosize #endif ! hipHostRegister_l_1_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_1_c_int #endif ! hipHostRegister_l_1_c_int = hipHostRegister_(cptr,length1*1_8,flags) end function function hipHostRegister_l_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_1_c_size_t #endif ! hipHostRegister_l_1_c_size_t = hipHostRegister_(cptr,length1*1_8,flags) end function function hipHostRegister_l_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_2_nosize #endif ! hipHostRegister_l_2_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_2_c_int #endif ! hipHostRegister_l_2_c_int = hipHostRegister_(cptr,length1*length2*1_8,flags) end function function hipHostRegister_l_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_2_c_size_t #endif ! hipHostRegister_l_2_c_size_t = hipHostRegister_(cptr,length1*length2*1_8,flags) end function function hipHostRegister_l_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_3_nosize #endif ! hipHostRegister_l_3_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_3_c_int #endif ! hipHostRegister_l_3_c_int = hipHostRegister_(cptr,length1*length2*length3*1_8,flags) end function function hipHostRegister_l_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_3_c_size_t #endif ! hipHostRegister_l_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*1_8,flags) end function function hipHostRegister_l_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_4_nosize #endif ! hipHostRegister_l_4_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_4_c_int #endif ! hipHostRegister_l_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*1_8,flags) end function function hipHostRegister_l_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_4_c_size_t #endif ! hipHostRegister_l_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*1_8,flags) end function function hipHostRegister_l_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_5_nosize #endif ! hipHostRegister_l_5_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_5_c_int #endif ! hipHostRegister_l_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*1_8,flags) end function function hipHostRegister_l_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_5_c_size_t #endif ! hipHostRegister_l_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*1_8,flags) end function function hipHostRegister_l_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_6_nosize #endif ! hipHostRegister_l_6_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_6_c_int #endif ! hipHostRegister_l_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*1_8,flags) end function function hipHostRegister_l_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_6_c_size_t #endif ! hipHostRegister_l_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*1_8,flags) end function function hipHostRegister_l_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_l_7_nosize #endif ! hipHostRegister_l_7_nosize = hipHostRegister_(c_loc(hostPtr),1_8*size(hostPtr),flags) end function function hipHostRegister_l_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_l_7_c_int #endif ! hipHostRegister_l_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*1_8,flags) end function function hipHostRegister_l_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_l_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_l_7_c_size_t #endif ! hipHostRegister_l_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*1_8,flags) end function function hipHostRegister_i4_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_0_nosize #endif ! hipHostRegister_i4_0_nosize = hipHostRegister_(c_loc(hostPtr),4_8,flags) end function function hipHostRegister_i4_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_1_nosize #endif ! hipHostRegister_i4_1_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_1_c_int #endif ! hipHostRegister_i4_1_c_int = hipHostRegister_(cptr,length1*4_8,flags) end function function hipHostRegister_i4_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_1_c_size_t #endif ! hipHostRegister_i4_1_c_size_t = hipHostRegister_(cptr,length1*4_8,flags) end function function hipHostRegister_i4_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_2_nosize #endif ! hipHostRegister_i4_2_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_2_c_int #endif ! hipHostRegister_i4_2_c_int = hipHostRegister_(cptr,length1*length2*4_8,flags) end function function hipHostRegister_i4_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_2_c_size_t #endif ! hipHostRegister_i4_2_c_size_t = hipHostRegister_(cptr,length1*length2*4_8,flags) end function function hipHostRegister_i4_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_3_nosize #endif ! hipHostRegister_i4_3_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_3_c_int #endif ! hipHostRegister_i4_3_c_int = hipHostRegister_(cptr,length1*length2*length3*4_8,flags) end function function hipHostRegister_i4_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_3_c_size_t #endif ! hipHostRegister_i4_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*4_8,flags) end function function hipHostRegister_i4_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_4_nosize #endif ! hipHostRegister_i4_4_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_4_c_int #endif ! hipHostRegister_i4_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*4_8,flags) end function function hipHostRegister_i4_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_4_c_size_t #endif ! hipHostRegister_i4_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*4_8,flags) end function function hipHostRegister_i4_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_5_nosize #endif ! hipHostRegister_i4_5_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_5_c_int #endif ! hipHostRegister_i4_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*4_8,flags) end function function hipHostRegister_i4_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_5_c_size_t #endif ! hipHostRegister_i4_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*4_8,flags) end function function hipHostRegister_i4_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_6_nosize #endif ! hipHostRegister_i4_6_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_6_c_int #endif ! hipHostRegister_i4_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*4_8,flags) end function function hipHostRegister_i4_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_6_c_size_t #endif ! hipHostRegister_i4_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*4_8,flags) end function function hipHostRegister_i4_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i4_7_nosize #endif ! hipHostRegister_i4_7_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_i4_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i4_7_c_int #endif ! hipHostRegister_i4_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*4_8,flags) end function function hipHostRegister_i4_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i4_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i4_7_c_size_t #endif ! hipHostRegister_i4_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*4_8,flags) end function function hipHostRegister_i8_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_0_nosize #endif ! hipHostRegister_i8_0_nosize = hipHostRegister_(c_loc(hostPtr),8_8,flags) end function function hipHostRegister_i8_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_1_nosize #endif ! hipHostRegister_i8_1_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_1_c_int #endif ! hipHostRegister_i8_1_c_int = hipHostRegister_(cptr,length1*8_8,flags) end function function hipHostRegister_i8_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_1_c_size_t #endif ! hipHostRegister_i8_1_c_size_t = hipHostRegister_(cptr,length1*8_8,flags) end function function hipHostRegister_i8_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_2_nosize #endif ! hipHostRegister_i8_2_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_2_c_int #endif ! hipHostRegister_i8_2_c_int = hipHostRegister_(cptr,length1*length2*8_8,flags) end function function hipHostRegister_i8_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_2_c_size_t #endif ! hipHostRegister_i8_2_c_size_t = hipHostRegister_(cptr,length1*length2*8_8,flags) end function function hipHostRegister_i8_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_3_nosize #endif ! hipHostRegister_i8_3_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_3_c_int #endif ! hipHostRegister_i8_3_c_int = hipHostRegister_(cptr,length1*length2*length3*8_8,flags) end function function hipHostRegister_i8_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_3_c_size_t #endif ! hipHostRegister_i8_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*8_8,flags) end function function hipHostRegister_i8_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_4_nosize #endif ! hipHostRegister_i8_4_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_4_c_int #endif ! hipHostRegister_i8_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*8_8,flags) end function function hipHostRegister_i8_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_4_c_size_t #endif ! hipHostRegister_i8_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*8_8,flags) end function function hipHostRegister_i8_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_5_nosize #endif ! hipHostRegister_i8_5_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_5_c_int #endif ! hipHostRegister_i8_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*8_8,flags) end function function hipHostRegister_i8_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_5_c_size_t #endif ! hipHostRegister_i8_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*8_8,flags) end function function hipHostRegister_i8_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_6_nosize #endif ! hipHostRegister_i8_6_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_6_c_int #endif ! hipHostRegister_i8_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*8_8,flags) end function function hipHostRegister_i8_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_6_c_size_t #endif ! hipHostRegister_i8_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*8_8,flags) end function function hipHostRegister_i8_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_i8_7_nosize #endif ! hipHostRegister_i8_7_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_i8_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_i8_7_c_int #endif ! hipHostRegister_i8_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*8_8,flags) end function function hipHostRegister_i8_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_i8_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_i8_7_c_size_t #endif ! hipHostRegister_i8_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*8_8,flags) end function function hipHostRegister_r4_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_0_nosize #endif ! hipHostRegister_r4_0_nosize = hipHostRegister_(c_loc(hostPtr),4_8,flags) end function function hipHostRegister_r4_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_1_nosize #endif ! hipHostRegister_r4_1_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_1_c_int #endif ! hipHostRegister_r4_1_c_int = hipHostRegister_(cptr,length1*4_8,flags) end function function hipHostRegister_r4_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_1_c_size_t #endif ! hipHostRegister_r4_1_c_size_t = hipHostRegister_(cptr,length1*4_8,flags) end function function hipHostRegister_r4_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_2_nosize #endif ! hipHostRegister_r4_2_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_2_c_int #endif ! hipHostRegister_r4_2_c_int = hipHostRegister_(cptr,length1*length2*4_8,flags) end function function hipHostRegister_r4_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_2_c_size_t #endif ! hipHostRegister_r4_2_c_size_t = hipHostRegister_(cptr,length1*length2*4_8,flags) end function function hipHostRegister_r4_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_3_nosize #endif ! hipHostRegister_r4_3_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_3_c_int #endif ! hipHostRegister_r4_3_c_int = hipHostRegister_(cptr,length1*length2*length3*4_8,flags) end function function hipHostRegister_r4_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_3_c_size_t #endif ! hipHostRegister_r4_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*4_8,flags) end function function hipHostRegister_r4_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_4_nosize #endif ! hipHostRegister_r4_4_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_4_c_int #endif ! hipHostRegister_r4_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*4_8,flags) end function function hipHostRegister_r4_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_4_c_size_t #endif ! hipHostRegister_r4_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*4_8,flags) end function function hipHostRegister_r4_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_5_nosize #endif ! hipHostRegister_r4_5_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_5_c_int #endif ! hipHostRegister_r4_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*4_8,flags) end function function hipHostRegister_r4_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_5_c_size_t #endif ! hipHostRegister_r4_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*4_8,flags) end function function hipHostRegister_r4_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_6_nosize #endif ! hipHostRegister_r4_6_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_6_c_int #endif ! hipHostRegister_r4_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*4_8,flags) end function function hipHostRegister_r4_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_6_c_size_t #endif ! hipHostRegister_r4_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*4_8,flags) end function function hipHostRegister_r4_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r4_7_nosize #endif ! hipHostRegister_r4_7_nosize = hipHostRegister_(c_loc(hostPtr),4_8*size(hostPtr),flags) end function function hipHostRegister_r4_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r4_7_c_int #endif ! hipHostRegister_r4_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*4_8,flags) end function function hipHostRegister_r4_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r4_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r4_7_c_size_t #endif ! hipHostRegister_r4_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*4_8,flags) end function function hipHostRegister_r8_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_0_nosize #endif ! hipHostRegister_r8_0_nosize = hipHostRegister_(c_loc(hostPtr),8_8,flags) end function function hipHostRegister_r8_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_1_nosize #endif ! hipHostRegister_r8_1_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_1_c_int #endif ! hipHostRegister_r8_1_c_int = hipHostRegister_(cptr,length1*8_8,flags) end function function hipHostRegister_r8_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_1_c_size_t #endif ! hipHostRegister_r8_1_c_size_t = hipHostRegister_(cptr,length1*8_8,flags) end function function hipHostRegister_r8_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_2_nosize #endif ! hipHostRegister_r8_2_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_2_c_int #endif ! hipHostRegister_r8_2_c_int = hipHostRegister_(cptr,length1*length2*8_8,flags) end function function hipHostRegister_r8_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_2_c_size_t #endif ! hipHostRegister_r8_2_c_size_t = hipHostRegister_(cptr,length1*length2*8_8,flags) end function function hipHostRegister_r8_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_3_nosize #endif ! hipHostRegister_r8_3_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_3_c_int #endif ! hipHostRegister_r8_3_c_int = hipHostRegister_(cptr,length1*length2*length3*8_8,flags) end function function hipHostRegister_r8_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_3_c_size_t #endif ! hipHostRegister_r8_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*8_8,flags) end function function hipHostRegister_r8_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_4_nosize #endif ! hipHostRegister_r8_4_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_4_c_int #endif ! hipHostRegister_r8_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*8_8,flags) end function function hipHostRegister_r8_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_4_c_size_t #endif ! hipHostRegister_r8_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*8_8,flags) end function function hipHostRegister_r8_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_5_nosize #endif ! hipHostRegister_r8_5_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_5_c_int #endif ! hipHostRegister_r8_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*8_8,flags) end function function hipHostRegister_r8_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_5_c_size_t #endif ! hipHostRegister_r8_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*8_8,flags) end function function hipHostRegister_r8_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_6_nosize #endif ! hipHostRegister_r8_6_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_6_c_int #endif ! hipHostRegister_r8_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*8_8,flags) end function function hipHostRegister_r8_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_6_c_size_t #endif ! hipHostRegister_r8_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*8_8,flags) end function function hipHostRegister_r8_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_r8_7_nosize #endif ! hipHostRegister_r8_7_nosize = hipHostRegister_(c_loc(hostPtr),8_8*size(hostPtr),flags) end function function hipHostRegister_r8_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_r8_7_c_int #endif ! hipHostRegister_r8_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*8_8,flags) end function function hipHostRegister_r8_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_r8_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_r8_7_c_size_t #endif ! hipHostRegister_r8_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*8_8,flags) end function function hipHostRegister_c4_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_0_nosize #endif ! hipHostRegister_c4_0_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8,flags) end function function hipHostRegister_c4_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_1_nosize #endif ! hipHostRegister_c4_1_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_1_c_int #endif ! hipHostRegister_c4_1_c_int = hipHostRegister_(cptr,length1*2*4_8,flags) end function function hipHostRegister_c4_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_1_c_size_t #endif ! hipHostRegister_c4_1_c_size_t = hipHostRegister_(cptr,length1*2*4_8,flags) end function function hipHostRegister_c4_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_2_nosize #endif ! hipHostRegister_c4_2_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_2_c_int #endif ! hipHostRegister_c4_2_c_int = hipHostRegister_(cptr,length1*length2*2*4_8,flags) end function function hipHostRegister_c4_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_2_c_size_t #endif ! hipHostRegister_c4_2_c_size_t = hipHostRegister_(cptr,length1*length2*2*4_8,flags) end function function hipHostRegister_c4_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_3_nosize #endif ! hipHostRegister_c4_3_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_3_c_int #endif ! hipHostRegister_c4_3_c_int = hipHostRegister_(cptr,length1*length2*length3*2*4_8,flags) end function function hipHostRegister_c4_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_3_c_size_t #endif ! hipHostRegister_c4_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*2*4_8,flags) end function function hipHostRegister_c4_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_4_nosize #endif ! hipHostRegister_c4_4_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_4_c_int #endif ! hipHostRegister_c4_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*2*4_8,flags) end function function hipHostRegister_c4_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_4_c_size_t #endif ! hipHostRegister_c4_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*2*4_8,flags) end function function hipHostRegister_c4_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_5_nosize #endif ! hipHostRegister_c4_5_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_5_c_int #endif ! hipHostRegister_c4_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*2*4_8,flags) end function function hipHostRegister_c4_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_5_c_size_t #endif ! hipHostRegister_c4_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*2*4_8,flags) end function function hipHostRegister_c4_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_6_nosize #endif ! hipHostRegister_c4_6_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_6_c_int #endif ! hipHostRegister_c4_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*2*4_8,flags) end function function hipHostRegister_c4_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_6_c_size_t #endif ! hipHostRegister_c4_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*2*4_8,flags) end function function hipHostRegister_c4_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c4_7_nosize #endif ! hipHostRegister_c4_7_nosize = hipHostRegister_(c_loc(hostPtr),2*4_8*size(hostPtr),flags) end function function hipHostRegister_c4_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c4_7_c_int #endif ! hipHostRegister_c4_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*2*4_8,flags) end function function hipHostRegister_c4_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c4_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c4_7_c_size_t #endif ! hipHostRegister_c4_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*2*4_8,flags) end function function hipHostRegister_c8_0_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_0_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_0_nosize #endif ! hipHostRegister_c8_0_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8,flags) end function function hipHostRegister_c8_1_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_1_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_1_nosize #endif ! hipHostRegister_c8_1_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_1_c_int(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_1_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_1_c_int #endif ! hipHostRegister_c8_1_c_int = hipHostRegister_(cptr,length1*2*8_8,flags) end function function hipHostRegister_c8_1_c_size_t(hostPtr,length1,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_1_c_size_t #endif ! hipHostRegister_c8_1_c_size_t = hipHostRegister_(cptr,length1*2*8_8,flags) end function function hipHostRegister_c8_2_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_2_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_2_nosize #endif ! hipHostRegister_c8_2_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_2_c_int(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_2_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_2_c_int #endif ! hipHostRegister_c8_2_c_int = hipHostRegister_(cptr,length1*length2*2*8_8,flags) end function function hipHostRegister_c8_2_c_size_t(hostPtr,length1,length2,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_2_c_size_t #endif ! hipHostRegister_c8_2_c_size_t = hipHostRegister_(cptr,length1*length2*2*8_8,flags) end function function hipHostRegister_c8_3_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_3_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_3_nosize #endif ! hipHostRegister_c8_3_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_3_c_int(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_3_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_3_c_int #endif ! hipHostRegister_c8_3_c_int = hipHostRegister_(cptr,length1*length2*length3*2*8_8,flags) end function function hipHostRegister_c8_3_c_size_t(hostPtr,length1,length2,length3,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_3_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_3_c_size_t #endif ! hipHostRegister_c8_3_c_size_t = hipHostRegister_(cptr,length1*length2*length3*2*8_8,flags) end function function hipHostRegister_c8_4_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_4_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_4_nosize #endif ! hipHostRegister_c8_4_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_4_c_int(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_4_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_4_c_int #endif ! hipHostRegister_c8_4_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*2*8_8,flags) end function function hipHostRegister_c8_4_c_size_t(hostPtr,length1,length2,length3,length4,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_4_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_4_c_size_t #endif ! hipHostRegister_c8_4_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*2*8_8,flags) end function function hipHostRegister_c8_5_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_5_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_5_nosize #endif ! hipHostRegister_c8_5_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_5_c_int(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_5_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_5_c_int #endif ! hipHostRegister_c8_5_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*2*8_8,flags) end function function hipHostRegister_c8_5_c_size_t(hostPtr,length1,length2,length3,length4,length5,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_5_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_5_c_size_t #endif ! hipHostRegister_c8_5_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*2*8_8,flags) end function function hipHostRegister_c8_6_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_6_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_6_nosize #endif ! hipHostRegister_c8_6_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_6_c_int(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_6_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_6_c_int #endif ! hipHostRegister_c8_6_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*2*8_8,flags) end function function hipHostRegister_c8_6_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_6_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_6_c_size_t #endif ! hipHostRegister_c8_6_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*2*8_8,flags) end function function hipHostRegister_c8_7_nosize(hostPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_7_nosize #else integer(kind(hipSuccess)) :: hipHostRegister_c8_7_nosize #endif ! hipHostRegister_c8_7_nosize = hipHostRegister_(c_loc(hostPtr),2*8_8*size(hostPtr),flags) end function function hipHostRegister_c8_7_c_int(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_int),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_7_c_int #else integer(kind(hipSuccess)) :: hipHostRegister_c8_7_c_int #endif ! hipHostRegister_c8_7_c_int = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*2*8_8,flags) end function function hipHostRegister_c8_7_c_size_t(hostPtr,length1,length2,length3,length4,length5,length6,length7,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:), intent(in) :: hostPtr integer(c_size_t),intent(in) :: length1,length2,length3,length4,length5,length6,length7 integer(kind=4),intent(in) :: flags ! type(c_ptr) :: cptr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostRegister_c8_7_c_size_t #else integer(kind(hipSuccess)) :: hipHostRegister_c8_7_c_size_t #endif ! hipHostRegister_c8_7_c_size_t = hipHostRegister_(cptr,length1*length2*length3*length4*length5*length6*length7*2*8_8,flags) end function function hipHostGetDevicePointer_l_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,intent(inout) :: devPtr logical(c_bool),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_0 #endif ! hipHostGetDevicePointer_l_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:),intent(inout) :: devPtr logical(c_bool),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_1 #endif ! hipHostGetDevicePointer_l_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:),intent(inout) :: devPtr logical(c_bool),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_2 #endif ! hipHostGetDevicePointer_l_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:),intent(inout) :: devPtr logical(c_bool),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_3 #endif ! hipHostGetDevicePointer_l_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:),intent(inout) :: devPtr logical(c_bool),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_4 #endif ! hipHostGetDevicePointer_l_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_5 #endif ! hipHostGetDevicePointer_l_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_6 #endif ! hipHostGetDevicePointer_l_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_l_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_l_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_l_7 #endif ! hipHostGetDevicePointer_l_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,intent(inout) :: devPtr integer(c_int),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_0 #endif ! hipHostGetDevicePointer_i4_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:),intent(inout) :: devPtr integer(c_int),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_1 #endif ! hipHostGetDevicePointer_i4_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:),intent(inout) :: devPtr integer(c_int),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_2 #endif ! hipHostGetDevicePointer_i4_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:),intent(inout) :: devPtr integer(c_int),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_3 #endif ! hipHostGetDevicePointer_i4_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:),intent(inout) :: devPtr integer(c_int),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_4 #endif ! hipHostGetDevicePointer_i4_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_5 #endif ! hipHostGetDevicePointer_i4_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_6 #endif ! hipHostGetDevicePointer_i4_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i4_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i4_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i4_7 #endif ! hipHostGetDevicePointer_i4_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,intent(inout) :: devPtr integer(c_long),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_0 #endif ! hipHostGetDevicePointer_i8_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:),intent(inout) :: devPtr integer(c_long),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_1 #endif ! hipHostGetDevicePointer_i8_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:),intent(inout) :: devPtr integer(c_long),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_2 #endif ! hipHostGetDevicePointer_i8_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:),intent(inout) :: devPtr integer(c_long),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_3 #endif ! hipHostGetDevicePointer_i8_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:),intent(inout) :: devPtr integer(c_long),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_4 #endif ! hipHostGetDevicePointer_i8_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_5 #endif ! hipHostGetDevicePointer_i8_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_6 #endif ! hipHostGetDevicePointer_i8_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_i8_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_i8_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_i8_7 #endif ! hipHostGetDevicePointer_i8_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,intent(inout) :: devPtr real(c_float),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_0 #endif ! hipHostGetDevicePointer_r4_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:),intent(inout) :: devPtr real(c_float),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_1 #endif ! hipHostGetDevicePointer_r4_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:),intent(inout) :: devPtr real(c_float),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_2 #endif ! hipHostGetDevicePointer_r4_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:),intent(inout) :: devPtr real(c_float),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_3 #endif ! hipHostGetDevicePointer_r4_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:),intent(inout) :: devPtr real(c_float),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_4 #endif ! hipHostGetDevicePointer_r4_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr real(c_float),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_5 #endif ! hipHostGetDevicePointer_r4_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_6 #endif ! hipHostGetDevicePointer_r4_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r4_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r4_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r4_7 #endif ! hipHostGetDevicePointer_r4_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,intent(inout) :: devPtr real(c_double),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_0 #endif ! hipHostGetDevicePointer_r8_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:),intent(inout) :: devPtr real(c_double),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_1 #endif ! hipHostGetDevicePointer_r8_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:),intent(inout) :: devPtr real(c_double),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_2 #endif ! hipHostGetDevicePointer_r8_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:),intent(inout) :: devPtr real(c_double),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_3 #endif ! hipHostGetDevicePointer_r8_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:),intent(inout) :: devPtr real(c_double),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_4 #endif ! hipHostGetDevicePointer_r8_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr real(c_double),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_5 #endif ! hipHostGetDevicePointer_r8_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_6 #endif ! hipHostGetDevicePointer_r8_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_r8_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_r8_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_r8_7 #endif ! hipHostGetDevicePointer_r8_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,intent(inout) :: devPtr complex(c_float_complex),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_0 #endif ! hipHostGetDevicePointer_c4_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_1 #endif ! hipHostGetDevicePointer_c4_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_2 #endif ! hipHostGetDevicePointer_c4_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_3 #endif ! hipHostGetDevicePointer_c4_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_4 #endif ! hipHostGetDevicePointer_c4_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_5 #endif ! hipHostGetDevicePointer_c4_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_6 #endif ! hipHostGetDevicePointer_c4_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c4_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c4_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c4_7 #endif ! hipHostGetDevicePointer_c4_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_0(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,intent(inout) :: devPtr complex(c_double_complex),target,intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_0 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_0 #endif ! hipHostGetDevicePointer_c8_0 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_1(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_1 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_1 #endif ! hipHostGetDevicePointer_c8_1 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_2(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_2 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_2 #endif ! hipHostGetDevicePointer_c8_2 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_3(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_3 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_3 #endif ! hipHostGetDevicePointer_c8_3 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_4(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_4 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_4 #endif ! hipHostGetDevicePointer_c8_4 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_5(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_5 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_5 #endif ! hipHostGetDevicePointer_c8_5 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_6(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_6 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_6 #endif ! hipHostGetDevicePointer_c8_6 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetDevicePointer_c8_7(devPtr,hstPtr,flags) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),pointer,dimension(:,:,:,:,:,:,:),intent(inout) :: devPtr complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hstPtr integer(kind=4),intent(in) :: flags #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetDevicePointer_c8_7 #else integer(kind(hipSuccess)) :: hipHostGetDevicePointer_c8_7 #endif ! hipHostGetDevicePointer_c8_7 = hipHostGetDevicePointer_(c_loc(devPtr),c_loc(hstPtr),flags) end function function hipHostGetFlags_l_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_0 #endif ! hipHostGetFlags_l_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_1 #endif ! hipHostGetFlags_l_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_2 #endif ! hipHostGetFlags_l_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_3 #endif ! hipHostGetFlags_l_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_4 #endif ! hipHostGetFlags_l_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_5 #endif ! hipHostGetFlags_l_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_6 #endif ! hipHostGetFlags_l_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_l_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_l_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_l_7 #endif ! hipHostGetFlags_l_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_0 #endif ! hipHostGetFlags_i4_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_1 #endif ! hipHostGetFlags_i4_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_2 #endif ! hipHostGetFlags_i4_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_3 #endif ! hipHostGetFlags_i4_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_4 #endif ! hipHostGetFlags_i4_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_5 #endif ! hipHostGetFlags_i4_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_6 #endif ! hipHostGetFlags_i4_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i4_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i4_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i4_7 #endif ! hipHostGetFlags_i4_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_0 #endif ! hipHostGetFlags_i8_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_1 #endif ! hipHostGetFlags_i8_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_2 #endif ! hipHostGetFlags_i8_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_3 #endif ! hipHostGetFlags_i8_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_4 #endif ! hipHostGetFlags_i8_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_5 #endif ! hipHostGetFlags_i8_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_6 #endif ! hipHostGetFlags_i8_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_i8_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_i8_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_i8_7 #endif ! hipHostGetFlags_i8_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_0 #endif ! hipHostGetFlags_r4_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_1 #endif ! hipHostGetFlags_r4_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_2 #endif ! hipHostGetFlags_r4_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_3 #endif ! hipHostGetFlags_r4_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_4 #endif ! hipHostGetFlags_r4_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_5 #endif ! hipHostGetFlags_r4_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_6 #endif ! hipHostGetFlags_r4_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r4_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r4_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r4_7 #endif ! hipHostGetFlags_r4_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_0 #endif ! hipHostGetFlags_r8_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_1 #endif ! hipHostGetFlags_r8_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_2 #endif ! hipHostGetFlags_r8_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_3 #endif ! hipHostGetFlags_r8_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_4 #endif ! hipHostGetFlags_r8_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_5 #endif ! hipHostGetFlags_r8_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_6 #endif ! hipHostGetFlags_r8_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_r8_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_r8_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_r8_7 #endif ! hipHostGetFlags_r8_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_0 #endif ! hipHostGetFlags_c4_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_1 #endif ! hipHostGetFlags_c4_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_2 #endif ! hipHostGetFlags_c4_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_3 #endif ! hipHostGetFlags_c4_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_4 #endif ! hipHostGetFlags_c4_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_5 #endif ! hipHostGetFlags_c4_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_6 #endif ! hipHostGetFlags_c4_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c4_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c4_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c4_7 #endif ! hipHostGetFlags_c4_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_0(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_0 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_0 #endif ! hipHostGetFlags_c8_0 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_1(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_1 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_1 #endif ! hipHostGetFlags_c8_1 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_2(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_2 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_2 #endif ! hipHostGetFlags_c8_2 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_3(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_3 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_3 #endif ! hipHostGetFlags_c8_3 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_4(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_4 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_4 #endif ! hipHostGetFlags_c8_4 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_5(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_5 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_5 #endif ! hipHostGetFlags_c8_5 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_6(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_6 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_6 #endif ! hipHostGetFlags_c8_6 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostGetFlags_c8_7(flagsPtr,hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(kind=4),intent(out) :: flagsPtr complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostGetFlags_c8_7 #else integer(kind(hipSuccess)) :: hipHostGetFlags_c8_7 #endif ! hipHostGetFlags_c8_7 = hipHostGetFlags_(flagsPtr,c_loc(hostPtr)) end function function hipHostUnregister_l_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_0 #endif ! hipHostUnregister_l_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_1 #endif ! hipHostUnregister_l_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_2 #endif ! hipHostUnregister_l_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_3 #endif ! hipHostUnregister_l_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_4 #endif ! hipHostUnregister_l_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_5 #endif ! hipHostUnregister_l_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_6 #endif ! hipHostUnregister_l_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_l_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_l_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_l_7 #endif ! hipHostUnregister_l_7 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_0 #endif ! hipHostUnregister_i4_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_1 #endif ! hipHostUnregister_i4_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_2 #endif ! hipHostUnregister_i4_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_3 #endif ! hipHostUnregister_i4_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_4 #endif ! hipHostUnregister_i4_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_5 #endif ! hipHostUnregister_i4_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_6 #endif ! hipHostUnregister_i4_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i4_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i4_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_i4_7 #endif ! hipHostUnregister_i4_7 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_0 #endif ! hipHostUnregister_i8_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_1 #endif ! hipHostUnregister_i8_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_2 #endif ! hipHostUnregister_i8_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_3 #endif ! hipHostUnregister_i8_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_4 #endif ! hipHostUnregister_i8_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_5 #endif ! hipHostUnregister_i8_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_6 #endif ! hipHostUnregister_i8_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_i8_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_i8_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_i8_7 #endif ! hipHostUnregister_i8_7 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_0 #endif ! hipHostUnregister_r4_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_1 #endif ! hipHostUnregister_r4_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_2 #endif ! hipHostUnregister_r4_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_3 #endif ! hipHostUnregister_r4_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_4 #endif ! hipHostUnregister_r4_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_5 #endif ! hipHostUnregister_r4_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_6 #endif ! hipHostUnregister_r4_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r4_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r4_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_r4_7 #endif ! hipHostUnregister_r4_7 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_0 #endif ! hipHostUnregister_r8_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_1 #endif ! hipHostUnregister_r8_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_2 #endif ! hipHostUnregister_r8_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_3 #endif ! hipHostUnregister_r8_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_4 #endif ! hipHostUnregister_r8_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_5 #endif ! hipHostUnregister_r8_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_6 #endif ! hipHostUnregister_r8_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_r8_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_r8_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_r8_7 #endif ! hipHostUnregister_r8_7 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_0 #endif ! hipHostUnregister_c4_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_1 #endif ! hipHostUnregister_c4_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_2 #endif ! hipHostUnregister_c4_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_3 #endif ! hipHostUnregister_c4_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_4 #endif ! hipHostUnregister_c4_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_5 #endif ! hipHostUnregister_c4_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_6 #endif ! hipHostUnregister_c4_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c4_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c4_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_c4_7 #endif ! hipHostUnregister_c4_7 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_0(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_0 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_0 #endif ! hipHostUnregister_c8_0 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_1(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_1 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_1 #endif ! hipHostUnregister_c8_1 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_2(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_2 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_2 #endif ! hipHostUnregister_c8_2 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_3(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_3 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_3 #endif ! hipHostUnregister_c8_3 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_4(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_4 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_4 #endif ! hipHostUnregister_c8_4 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_5(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_5 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_5 #endif ! hipHostUnregister_c8_5 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_6(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_6 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_6 #endif ! hipHostUnregister_c8_6 = hipHostUnregister_(c_loc(hostPtr)) end function function hipHostUnregister_c8_7(hostPtr) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: hostPtr #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipHostUnregister_c8_7 #else integer(kind(hipSuccess)) :: hipHostUnregister_c8_7 #endif ! hipHostUnregister_c8_7 = hipHostUnregister_(c_loc(hostPtr)) end function #endif end module hipfort-7.2.4/lib/hipfort/hipfort_types.F900000664000175000017500000003276715207260635021010 0ustar alastairalastairmodule hipfort_types use iso_c_binding implicit none !> Derived type that can be mapped directly to a CUDA/HIP C++ dim3. type,bind(c) :: dim3 integer(c_int) :: x=1,y=1,z=1 end type dim3 #ifdef USE_CUDA_NAMES type,bind(c) :: hipDeviceProp_t ! as of cuda 11.4 character(kind=c_char) :: name(256) character(kind=c_char) :: uuid(16) integer(c_size_t) :: totalGlobalMem integer(c_size_t) :: sharedMemPerBlock integer(c_int) :: regsPerBlock integer(c_int) :: warpSize integer(c_size_t) :: memPitch integer(c_int) :: maxThreadsPerBlock integer(c_int) :: maxThreadsDim(3) integer(c_int) :: maxGridSize(3) integer(c_int) :: clockRate integer(c_size_t) :: totalConstMem integer(c_int) :: major integer(c_int) :: minor integer(c_size_t) :: textureAlignment integer(c_size_t) :: texturePitchAlignment integer(c_int) :: deviceOverlap integer(c_int) :: multiProcessorCount integer(c_int) :: kernelExecTimeoutEnabled integer(c_int) :: integrated integer(c_int) :: canMapHostMemory integer(c_int) :: computeMode integer(c_int) :: maxTexture1D integer(c_int) :: maxTexture1DMipmap integer(c_int) :: maxTexture1DLinear integer(c_int) :: maxTexture2D(2) integer(c_int) :: maxTexture2DMipmap(2) integer(c_int) :: maxTexture2DLinear(3) integer(c_int) :: maxTexture2DGather(2) integer(c_int) :: maxTexture3D(3) integer(c_int) :: maxTexture3DAlt(3) integer(c_int) :: maxTextureCubemap integer(c_int) :: maxTexture1DLayered(2) integer(c_int) :: maxTexture2DLayered(3) integer(c_int) :: maxTextureCubemapLayered(2) integer(c_int) :: maxSurface1D integer(c_int) :: maxSurface2D(2) integer(c_int) :: maxSurface3D(3) integer(c_int) :: maxSurface1DLayered(2) integer(c_int) :: maxSurface2DLayered(3) integer(c_int) :: maxSurfaceCubemap integer(c_int) :: maxSurfaceCubemapLayered(2) integer(c_size_t) :: surfaceAlignment integer(c_int) :: concurrentKernels integer(c_int) :: ECCEnabled integer(c_int) :: pciBusID integer(c_int) :: pciDeviceID integer(c_int) :: pciDomainID integer(c_int) :: tccDriver integer(c_int) :: asyncEngineCount integer(c_int) :: unifiedAddressing integer(c_int) :: memoryClockRate integer(c_int) :: memoryBusWidth integer(c_int) :: l2CacheSize integer(c_int) :: persistingL2CacheMaxSize integer(c_int) :: maxThreadsPerMultiProcessor integer(c_int) :: streamPrioritiesSupported integer(c_int) :: globalL1CacheSupported integer(c_int) :: localL1CacheSupported integer(c_size_t) :: sharedMemPerMultiprocessor integer(c_int) :: regsPerMultiprocessor integer(c_int) :: managedMemory integer(c_int) :: isMultiGpuBoard integer(c_int) :: multiGpuBoardGroupID integer(c_int) :: singleToDoublePrecisionPerfRatio integer(c_int) :: pageableMemoryAccess integer(c_int) :: concurrentManagedAccess integer(c_int) :: computePreemptionSupported integer(c_int) :: canUseHostPointerForRegisteredMem integer(c_int) :: cooperativeLaunch integer(c_int) :: cooperativeMultiDeviceLaunch integer(c_int) :: pageableMemoryAccessUsesHostPageTables integer(c_int) :: directManagedMemAccessFromHost integer(c_int) :: accessPolicyMaxWindowSize character(kind=c_char) :: GPUFORT_PADDING(256) !< GPUFORT :Some extra bytes to prevent seg faults in newer versions end type hipDeviceProp_t #else type,bind(c) :: hipDeviceProp_t ! as of ROCm 4.4 character(kind=c_char) :: name(256) !< Device name. integer(c_size_t) :: totalGlobalMem !< Size of global memory region (in bytes). integer(c_size_t) :: sharedMemPerBlock !< Size of shared memory region (in bytes). integer(c_int) :: regsPerBlock !< Registers per block. integer(c_int) :: warpSize !< Warp size. integer(c_int) :: maxThreadsPerBlock !< Max work items per work group or workgroup max size. integer(c_int) :: maxThreadsDim(3) !< Max number of threads in each dimension (XYZ) of a block. integer(c_int) :: maxGridSize(3) !< Max grid dimensions (XYZ). integer(c_int) :: clockRate !< Max clock frequency of the multiProcessors in khz. integer(c_int) :: memoryClockRate !< Max global memory clock frequency in khz. integer(c_int) :: memoryBusWidth !< Global memory bus width in bits. integer(c_size_t) :: totalConstMem !< Size of shared memory region (in bytes). integer(c_int) :: major !< Major compute capability. On HCC, this is an approximation and features may !< differ from CUDA CC. See the arch feature flags for portable ways to query !< feature caps. integer(c_int) :: minor !< Minor compute capability. On HCC, this is an approximation and features may !< differ from CUDA CC. See the arch feature flags for portable ways to query !< feature caps. integer(c_int) :: multiProcessorCount !< Number of multi-processors (compute units). integer(c_int) :: l2CacheSize !< L2 cache size. integer(c_int) :: maxThreadsPerMultiProcessor !< Maximum resident threads per multi-processor. integer(c_int) :: computeMode !< Compute mode. integer(c_int) :: clockInstructionRate !< Frequency in khz of the timer used by the device-side "clock*" !< instructions. New for HIP. integer(c_int) arch !< Architectural feature flags. New for HIP. integer(c_int) :: concurrentKernels !< Device can possibly execute multiple kernels concurrently. integer(c_int) :: pciDomainID !< PCI Domain ID integer(c_int) :: pciBusID !< PCI Bus ID. integer(c_int) :: pciDeviceID !< PCI Device ID. integer(c_size_t) :: maxSharedMemoryPerMultiProcessor !< Maximum Shared Memory Per Multiprocessor. integer(c_int) :: isMultiGpuBoard !< 1 if device is on a multi-GPU board, 0 if not. integer(c_int) :: canMapHostMemory !< Check whether HIP can map host memory integer(c_int) :: gcnArch !< DEPRECATED: use gcnArchName instead character(kind=c_char) :: gcnArchName(256) !< AMD GCN Arch Name. integer(c_int) :: integrated !< APU vs dGPU integer(c_int) :: cooperativeLaunch !< HIP device supports cooperative launch integer(c_int) :: cooperativeMultiDeviceLaunch !< HIP device supports cooperative launch on multiple devices integer(c_int) :: maxTexture1DLinear !< Maximum size for 1D textures bound to linear memory integer(c_int) :: maxTexture1D !< Maximum number of elements in 1D images integer(c_int) :: maxTexture2D(2) !< Maximum dimensions (width, height) of 2D images, in image elements integer(c_int) :: maxTexture3D(3) !< Maximum dimensions (width, height, depth) of 3D images, in image elements type(c_ptr) :: hdpMemFlushCntl !< Addres of HDP_MEM_COHERENCY_FLUSH_CNTL register type(c_ptr) :: hdpRegFlushCntl !< Addres of HDP_REG_COHERENCY_FLUSH_CNTL register integer(c_size_t) :: memPitch ! Successful completion. enumerator :: hipErrorInvalidValue = 1 !> One or more of the parameters passed to the API call is NULL or not in an acceptable range. enumerator :: hipErrorOutOfMemory = 2 !> Out of memory range. enumerator :: hipErrorMemoryAllocation = 2 !> Memory allocation error. enumerator :: hipErrorNotInitialized = 3 !> Invalid not initialized enumerator :: hipErrorInitializationError = 3 enumerator :: hipErrorDeinitialized = 4 enumerator :: hipErrorProfilerDisabled = 5 enumerator :: hipErrorProfilerNotInitialized = 6 enumerator :: hipErrorProfilerAlreadyStarted = 7 enumerator :: hipErrorProfilerAlreadyStopped = 8 enumerator :: hipErrorInvalidConfiguration = 9 enumerator :: hipErrorInvalidPitchValue = 12 enumerator :: hipErrorInvalidSymbol = 13 enumerator :: hipErrorInvalidDevicePointer = 17 enumerator :: hipErrorInvalidMemcpyDirection = 21 enumerator :: hipErrorInsufficientDriver = 35 enumerator :: hipErrorMissingConfiguration = 52 enumerator :: hipErrorPriorLaunchFailure = 53 enumerator :: hipErrorInvalidDeviceFunction = 98 enumerator :: hipErrorNoDevice = 100 enumerator :: hipErrorInvalidDevice = 101 enumerator :: hipErrorInvalidImage = 200 enumerator :: hipErrorInvalidContext = 201 enumerator :: hipErrorContextAlreadyCurrent = 202 enumerator :: hipErrorMapFailed = 205 enumerator :: hipErrorMapBufferObjectFailed = 205 enumerator :: hipErrorUnmapFailed = 206 enumerator :: hipErrorArrayIsMapped = 207 enumerator :: hipErrorAlreadyMapped = 208 enumerator :: hipErrorNoBinaryForGpu = 209 enumerator :: hipErrorAlreadyAcquired = 210 enumerator :: hipErrorNotMapped = 211 enumerator :: hipErrorNotMappedAsArray = 212 enumerator :: hipErrorNotMappedAsPointer = 213 enumerator :: hipErrorECCNotCorrectable = 214 enumerator :: hipErrorUnsupportedLimit = 215 enumerator :: hipErrorContextAlreadyInUse = 216 enumerator :: hipErrorPeerAccessUnsupported = 217 enumerator :: hipErrorInvalidKernelFile = 218 enumerator :: hipErrorInvalidGraphicsContext = 219 enumerator :: hipErrorInvalidSource = 300 enumerator :: hipErrorFileNotFound = 301 enumerator :: hipErrorSharedObjectSymbolNotFound = 302 enumerator :: hipErrorSharedObjectInitFailed = 303 enumerator :: hipErrorOperatingSystem = 304 enumerator :: hipErrorInvalidHandle = 400 enumerator :: hipErrorInvalidResourceHandle = 400 enumerator :: hipErrorIllegalState = 401 enumerator :: hipErrorNotFound = 500 enumerator :: hipErrorNotReady = 600 enumerator :: hipErrorIllegalAddress = 700 enumerator :: hipErrorLaunchOutOfResources = 701 enumerator :: hipErrorLaunchTimeOut = 702 enumerator :: hipErrorPeerAccessAlreadyEnabled = 704 enumerator :: hipErrorPeerAccessNotEnabled = 705 enumerator :: hipErrorSetOnActiveProcess = 708 enumerator :: hipErrorContextIsDestroyed = 709 enumerator :: hipErrorAssert = 710 enumerator :: hipErrorHostMemoryAlreadyRegistered = 712 enumerator :: hipErrorHostMemoryNotRegistered = 713 enumerator :: hipErrorLaunchFailure = 719 enumerator :: hipErrorCooperativeLaunchTooLarge = 720 enumerator :: hipErrorNotSupported = 801 enumerator :: hipErrorStreamCaptureUnsupported = 900 enumerator :: hipErrorStreamCaptureInvalidated = 901 enumerator :: hipErrorStreamCaptureMerge = 902 enumerator :: hipErrorStreamCaptureUnmatched = 903 enumerator :: hipErrorStreamCaptureUnjoined = 904 enumerator :: hipErrorStreamCaptureIsolation = 905 enumerator :: hipErrorStreamCaptureImplicit = 906 enumerator :: hipErrorCapturedEvent = 907 enumerator :: hipErrorStreamCaptureWrongThread = 908 enumerator :: hipErrorGraphExecUpdateFailure = 910 enumerator :: hipErrorUnknown = 999 enumerator :: hipErrorRuntimeMemory = 1052 enumerator :: hipErrorRuntimeOther = 1053 enumerator :: hipErrorTbd end enum enum, bind(c) enumerator :: hipDeviceAttributeCudaCompatibleBegin = 0 enumerator :: hipDeviceAttributeEccEnabled = hipDeviceAttributeCudaCompatibleBegin enumerator :: hipDeviceAttributeAccessPolicyMaxWindowSize enumerator :: hipDeviceAttributeAsyncEngineCount enumerator :: hipDeviceAttributeCanMapHostMemory enumerator :: hipDeviceAttributeCanUseHostPointerForRegisteredMem enumerator :: hipDeviceAttributeClockRate enumerator :: hipDeviceAttributeComputeMode enumerator :: hipDeviceAttributeComputePreemptionSupported enumerator :: hipDeviceAttributeConcurrentKernels enumerator :: hipDeviceAttributeConcurrentManagedAccess enumerator :: hipDeviceAttributeCooperativeLaunch enumerator :: hipDeviceAttributeCooperativeMultiDeviceLaunch enumerator :: hipDeviceAttributeDeviceOverlap enumerator :: hipDeviceAttributeDirectManagedMemAccessFromHost enumerator :: hipDeviceAttributeGlobalL1CacheSupported enumerator :: hipDeviceAttributeHostNativeAtomicSupported enumerator :: hipDeviceAttributeIntegrated enumerator :: hipDeviceAttributeIsMultiGpuBoard enumerator :: hipDeviceAttributeKernelExecTimeout enumerator :: hipDeviceAttributeL2CacheSize enumerator :: hipDeviceAttributeLocalL1CacheSupported enumerator :: hipDeviceAttributeLuid enumerator :: hipDeviceAttributeLuidDeviceNodeMask enumerator :: hipDeviceAttributeComputeCapabilityMajor enumerator :: hipDeviceAttributeManagedMemory enumerator :: hipDeviceAttributeMaxBlocksPerMultiProcessor enumerator :: hipDeviceAttributeMaxBlockDimX enumerator :: hipDeviceAttributeMaxBlockDimY enumerator :: hipDeviceAttributeMaxBlockDimZ enumerator :: hipDeviceAttributeMaxGridDimX enumerator :: hipDeviceAttributeMaxGridDimY enumerator :: hipDeviceAttributeMaxGridDimZ enumerator :: hipDeviceAttributeMaxSurface1D enumerator :: hipDeviceAttributeMaxSurface1DLayered enumerator :: hipDeviceAttributeMaxSurface2D enumerator :: hipDeviceAttributeMaxSurface2DLayered enumerator :: hipDeviceAttributeMaxSurface3D enumerator :: hipDeviceAttributeMaxSurfaceCubemap enumerator :: hipDeviceAttributeMaxSurfaceCubemapLayered enumerator :: hipDeviceAttributeMaxTexture1DWidth enumerator :: hipDeviceAttributeMaxTexture1DLayered enumerator :: hipDeviceAttributeMaxTexture1DLinear enumerator :: hipDeviceAttributeMaxTexture1DMipmap enumerator :: hipDeviceAttributeMaxTexture2DWidth enumerator :: hipDeviceAttributeMaxTexture2DHeight enumerator :: hipDeviceAttributeMaxTexture2DGather enumerator :: hipDeviceAttributeMaxTexture2DLayered enumerator :: hipDeviceAttributeMaxTexture2DLinear enumerator :: hipDeviceAttributeMaxTexture2DMipmap enumerator :: hipDeviceAttributeMaxTexture3DWidth enumerator :: hipDeviceAttributeMaxTexture3DHeight enumerator :: hipDeviceAttributeMaxTexture3DDepth enumerator :: hipDeviceAttributeMaxTexture3DAlt enumerator :: hipDeviceAttributeMaxTextureCubemap enumerator :: hipDeviceAttributeMaxTextureCubemapLayered enumerator :: hipDeviceAttributeMaxThreadsDim enumerator :: hipDeviceAttributeMaxThreadsPerBlock enumerator :: hipDeviceAttributeMaxThreadsPerMultiProcessor enumerator :: hipDeviceAttributeMaxPitch enumerator :: hipDeviceAttributeMemoryBusWidth enumerator :: hipDeviceAttributeMemoryClockRate enumerator :: hipDeviceAttributeComputeCapabilityMinor enumerator :: hipDeviceAttributeMultiGpuBoardGroupID enumerator :: hipDeviceAttributeMultiprocessorCount enumerator :: hipDeviceAttributeName enumerator :: hipDeviceAttributePageableMemoryAccess enumerator :: hipDeviceAttributePageableMemoryAccessUsesHostPageTables enumerator :: hipDeviceAttributePciBusId enumerator :: hipDeviceAttributePciDeviceId enumerator :: hipDeviceAttributePciDomainID enumerator :: hipDeviceAttributePersistingL2CacheMaxSize enumerator :: hipDeviceAttributeMaxRegistersPerBlock enumerator :: hipDeviceAttributeMaxRegistersPerMultiprocessor enumerator :: hipDeviceAttributeReservedSharedMemPerBlock enumerator :: hipDeviceAttributeMaxSharedMemoryPerBlock enumerator :: hipDeviceAttributeSharedMemPerBlockOptin enumerator :: hipDeviceAttributeSharedMemPerMultiprocessor enumerator :: hipDeviceAttributeSingleToDoublePrecisionPerfRatio enumerator :: hipDeviceAttributeStreamPrioritiesSupported enumerator :: hipDeviceAttributeSurfaceAlignment enumerator :: hipDeviceAttributeTccDriver enumerator :: hipDeviceAttributeTextureAlignment enumerator :: hipDeviceAttributeTexturePitchAlignment enumerator :: hipDeviceAttributeTotalConstantMemory enumerator :: hipDeviceAttributeTotalGlobalMem enumerator :: hipDeviceAttributeUnifiedAddressing enumerator :: hipDeviceAttributeUuid enumerator :: hipDeviceAttributeWarpSize enumerator :: hipDeviceAttributeCudaCompatibleEnd = 9999 enumerator :: hipDeviceAttributeAmdSpecificBegin = 10000 enumerator :: hipDeviceAttributeClockInstructionRate = hipDeviceAttributeAmdSpecificBegin enumerator :: hipDeviceAttributeArch enumerator :: hipDeviceAttributeMaxSharedMemoryPerMultiprocessor enumerator :: hipDeviceAttributeGcnArch enumerator :: hipDeviceAttributeGcnArchName enumerator :: hipDeviceAttributeHdpMemFlushCntl enumerator :: hipDeviceAttributeHdpRegFlushCntl enumerator :: hipDeviceAttributeCooperativeMultiDeviceUnmatchedFunc enumerator :: hipDeviceAttributeCooperativeMultiDeviceUnmatchedGridDim enumerator :: hipDeviceAttributeCooperativeMultiDeviceUnmatchedBlockDim enumerator :: hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem enumerator :: hipDeviceAttributeIsLargeBar enumerator :: hipDeviceAttributeAsicRevision enumerator :: hipDeviceAttributeCanUseStreamWaitValue enumerator :: hipDeviceAttributeImageSupport enumerator :: hipDeviceAttributeAmdSpecificEnd = 19999 enumerator :: hipDeviceAttributeVendorSpecificBegin = 20000 end enum enum, bind(c) enumerator :: hipComputeModeDefault = 0 enumerator :: hipComputeModeExclusive = 1 enumerator :: hipComputeModeProhibited = 2 enumerator :: hipComputeModeExclusiveProcess = 3 end enum enum, bind(c) enumerator :: hipDevP2PAttrPerformanceRank = 0 enumerator :: hipDevP2PAttrAccessSupported enumerator :: hipDevP2PAttrNativeAtomicSupported enumerator :: hipDevP2PAttrHipArrayAccessSupported end enum enum, bind(c) enumerator :: hipLimitPrintfFifoSize = 1 enumerator :: hipLimitMallocHeapSize = 2 end enum enum, bind(c) enumerator :: hipMemAdviseSetReadMostly = 1 enumerator :: hipMemAdviseUnsetReadMostly = 2 enumerator :: hipMemAdviseSetPreferredLocation = 3 enumerator :: hipMemAdviseUnsetPreferredLocation = 4 enumerator :: hipMemAdviseSetAccessedBy = 5 enumerator :: hipMemAdviseUnsetAccessedBy = 6 enumerator :: hipMemAdviseSetCoarseGrain = 100 enumerator :: hipMemAdviseUnsetCoarseGrain = 101 end enum enum, bind(c) enumerator :: hipMemRangeCoherencyModeFineGrain = 0 enumerator :: hipMemRangeCoherencyModeCoarseGrain = 1 enumerator :: hipMemRangeCoherencyModeIndeterminate = 2 end enum enum, bind(c) enumerator :: hipMemRangeAttributeReadMostly = 1 enumerator :: hipMemRangeAttributePreferredLocation = 2 enumerator :: hipMemRangeAttributeAccessedBy = 3 enumerator :: hipMemRangeAttributeLastPrefetchLocation = 4 enumerator :: hipMemRangeAttributeCoherencyMode = 100 end enum enum, bind(c) enumerator :: hipJitOptionMaxRegisters = 0 enumerator :: hipJitOptionThreadsPerBlock enumerator :: hipJitOptionWallTime enumerator :: hipJitOptionInfoLogBuffer enumerator :: hipJitOptionInfoLogBufferSizeBytes enumerator :: hipJitOptionErrorLogBuffer enumerator :: hipJitOptionErrorLogBufferSizeBytes enumerator :: hipJitOptionOptimizationLevel enumerator :: hipJitOptionTargetFromContext enumerator :: hipJitOptionTarget enumerator :: hipJitOptionFallbackStrategy enumerator :: hipJitOptionGenerateDebugInfo enumerator :: hipJitOptionLogVerbose enumerator :: hipJitOptionGenerateLineInfo enumerator :: hipJitOptionCacheMode enumerator :: hipJitOptionSm3xOpt enumerator :: hipJitOptionFastCompile enumerator :: hipJitOptionNumOptions end enum enum, bind(c) enumerator :: hipFuncAttributeMaxDynamicSharedMemorySize = 8 enumerator :: hipFuncAttributePreferredSharedMemoryCarveout = 9 enumerator :: hipFuncAttributeMax end enum enum, bind(c) enumerator :: hipFuncCachePreferNone enumerator :: hipFuncCachePreferShared enumerator :: hipFuncCachePreferL1 enumerator :: hipFuncCachePreferEqual end enum enum, bind(c) enumerator :: hipSharedMemBankSizeDefault enumerator :: hipSharedMemBankSizeFourByte enumerator :: hipSharedMemBankSizeEightByte end enum enum, bind(c) enumerator :: hipExternalMemoryHandleTypeOpaqueFd = 1 enumerator :: hipExternalMemoryHandleTypeOpaqueWin32 = 2 enumerator :: hipExternalMemoryHandleTypeOpaqueWin32Kmt = 3 enumerator :: hipExternalMemoryHandleTypeD3D12Heap = 4 enumerator :: hipExternalMemoryHandleTypeD3D12Resource = 5 enumerator :: hipExternalMemoryHandleTypeD3D11Resource = 6 enumerator :: hipExternalMemoryHandleTypeD3D11ResourceKmt = 7 end enum enum, bind(c) enumerator :: hipExternalSemaphoreHandleTypeOpaqueFd = 1 enumerator :: hipExternalSemaphoreHandleTypeOpaqueWin32 = 2 enumerator :: hipExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3 enumerator :: hipExternalSemaphoreHandleTypeD3D12Fence = 4 end enum enum, bind(c) enumerator :: hipGLDeviceListAll = 1 enumerator :: hipGLDeviceListCurrentFrame = 2 enumerator :: hipGLDeviceListNextFrame = 3 end enum enum, bind(c) enumerator :: hipGraphicsRegisterFlagsNone = 0 enumerator :: hipGraphicsRegisterFlagsReadOnly = 1 enumerator :: hipGraphicsRegisterFlagsWriteDiscard = 2 enumerator :: hipGraphicsRegisterFlagsSurfaceLoadStore = 4 enumerator :: hipGraphicsRegisterFlagsTextureGather = 8 end enum enum, bind(c) enumerator :: hipGraphNodeTypeKernel = 1 enumerator :: hipGraphNodeTypeMemcpy = 2 enumerator :: hipGraphNodeTypeMemset = 3 enumerator :: hipGraphNodeTypeHost = 4 enumerator :: hipGraphNodeTypeGraph = 5 enumerator :: hipGraphNodeTypeEmpty = 6 enumerator :: hipGraphNodeTypeWaitEvent = 7 enumerator :: hipGraphNodeTypeEventRecord = 8 enumerator :: hipGraphNodeTypeMemcpy1D = 9 enumerator :: hipGraphNodeTypeMemcpyFromSymbol = 10 enumerator :: hipGraphNodeTypeMemcpyToSymbol = 11 enumerator :: hipGraphNodeTypeCount end enum enum, bind(c) enumerator :: hipGraphExecUpdateSuccess = 0 enumerator :: hipGraphExecUpdateError = 1 enumerator :: hipGraphExecUpdateErrorTopologyChanged = 2 enumerator :: hipGraphExecUpdateErrorNodeTypeChanged = 3 enumerator :: hipGraphExecUpdateErrorFunctionChanged = 4 enumerator :: hipGraphExecUpdateErrorParametersChanged = 5 enumerator :: hipGraphExecUpdateErrorNotSupported = 6 enumerator :: hipGraphExecUpdateErrorUnsupportedFunctionChange = 7 end enum enum, bind(c) enumerator :: hipStreamCaptureModeGlobal = 0 enumerator :: hipStreamCaptureModeThreadLocal enumerator :: hipStreamCaptureModeRelaxed end enum enum, bind(c) enumerator :: hipStreamCaptureStatusNone = 0 enumerator :: hipStreamCaptureStatusActive enumerator :: hipStreamCaptureStatusInvalidated end enum enum, bind(c) enumerator :: hipStreamAddCaptureDependencies = 0 enumerator :: hipStreamSetCaptureDependencies end enum enum, bind(c) enumerator :: hipChannelFormatKindSigned = 0 enumerator :: hipChannelFormatKindUnsigned = 1 enumerator :: hipChannelFormatKindFloat = 2 enumerator :: hipChannelFormatKindNone = 3 end enum enum, bind(c) enumerator :: HIP_AD_FORMAT_UNSIGNED_INT8 = 1 enumerator :: HIP_AD_FORMAT_UNSIGNED_INT16 = 2 enumerator :: HIP_AD_FORMAT_UNSIGNED_INT32 = 3 enumerator :: HIP_AD_FORMAT_SIGNED_INT8 = 8 enumerator :: HIP_AD_FORMAT_SIGNED_INT16 = 9 enumerator :: HIP_AD_FORMAT_SIGNED_INT32 = 10 enumerator :: HIP_AD_FORMAT_HALF = 16 enumerator :: HIP_AD_FORMAT_FLOAT = 32 end enum enum, bind(c) enumerator :: hipResourceTypeArray = 0 enumerator :: hipResourceTypeMipmappedArray = 1 enumerator :: hipResourceTypeLinear = 2 enumerator :: hipResourceTypePitch2D = 3 end enum enum, bind(c) enumerator :: HIP_RESOURCE_TYPE_ARRAY = 0 enumerator :: HIP_RESOURCE_TYPE_MIPMAPPED_ARRAY = 1 enumerator :: HIP_RESOURCE_TYPE_LINEAR = 2 enumerator :: HIP_RESOURCE_TYPE_PITCH2D = 3 end enum enum, bind(c) enumerator :: HIP_TR_ADDRESS_MODE_WRAP = 0 enumerator :: HIP_TR_ADDRESS_MODE_CLAMP = 1 enumerator :: HIP_TR_ADDRESS_MODE_MIRROR = 2 enumerator :: HIP_TR_ADDRESS_MODE_BORDER = 3 end enum enum, bind(c) enumerator :: HIP_TR_FILTER_MODE_POINT = 0 enumerator :: HIP_TR_FILTER_MODE_LINEAR = 1 end enum enum, bind(c) enumerator :: hipResViewFormatNone = 0 enumerator :: hipResViewFormatUnsignedChar1 = 1 enumerator :: hipResViewFormatUnsignedChar2 = 2 enumerator :: hipResViewFormatUnsignedChar4 = 3 enumerator :: hipResViewFormatSignedChar1 = 4 enumerator :: hipResViewFormatSignedChar2 = 5 enumerator :: hipResViewFormatSignedChar4 = 6 enumerator :: hipResViewFormatUnsignedShort1 = 7 enumerator :: hipResViewFormatUnsignedShort2 = 8 enumerator :: hipResViewFormatUnsignedShort4 = 9 enumerator :: hipResViewFormatSignedShort1 = 10 enumerator :: hipResViewFormatSignedShort2 = 11 enumerator :: hipResViewFormatSignedShort4 = 12 enumerator :: hipResViewFormatUnsignedInt1 = 13 enumerator :: hipResViewFormatUnsignedInt2 = 14 enumerator :: hipResViewFormatUnsignedInt4 = 15 enumerator :: hipResViewFormatSignedInt1 = 16 enumerator :: hipResViewFormatSignedInt2 = 17 enumerator :: hipResViewFormatSignedInt4 = 18 enumerator :: hipResViewFormatHalf1 = 19 enumerator :: hipResViewFormatHalf2 = 20 enumerator :: hipResViewFormatHalf4 = 21 enumerator :: hipResViewFormatFloat1 = 22 enumerator :: hipResViewFormatFloat2 = 23 enumerator :: hipResViewFormatFloat4 = 24 enumerator :: hipResViewFormatUnsignedBlockCompressed1 = 25 enumerator :: hipResViewFormatUnsignedBlockCompressed2 = 26 enumerator :: hipResViewFormatUnsignedBlockCompressed3 = 27 enumerator :: hipResViewFormatUnsignedBlockCompressed4 = 28 enumerator :: hipResViewFormatSignedBlockCompressed4 = 29 enumerator :: hipResViewFormatUnsignedBlockCompressed5 = 30 enumerator :: hipResViewFormatSignedBlockCompressed5 = 31 enumerator :: hipResViewFormatUnsignedBlockCompressed6H = 32 enumerator :: hipResViewFormatSignedBlockCompressed6H = 33 enumerator :: hipResViewFormatUnsignedBlockCompressed7 = 34 end enum enum, bind(c) enumerator :: HIP_RES_VIEW_FORMAT_NONE = 0 enumerator :: HIP_RES_VIEW_FORMAT_UINT_1X8 = 1 enumerator :: HIP_RES_VIEW_FORMAT_UINT_2X8 = 2 enumerator :: HIP_RES_VIEW_FORMAT_UINT_4X8 = 3 enumerator :: HIP_RES_VIEW_FORMAT_SINT_1X8 = 4 enumerator :: HIP_RES_VIEW_FORMAT_SINT_2X8 = 5 enumerator :: HIP_RES_VIEW_FORMAT_SINT_4X8 = 6 enumerator :: HIP_RES_VIEW_FORMAT_UINT_1X16 = 7 enumerator :: HIP_RES_VIEW_FORMAT_UINT_2X16 = 8 enumerator :: HIP_RES_VIEW_FORMAT_UINT_4X16 = 9 enumerator :: HIP_RES_VIEW_FORMAT_SINT_1X16 = 10 enumerator :: HIP_RES_VIEW_FORMAT_SINT_2X16 = 11 enumerator :: HIP_RES_VIEW_FORMAT_SINT_4X16 = 12 enumerator :: HIP_RES_VIEW_FORMAT_UINT_1X32 = 13 enumerator :: HIP_RES_VIEW_FORMAT_UINT_2X32 = 14 enumerator :: HIP_RES_VIEW_FORMAT_UINT_4X32 = 15 enumerator :: HIP_RES_VIEW_FORMAT_SINT_1X32 = 16 enumerator :: HIP_RES_VIEW_FORMAT_SINT_2X32 = 17 enumerator :: HIP_RES_VIEW_FORMAT_SINT_4X32 = 18 enumerator :: HIP_RES_VIEW_FORMAT_FLOAT_1X16 = 19 enumerator :: HIP_RES_VIEW_FORMAT_FLOAT_2X16 = 20 enumerator :: HIP_RES_VIEW_FORMAT_FLOAT_4X16 = 21 enumerator :: HIP_RES_VIEW_FORMAT_FLOAT_1X32 = 22 enumerator :: HIP_RES_VIEW_FORMAT_FLOAT_2X32 = 23 enumerator :: HIP_RES_VIEW_FORMAT_FLOAT_4X32 = 24 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC1 = 25 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC2 = 26 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC3 = 27 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC4 = 28 enumerator :: HIP_RES_VIEW_FORMAT_SIGNED_BC4 = 29 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC5 = 30 enumerator :: HIP_RES_VIEW_FORMAT_SIGNED_BC5 = 31 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC6H = 32 enumerator :: HIP_RES_VIEW_FORMAT_SIGNED_BC6H = 33 enumerator :: HIP_RES_VIEW_FORMAT_UNSIGNED_BC7 = 34 end enum enum, bind(c) enumerator :: hipMemcpyHostToHost = 0 enumerator :: hipMemcpyHostToDevice = 1 enumerator :: hipMemcpyDeviceToHost = 2 enumerator :: hipMemcpyDeviceToDevice = 3 enumerator :: hipMemcpyDefault = 4 end enum enum, bind(c) enumerator :: HIP_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK enumerator :: HIP_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES enumerator :: HIP_FUNC_ATTRIBUTE_CONST_SIZE_BYTES enumerator :: HIP_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES enumerator :: HIP_FUNC_ATTRIBUTE_NUM_REGS enumerator :: HIP_FUNC_ATTRIBUTE_PTX_VERSION enumerator :: HIP_FUNC_ATTRIBUTE_BINARY_VERSION enumerator :: HIP_FUNC_ATTRIBUTE_CACHE_MODE_CA enumerator :: HIP_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES enumerator :: HIP_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT enumerator :: HIP_FUNC_ATTRIBUTE_MAX end enum enum, bind(c) enumerator :: HIP_POINTER_ATTRIBUTE_CONTEXT = 1 enumerator :: HIP_POINTER_ATTRIBUTE_MEMORY_TYPE enumerator :: HIP_POINTER_ATTRIBUTE_DEVICE_POINTER enumerator :: HIP_POINTER_ATTRIBUTE_HOST_POINTER enumerator :: HIP_POINTER_ATTRIBUTE_P2P_TOKENS enumerator :: HIP_POINTER_ATTRIBUTE_SYNC_MEMOPS enumerator :: HIP_POINTER_ATTRIBUTE_BUFFER_ID enumerator :: HIP_POINTER_ATTRIBUTE_IS_MANAGED enumerator :: HIP_POINTER_ATTRIBUTE_DEVICE_ORDINAL enumerator :: HIP_POINTER_ATTRIBUTE_IS_LEGACY_HIP_IPC_CAPABLE enumerator :: HIP_POINTER_ATTRIBUTE_RANGE_START_ADDR enumerator :: HIP_POINTER_ATTRIBUTE_RANGE_SIZE enumerator :: HIP_POINTER_ATTRIBUTE_MAPPED enumerator :: HIP_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES enumerator :: HIP_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE enumerator :: HIP_POINTER_ATTRIBUTE_ACCESS_FLAGS enumerator :: HIP_POINTER_ATTRIBUTE_MEMPOOL_HANDLE end enum enum, bind(c) enumerator :: hipAddressModeWrap = 0 enumerator :: hipAddressModeClamp = 1 enumerator :: hipAddressModeMirror = 2 enumerator :: hipAddressModeBorder = 3 end enum enum, bind(c) enumerator :: hipFilterModePoint = 0 enumerator :: hipFilterModeLinear = 1 end enum enum, bind(c) enumerator :: hipReadModeElementType = 0 enumerator :: hipReadModeNormalizedFloat = 1 end enum enum, bind(c) enumerator :: HIP_R_32F = 0 enumerator :: HIP_R_64F = 1 enumerator :: HIP_R_16F = 2 enumerator :: HIP_R_8I = 3 enumerator :: HIP_C_32F = 4 enumerator :: HIP_C_64F = 5 enumerator :: HIP_C_16F = 6 enumerator :: HIP_C_8I = 7 enumerator :: HIP_R_8U = 8 enumerator :: HIP_C_8U = 9 enumerator :: HIP_R_32I = 10 enumerator :: HIP_C_32I = 11 enumerator :: HIP_R_32U = 12 enumerator :: HIP_C_32U = 13 enumerator :: HIP_R_16BF = 14 enumerator :: HIP_C_16BF = 15 enumerator :: HIP_R_4I = 16 enumerator :: HIP_C_4I = 17 enumerator :: HIP_R_4U = 18 enumerator :: HIP_C_4U = 19 enumerator :: HIP_R_16I = 20 enumerator :: HIP_C_16I = 21 enumerator :: HIP_R_16U = 22 enumerator :: HIP_C_16U = 23 enumerator :: HIP_R_64I = 24 enumerator :: HIP_C_64I = 25 enumerator :: HIP_R_64U = 26 enumerator :: HIP_C_64U = 27 enumerator :: HIP_R_8F_E4M3_FNUZ = 1000 enumerator :: HIP_R_8F_E5M2_FNUZ = 1001 end enum enum, bind(c) enumerator :: HIP_LIBRARY_MAJOR_VERSION enumerator :: HIP_LIBRARY_MINOR_VERSION enumerator :: HIP_LIBRARY_PATCH_LEVEL end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_enums hipfort-7.2.4/lib/hipfort/hipfort_hipmemcpy.F900000664000175000017500000123425615207260635021635 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipmemcpy interface hipMemcpy !> !> @brief Copy data from src to dest. !> !> It supports memory from host to device, !> device to host, device to device and host to host !> The src and dest must not overlap. !> !> For hipMemcpy, the copy is always performed by the current device (set by hipSetDevice). !> For multi-gpu or peer-to-peer configurations, it is recommended to set the current device to the !> device where the src data is physically located. For optimal peer-to-peer copies, the copy device !> must be able to access the src and dest pointers (by calling hipDeviceEnablePeerAccess with copy !> agent as the current device and srcdest as the peerDevice argument. if this is not done, the !> hipMemcpy will still work, but will perform the copy using a staging buffer on the host. !> Calling hipMemcpy with dest and src pointers that do not match the hipMemcpyKind results in !> undefined behavior. !> !> @param[out] dest Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> @param[in] myKind Memory copy type !> @return hipSuccess,hipErrorInvalidValue,hipErrorMemoryFree,hipErrorUnknowni !> !> @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost, !> hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA, !> hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD, !> hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync, !> hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo, !> hipMemHostAlloc, hipMemHostGetDevicePointer !> #ifdef USE_CUDA_NAMES function hipMemcpy_(dest,src,sizeBytes,myKind) bind(c, name="cudaMemcpy") #else function hipMemcpy_(dest,src,sizeBytes,myKind) bind(c, name="hipMemcpy") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_ #else integer(kind(hipSuccess)) :: hipMemcpy_ #endif type(c_ptr),value :: dest type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes integer(kind(hipMemcpyHostToHost)),value :: myKind end function #ifdef USE_FPOINTER_INTERFACES module procedure hipMemcpy_l_0,& hipMemcpy_l_0_c_int,& hipMemcpy_l_0_c_size_t,& hipMemcpy_l_1,& hipMemcpy_l_1_c_int,& hipMemcpy_l_1_c_size_t,& hipMemcpy_l_2,& hipMemcpy_l_2_c_int,& hipMemcpy_l_2_c_size_t,& hipMemcpy_l_3,& hipMemcpy_l_3_c_int,& hipMemcpy_l_3_c_size_t,& hipMemcpy_l_4,& hipMemcpy_l_4_c_int,& hipMemcpy_l_4_c_size_t,& hipMemcpy_l_5,& hipMemcpy_l_5_c_int,& hipMemcpy_l_5_c_size_t,& hipMemcpy_l_6,& hipMemcpy_l_6_c_int,& hipMemcpy_l_6_c_size_t,& hipMemcpy_l_7,& hipMemcpy_l_7_c_int,& hipMemcpy_l_7_c_size_t,& hipMemcpy_i4_0,& hipMemcpy_i4_0_c_int,& hipMemcpy_i4_0_c_size_t,& hipMemcpy_i4_1,& hipMemcpy_i4_1_c_int,& hipMemcpy_i4_1_c_size_t,& hipMemcpy_i4_2,& hipMemcpy_i4_2_c_int,& hipMemcpy_i4_2_c_size_t,& hipMemcpy_i4_3,& hipMemcpy_i4_3_c_int,& hipMemcpy_i4_3_c_size_t,& hipMemcpy_i4_4,& hipMemcpy_i4_4_c_int,& hipMemcpy_i4_4_c_size_t,& hipMemcpy_i4_5,& hipMemcpy_i4_5_c_int,& hipMemcpy_i4_5_c_size_t,& hipMemcpy_i4_6,& hipMemcpy_i4_6_c_int,& hipMemcpy_i4_6_c_size_t,& hipMemcpy_i4_7,& hipMemcpy_i4_7_c_int,& hipMemcpy_i4_7_c_size_t,& hipMemcpy_i8_0,& hipMemcpy_i8_0_c_int,& hipMemcpy_i8_0_c_size_t,& hipMemcpy_i8_1,& hipMemcpy_i8_1_c_int,& hipMemcpy_i8_1_c_size_t,& hipMemcpy_i8_2,& hipMemcpy_i8_2_c_int,& hipMemcpy_i8_2_c_size_t,& hipMemcpy_i8_3,& hipMemcpy_i8_3_c_int,& hipMemcpy_i8_3_c_size_t,& hipMemcpy_i8_4,& hipMemcpy_i8_4_c_int,& hipMemcpy_i8_4_c_size_t,& hipMemcpy_i8_5,& hipMemcpy_i8_5_c_int,& hipMemcpy_i8_5_c_size_t,& hipMemcpy_i8_6,& hipMemcpy_i8_6_c_int,& hipMemcpy_i8_6_c_size_t,& hipMemcpy_i8_7,& hipMemcpy_i8_7_c_int,& hipMemcpy_i8_7_c_size_t,& hipMemcpy_r4_0,& hipMemcpy_r4_0_c_int,& hipMemcpy_r4_0_c_size_t,& hipMemcpy_r4_1,& hipMemcpy_r4_1_c_int,& hipMemcpy_r4_1_c_size_t,& hipMemcpy_r4_2,& hipMemcpy_r4_2_c_int,& hipMemcpy_r4_2_c_size_t,& hipMemcpy_r4_3,& hipMemcpy_r4_3_c_int,& hipMemcpy_r4_3_c_size_t,& hipMemcpy_r4_4,& hipMemcpy_r4_4_c_int,& hipMemcpy_r4_4_c_size_t,& hipMemcpy_r4_5,& hipMemcpy_r4_5_c_int,& hipMemcpy_r4_5_c_size_t,& hipMemcpy_r4_6,& hipMemcpy_r4_6_c_int,& hipMemcpy_r4_6_c_size_t,& hipMemcpy_r4_7,& hipMemcpy_r4_7_c_int,& hipMemcpy_r4_7_c_size_t,& hipMemcpy_r8_0,& hipMemcpy_r8_0_c_int,& hipMemcpy_r8_0_c_size_t,& hipMemcpy_r8_1,& hipMemcpy_r8_1_c_int,& hipMemcpy_r8_1_c_size_t,& hipMemcpy_r8_2,& hipMemcpy_r8_2_c_int,& hipMemcpy_r8_2_c_size_t,& hipMemcpy_r8_3,& hipMemcpy_r8_3_c_int,& hipMemcpy_r8_3_c_size_t,& hipMemcpy_r8_4,& hipMemcpy_r8_4_c_int,& hipMemcpy_r8_4_c_size_t,& hipMemcpy_r8_5,& hipMemcpy_r8_5_c_int,& hipMemcpy_r8_5_c_size_t,& hipMemcpy_r8_6,& hipMemcpy_r8_6_c_int,& hipMemcpy_r8_6_c_size_t,& hipMemcpy_r8_7,& hipMemcpy_r8_7_c_int,& hipMemcpy_r8_7_c_size_t,& hipMemcpy_c4_0,& hipMemcpy_c4_0_c_int,& hipMemcpy_c4_0_c_size_t,& hipMemcpy_c4_1,& hipMemcpy_c4_1_c_int,& hipMemcpy_c4_1_c_size_t,& hipMemcpy_c4_2,& hipMemcpy_c4_2_c_int,& hipMemcpy_c4_2_c_size_t,& hipMemcpy_c4_3,& hipMemcpy_c4_3_c_int,& hipMemcpy_c4_3_c_size_t,& hipMemcpy_c4_4,& hipMemcpy_c4_4_c_int,& hipMemcpy_c4_4_c_size_t,& hipMemcpy_c4_5,& hipMemcpy_c4_5_c_int,& hipMemcpy_c4_5_c_size_t,& hipMemcpy_c4_6,& hipMemcpy_c4_6_c_int,& hipMemcpy_c4_6_c_size_t,& hipMemcpy_c4_7,& hipMemcpy_c4_7_c_int,& hipMemcpy_c4_7_c_size_t,& hipMemcpy_c8_0,& hipMemcpy_c8_0_c_int,& hipMemcpy_c8_0_c_size_t,& hipMemcpy_c8_1,& hipMemcpy_c8_1_c_int,& hipMemcpy_c8_1_c_size_t,& hipMemcpy_c8_2,& hipMemcpy_c8_2_c_int,& hipMemcpy_c8_2_c_size_t,& hipMemcpy_c8_3,& hipMemcpy_c8_3_c_int,& hipMemcpy_c8_3_c_size_t,& hipMemcpy_c8_4,& hipMemcpy_c8_4_c_int,& hipMemcpy_c8_4_c_size_t,& hipMemcpy_c8_5,& hipMemcpy_c8_5_c_int,& hipMemcpy_c8_5_c_size_t,& hipMemcpy_c8_6,& hipMemcpy_c8_6_c_int,& hipMemcpy_c8_6_c_size_t,& hipMemcpy_c8_7,& hipMemcpy_c8_7_c_int,& hipMemcpy_c8_7_c_size_t #endif end interface interface hipMemcpyAsync !> !> @brief Copy data from src to dest asynchronously. !> !> @warning If host or dest are not pinned, the memory copy will be performed synchronously. For !> best performance, use hipHostMalloc to allocate host memory that is transferred asynchronously. !> !> @warning on HCC hipMemcpyAsync does not support overlapped H2D and D2H copies. !> For hipMemcpy, the copy is always performed by the device associated with the specified stream. !> !> For multi-gpu or peer-to-peer configurations, it is recommended to use a stream which is a !> attached to the device where the src data is physically located. For optimal peer-to-peer copies, !> the copy device must be able to access the src and dest pointers (by calling !> hipDeviceEnablePeerAccess with copy agent as the current device and srcdest as the peerDevice !> argument. if this is not done, the hipMemcpy will still work, but will perform the copy using a !> staging buffer on the host. !> !> @param[out] dest Data being copy to !> @param[in] src Data being copy from !> @param[in] sizeBytes Data size in bytes !> @param[in] myKind Type of transfer !> @param[in] stream Stream to use !> @return hipSuccess, hipErrorInvalidValue, hipErrorMemoryFree, hipErrorUnknown !> !> @see hipMemcpy, hipMemcpy2D, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, !> hipMemcpy2DFromArray, hipMemcpyArrayToArray, hipMemcpy2DArrayToArray, hipMemcpyToSymbol, !> hipMemcpyFromSymbol, hipMemcpy2DAsync, hipMemcpyToArrayAsync, hipMemcpy2DToArrayAsync, !> hipMemcpyFromArrayAsync, hipMemcpy2DFromArrayAsync, hipMemcpyToSymbolAsync, !> hipMemcpyFromSymbolAsync !> #ifdef USE_CUDA_NAMES function hipMemcpyAsync_(dest,src,sizeBytes,myKind,stream) bind(c, name="cudaMemcpyAsync") #else function hipMemcpyAsync_(dest,src,sizeBytes,myKind,stream) bind(c, name="hipMemcpyAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_ #else integer(kind(hipSuccess)) :: hipMemcpyAsync_ #endif type(c_ptr),value :: dest type(c_ptr),value :: src integer(c_size_t),value :: sizeBytes integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure hipMemcpyAsync_l_0,& hipMemcpyAsync_l_0_c_int,& hipMemcpyAsync_l_0_c_size_t,& hipMemcpyAsync_l_1,& hipMemcpyAsync_l_1_c_int,& hipMemcpyAsync_l_1_c_size_t,& hipMemcpyAsync_l_2,& hipMemcpyAsync_l_2_c_int,& hipMemcpyAsync_l_2_c_size_t,& hipMemcpyAsync_l_3,& hipMemcpyAsync_l_3_c_int,& hipMemcpyAsync_l_3_c_size_t,& hipMemcpyAsync_l_4,& hipMemcpyAsync_l_4_c_int,& hipMemcpyAsync_l_4_c_size_t,& hipMemcpyAsync_l_5,& hipMemcpyAsync_l_5_c_int,& hipMemcpyAsync_l_5_c_size_t,& hipMemcpyAsync_l_6,& hipMemcpyAsync_l_6_c_int,& hipMemcpyAsync_l_6_c_size_t,& hipMemcpyAsync_l_7,& hipMemcpyAsync_l_7_c_int,& hipMemcpyAsync_l_7_c_size_t,& hipMemcpyAsync_i4_0,& hipMemcpyAsync_i4_0_c_int,& hipMemcpyAsync_i4_0_c_size_t,& hipMemcpyAsync_i4_1,& hipMemcpyAsync_i4_1_c_int,& hipMemcpyAsync_i4_1_c_size_t,& hipMemcpyAsync_i4_2,& hipMemcpyAsync_i4_2_c_int,& hipMemcpyAsync_i4_2_c_size_t,& hipMemcpyAsync_i4_3,& hipMemcpyAsync_i4_3_c_int,& hipMemcpyAsync_i4_3_c_size_t,& hipMemcpyAsync_i4_4,& hipMemcpyAsync_i4_4_c_int,& hipMemcpyAsync_i4_4_c_size_t,& hipMemcpyAsync_i4_5,& hipMemcpyAsync_i4_5_c_int,& hipMemcpyAsync_i4_5_c_size_t,& hipMemcpyAsync_i4_6,& hipMemcpyAsync_i4_6_c_int,& hipMemcpyAsync_i4_6_c_size_t,& hipMemcpyAsync_i4_7,& hipMemcpyAsync_i4_7_c_int,& hipMemcpyAsync_i4_7_c_size_t,& hipMemcpyAsync_i8_0,& hipMemcpyAsync_i8_0_c_int,& hipMemcpyAsync_i8_0_c_size_t,& hipMemcpyAsync_i8_1,& hipMemcpyAsync_i8_1_c_int,& hipMemcpyAsync_i8_1_c_size_t,& hipMemcpyAsync_i8_2,& hipMemcpyAsync_i8_2_c_int,& hipMemcpyAsync_i8_2_c_size_t,& hipMemcpyAsync_i8_3,& hipMemcpyAsync_i8_3_c_int,& hipMemcpyAsync_i8_3_c_size_t,& hipMemcpyAsync_i8_4,& hipMemcpyAsync_i8_4_c_int,& hipMemcpyAsync_i8_4_c_size_t,& hipMemcpyAsync_i8_5,& hipMemcpyAsync_i8_5_c_int,& hipMemcpyAsync_i8_5_c_size_t,& hipMemcpyAsync_i8_6,& hipMemcpyAsync_i8_6_c_int,& hipMemcpyAsync_i8_6_c_size_t,& hipMemcpyAsync_i8_7,& hipMemcpyAsync_i8_7_c_int,& hipMemcpyAsync_i8_7_c_size_t,& hipMemcpyAsync_r4_0,& hipMemcpyAsync_r4_0_c_int,& hipMemcpyAsync_r4_0_c_size_t,& hipMemcpyAsync_r4_1,& hipMemcpyAsync_r4_1_c_int,& hipMemcpyAsync_r4_1_c_size_t,& hipMemcpyAsync_r4_2,& hipMemcpyAsync_r4_2_c_int,& hipMemcpyAsync_r4_2_c_size_t,& hipMemcpyAsync_r4_3,& hipMemcpyAsync_r4_3_c_int,& hipMemcpyAsync_r4_3_c_size_t,& hipMemcpyAsync_r4_4,& hipMemcpyAsync_r4_4_c_int,& hipMemcpyAsync_r4_4_c_size_t,& hipMemcpyAsync_r4_5,& hipMemcpyAsync_r4_5_c_int,& hipMemcpyAsync_r4_5_c_size_t,& hipMemcpyAsync_r4_6,& hipMemcpyAsync_r4_6_c_int,& hipMemcpyAsync_r4_6_c_size_t,& hipMemcpyAsync_r4_7,& hipMemcpyAsync_r4_7_c_int,& hipMemcpyAsync_r4_7_c_size_t,& hipMemcpyAsync_r8_0,& hipMemcpyAsync_r8_0_c_int,& hipMemcpyAsync_r8_0_c_size_t,& hipMemcpyAsync_r8_1,& hipMemcpyAsync_r8_1_c_int,& hipMemcpyAsync_r8_1_c_size_t,& hipMemcpyAsync_r8_2,& hipMemcpyAsync_r8_2_c_int,& hipMemcpyAsync_r8_2_c_size_t,& hipMemcpyAsync_r8_3,& hipMemcpyAsync_r8_3_c_int,& hipMemcpyAsync_r8_3_c_size_t,& hipMemcpyAsync_r8_4,& hipMemcpyAsync_r8_4_c_int,& hipMemcpyAsync_r8_4_c_size_t,& hipMemcpyAsync_r8_5,& hipMemcpyAsync_r8_5_c_int,& hipMemcpyAsync_r8_5_c_size_t,& hipMemcpyAsync_r8_6,& hipMemcpyAsync_r8_6_c_int,& hipMemcpyAsync_r8_6_c_size_t,& hipMemcpyAsync_r8_7,& hipMemcpyAsync_r8_7_c_int,& hipMemcpyAsync_r8_7_c_size_t,& hipMemcpyAsync_c4_0,& hipMemcpyAsync_c4_0_c_int,& hipMemcpyAsync_c4_0_c_size_t,& hipMemcpyAsync_c4_1,& hipMemcpyAsync_c4_1_c_int,& hipMemcpyAsync_c4_1_c_size_t,& hipMemcpyAsync_c4_2,& hipMemcpyAsync_c4_2_c_int,& hipMemcpyAsync_c4_2_c_size_t,& hipMemcpyAsync_c4_3,& hipMemcpyAsync_c4_3_c_int,& hipMemcpyAsync_c4_3_c_size_t,& hipMemcpyAsync_c4_4,& hipMemcpyAsync_c4_4_c_int,& hipMemcpyAsync_c4_4_c_size_t,& hipMemcpyAsync_c4_5,& hipMemcpyAsync_c4_5_c_int,& hipMemcpyAsync_c4_5_c_size_t,& hipMemcpyAsync_c4_6,& hipMemcpyAsync_c4_6_c_int,& hipMemcpyAsync_c4_6_c_size_t,& hipMemcpyAsync_c4_7,& hipMemcpyAsync_c4_7_c_int,& hipMemcpyAsync_c4_7_c_size_t,& hipMemcpyAsync_c8_0,& hipMemcpyAsync_c8_0_c_int,& hipMemcpyAsync_c8_0_c_size_t,& hipMemcpyAsync_c8_1,& hipMemcpyAsync_c8_1_c_int,& hipMemcpyAsync_c8_1_c_size_t,& hipMemcpyAsync_c8_2,& hipMemcpyAsync_c8_2_c_int,& hipMemcpyAsync_c8_2_c_size_t,& hipMemcpyAsync_c8_3,& hipMemcpyAsync_c8_3_c_int,& hipMemcpyAsync_c8_3_c_size_t,& hipMemcpyAsync_c8_4,& hipMemcpyAsync_c8_4_c_int,& hipMemcpyAsync_c8_4_c_size_t,& hipMemcpyAsync_c8_5,& hipMemcpyAsync_c8_5_c_int,& hipMemcpyAsync_c8_5_c_size_t,& hipMemcpyAsync_c8_6,& hipMemcpyAsync_c8_6_c_int,& hipMemcpyAsync_c8_6_c_size_t,& hipMemcpyAsync_c8_7,& hipMemcpyAsync_c8_7_c_int,& hipMemcpyAsync_c8_7_c_size_t #endif end interface interface hipMemcpy2D !> !> @brief Copies data between host and device. !> !> @param[in] dest Destination memory address !> @param[in] dpitch Pitch of destination memory !> @param[in] src Source memory address !> @param[in] spitch Pitch of source memory !> @param[in] width Width of matrix transfer (columns in bytes) !> @param[in] height Height of matrix transfer (rows) !> @param[in] myKind Type of transfer !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync !> #ifdef USE_CUDA_NAMES function hipMemcpy2D_(dest,dpitch,src,spitch,width,height,myKind) bind(c, name="cudaMemcpy2D") #else function hipMemcpy2D_(dest,dpitch,src,spitch,width,height,myKind) bind(c, name="hipMemcpy2D") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_ #else integer(kind(hipSuccess)) :: hipMemcpy2D_ #endif type(c_ptr),value :: dest integer(c_size_t),value :: dpitch type(c_ptr),value :: src integer(c_size_t),value :: spitch integer(c_size_t),value :: width integer(c_size_t),value :: height integer(kind(hipMemcpyHostToHost)),value :: myKind end function #ifdef USE_FPOINTER_INTERFACES module procedure hipMemcpy2D_l_0_c_int,& hipMemcpy2D_l_0_c_size_t,& hipMemcpy2D_l_1_c_int,& hipMemcpy2D_l_1_c_size_t,& hipMemcpy2D_l_2_c_int,& hipMemcpy2D_l_2_c_size_t,& hipMemcpy2D_i4_0_c_int,& hipMemcpy2D_i4_0_c_size_t,& hipMemcpy2D_i4_1_c_int,& hipMemcpy2D_i4_1_c_size_t,& hipMemcpy2D_i4_2_c_int,& hipMemcpy2D_i4_2_c_size_t,& hipMemcpy2D_i8_0_c_int,& hipMemcpy2D_i8_0_c_size_t,& hipMemcpy2D_i8_1_c_int,& hipMemcpy2D_i8_1_c_size_t,& hipMemcpy2D_i8_2_c_int,& hipMemcpy2D_i8_2_c_size_t,& hipMemcpy2D_r4_0_c_int,& hipMemcpy2D_r4_0_c_size_t,& hipMemcpy2D_r4_1_c_int,& hipMemcpy2D_r4_1_c_size_t,& hipMemcpy2D_r4_2_c_int,& hipMemcpy2D_r4_2_c_size_t,& hipMemcpy2D_r8_0_c_int,& hipMemcpy2D_r8_0_c_size_t,& hipMemcpy2D_r8_1_c_int,& hipMemcpy2D_r8_1_c_size_t,& hipMemcpy2D_r8_2_c_int,& hipMemcpy2D_r8_2_c_size_t,& hipMemcpy2D_c4_0_c_int,& hipMemcpy2D_c4_0_c_size_t,& hipMemcpy2D_c4_1_c_int,& hipMemcpy2D_c4_1_c_size_t,& hipMemcpy2D_c4_2_c_int,& hipMemcpy2D_c4_2_c_size_t,& hipMemcpy2D_c8_0_c_int,& hipMemcpy2D_c8_0_c_size_t,& hipMemcpy2D_c8_1_c_int,& hipMemcpy2D_c8_1_c_size_t,& hipMemcpy2D_c8_2_c_int,& hipMemcpy2D_c8_2_c_size_t #endif end interface interface hipMemcpy2DAsync !> !> @brief Copies data between host and device. !> !> @param[in] dest Destination memory address !> @param[in] dpitch Pitch of destination memory !> @param[in] src Source memory address !> @param[in] spitch Pitch of source memory !> @param[in] width Width of matrix transfer (columns in bytes) !> @param[in] height Height of matrix transfer (rows) !> @param[in] myKind Type of transfer !> @param[in] stream Stream to use !> @return hipSuccess, hipErrorInvalidValue, hipErrorInvalidPitchValue, !> hipErrorInvalidDevicePointer, hipErrorInvalidMemcpyDirection !> !> @see hipMemcpy, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, hipMemcpyToSymbol, !> hipMemcpyAsync !> #ifdef USE_CUDA_NAMES function hipMemcpy2DAsync_(dest,dpitch,src,spitch,width,height,myKind,stream) bind(c, name="cudaMemcpy2DAsync") #else function hipMemcpy2DAsync_(dest,dpitch,src,spitch,width,height,myKind,stream) bind(c, name="hipMemcpy2DAsync") #endif use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_ #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_ #endif type(c_ptr),value :: dest integer(c_size_t),value :: dpitch type(c_ptr),value :: src integer(c_size_t),value :: spitch integer(c_size_t),value :: width integer(c_size_t),value :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream end function #ifdef USE_FPOINTER_INTERFACES module procedure hipMemcpy2DAsync_l_0_c_int,& hipMemcpy2DAsync_l_0_c_size_t,& hipMemcpy2DAsync_l_1_c_int,& hipMemcpy2DAsync_l_1_c_size_t,& hipMemcpy2DAsync_l_2_c_int,& hipMemcpy2DAsync_l_2_c_size_t,& hipMemcpy2DAsync_i4_0_c_int,& hipMemcpy2DAsync_i4_0_c_size_t,& hipMemcpy2DAsync_i4_1_c_int,& hipMemcpy2DAsync_i4_1_c_size_t,& hipMemcpy2DAsync_i4_2_c_int,& hipMemcpy2DAsync_i4_2_c_size_t,& hipMemcpy2DAsync_i8_0_c_int,& hipMemcpy2DAsync_i8_0_c_size_t,& hipMemcpy2DAsync_i8_1_c_int,& hipMemcpy2DAsync_i8_1_c_size_t,& hipMemcpy2DAsync_i8_2_c_int,& hipMemcpy2DAsync_i8_2_c_size_t,& hipMemcpy2DAsync_r4_0_c_int,& hipMemcpy2DAsync_r4_0_c_size_t,& hipMemcpy2DAsync_r4_1_c_int,& hipMemcpy2DAsync_r4_1_c_size_t,& hipMemcpy2DAsync_r4_2_c_int,& hipMemcpy2DAsync_r4_2_c_size_t,& hipMemcpy2DAsync_r8_0_c_int,& hipMemcpy2DAsync_r8_0_c_size_t,& hipMemcpy2DAsync_r8_1_c_int,& hipMemcpy2DAsync_r8_1_c_size_t,& hipMemcpy2DAsync_r8_2_c_int,& hipMemcpy2DAsync_r8_2_c_size_t,& hipMemcpy2DAsync_c4_0_c_int,& hipMemcpy2DAsync_c4_0_c_size_t,& hipMemcpy2DAsync_c4_1_c_int,& hipMemcpy2DAsync_c4_1_c_size_t,& hipMemcpy2DAsync_c4_2_c_int,& hipMemcpy2DAsync_c4_2_c_size_t,& hipMemcpy2DAsync_c8_0_c_int,& hipMemcpy2DAsync_c8_0_c_size_t,& hipMemcpy2DAsync_c8_1_c_int,& hipMemcpy2DAsync_c8_1_c_size_t,& hipMemcpy2DAsync_c8_2_c_int,& hipMemcpy2DAsync_c8_2_c_size_t #endif end interface #ifdef USE_FPOINTER_INTERFACES contains function hipMemcpy_l_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest logical(c_bool),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_0_c_int #endif ! hipMemcpy_l_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest logical(c_bool),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_0_c_size_t #endif ! hipMemcpy_l_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest logical(c_bool),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_0 #else integer(kind(hipSuccess)) :: hipMemcpy_l_0 #endif ! hipMemcpy_l_0 = hipMemcpy_(c_loc(dest),c_loc(src),1_8,myKind) end function function hipMemcpy_l_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest logical(c_bool),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_1_c_int #endif ! hipMemcpy_l_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest logical(c_bool),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_1_c_size_t #endif ! hipMemcpy_l_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest logical(c_bool),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_1 #else integer(kind(hipSuccess)) :: hipMemcpy_l_1 #endif ! hipMemcpy_l_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_l_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_2_c_int #endif ! hipMemcpy_l_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_2_c_size_t #endif ! hipMemcpy_l_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_2 #else integer(kind(hipSuccess)) :: hipMemcpy_l_2 #endif ! hipMemcpy_l_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_l_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_3_c_int #endif ! hipMemcpy_l_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_3_c_size_t #endif ! hipMemcpy_l_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_3 #else integer(kind(hipSuccess)) :: hipMemcpy_l_3 #endif ! hipMemcpy_l_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_l_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_4_c_int #endif ! hipMemcpy_l_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_4_c_size_t #endif ! hipMemcpy_l_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_4 #else integer(kind(hipSuccess)) :: hipMemcpy_l_4 #endif ! hipMemcpy_l_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_l_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_5_c_int #endif ! hipMemcpy_l_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_5_c_size_t #endif ! hipMemcpy_l_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_5 #else integer(kind(hipSuccess)) :: hipMemcpy_l_5 #endif ! hipMemcpy_l_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_l_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_6_c_int #endif ! hipMemcpy_l_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_6_c_size_t #endif ! hipMemcpy_l_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_6 #else integer(kind(hipSuccess)) :: hipMemcpy_l_6 #endif ! hipMemcpy_l_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_l_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_l_7_c_int #endif ! hipMemcpy_l_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_l_7_c_size_t #endif ! hipMemcpy_l_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*1_8,myKind) end function function hipMemcpy_l_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_l_7 #else integer(kind(hipSuccess)) :: hipMemcpy_l_7 #endif ! hipMemcpy_l_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind) end function function hipMemcpy_i4_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_0_c_int #endif ! hipMemcpy_i4_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_0_c_size_t #endif ! hipMemcpy_i4_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_0 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_0 #endif ! hipMemcpy_i4_0 = hipMemcpy_(c_loc(dest),c_loc(src),4_8,myKind) end function function hipMemcpy_i4_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_1_c_int #endif ! hipMemcpy_i4_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_1_c_size_t #endif ! hipMemcpy_i4_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_1 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_1 #endif ! hipMemcpy_i4_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i4_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_2_c_int #endif ! hipMemcpy_i4_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_2_c_size_t #endif ! hipMemcpy_i4_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_2 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_2 #endif ! hipMemcpy_i4_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i4_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_3_c_int #endif ! hipMemcpy_i4_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_3_c_size_t #endif ! hipMemcpy_i4_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_3 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_3 #endif ! hipMemcpy_i4_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i4_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_4_c_int #endif ! hipMemcpy_i4_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_4_c_size_t #endif ! hipMemcpy_i4_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_4 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_4 #endif ! hipMemcpy_i4_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i4_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_5_c_int #endif ! hipMemcpy_i4_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_5_c_size_t #endif ! hipMemcpy_i4_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_5 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_5 #endif ! hipMemcpy_i4_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i4_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_6_c_int #endif ! hipMemcpy_i4_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_6_c_size_t #endif ! hipMemcpy_i4_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_6 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_6 #endif ! hipMemcpy_i4_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i4_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i4_7_c_int #endif ! hipMemcpy_i4_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i4_7_c_size_t #endif ! hipMemcpy_i4_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_i4_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i4_7 #else integer(kind(hipSuccess)) :: hipMemcpy_i4_7 #endif ! hipMemcpy_i4_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_i8_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_long),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_0_c_int #endif ! hipMemcpy_i8_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_long),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_0_c_size_t #endif ! hipMemcpy_i8_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_long),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_0 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_0 #endif ! hipMemcpy_i8_0 = hipMemcpy_(c_loc(dest),c_loc(src),8_8,myKind) end function function hipMemcpy_i8_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_long),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_1_c_int #endif ! hipMemcpy_i8_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_long),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_1_c_size_t #endif ! hipMemcpy_i8_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_long),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_1 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_1 #endif ! hipMemcpy_i8_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_i8_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_2_c_int #endif ! hipMemcpy_i8_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_2_c_size_t #endif ! hipMemcpy_i8_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_2 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_2 #endif ! hipMemcpy_i8_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_i8_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_3_c_int #endif ! hipMemcpy_i8_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_3_c_size_t #endif ! hipMemcpy_i8_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_3 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_3 #endif ! hipMemcpy_i8_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_i8_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_4_c_int #endif ! hipMemcpy_i8_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_4_c_size_t #endif ! hipMemcpy_i8_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_4 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_4 #endif ! hipMemcpy_i8_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_i8_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_5_c_int #endif ! hipMemcpy_i8_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_5_c_size_t #endif ! hipMemcpy_i8_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_5 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_5 #endif ! hipMemcpy_i8_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_i8_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_6_c_int #endif ! hipMemcpy_i8_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_6_c_size_t #endif ! hipMemcpy_i8_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_6 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_6 #endif ! hipMemcpy_i8_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_i8_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_i8_7_c_int #endif ! hipMemcpy_i8_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_i8_7_c_size_t #endif ! hipMemcpy_i8_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_i8_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_i8_7 #else integer(kind(hipSuccess)) :: hipMemcpy_i8_7 #endif ! hipMemcpy_i8_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r4_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest real(c_float),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_0_c_int #endif ! hipMemcpy_r4_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest real(c_float),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_0_c_size_t #endif ! hipMemcpy_r4_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest real(c_float),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_0 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_0 #endif ! hipMemcpy_r4_0 = hipMemcpy_(c_loc(dest),c_loc(src),4_8,myKind) end function function hipMemcpy_r4_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest real(c_float),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_1_c_int #endif ! hipMemcpy_r4_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest real(c_float),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_1_c_size_t #endif ! hipMemcpy_r4_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest real(c_float),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_1 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_1 #endif ! hipMemcpy_r4_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r4_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest real(c_float),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_2_c_int #endif ! hipMemcpy_r4_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest real(c_float),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_2_c_size_t #endif ! hipMemcpy_r4_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest real(c_float),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_2 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_2 #endif ! hipMemcpy_r4_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r4_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_3_c_int #endif ! hipMemcpy_r4_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_3_c_size_t #endif ! hipMemcpy_r4_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_3 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_3 #endif ! hipMemcpy_r4_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r4_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_4_c_int #endif ! hipMemcpy_r4_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_4_c_size_t #endif ! hipMemcpy_r4_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_4 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_4 #endif ! hipMemcpy_r4_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r4_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_5_c_int #endif ! hipMemcpy_r4_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_5_c_size_t #endif ! hipMemcpy_r4_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_5 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_5 #endif ! hipMemcpy_r4_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r4_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_6_c_int #endif ! hipMemcpy_r4_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_6_c_size_t #endif ! hipMemcpy_r4_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_6 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_6 #endif ! hipMemcpy_r4_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r4_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r4_7_c_int #endif ! hipMemcpy_r4_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r4_7_c_size_t #endif ! hipMemcpy_r4_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*4_8,myKind) end function function hipMemcpy_r4_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r4_7 #else integer(kind(hipSuccess)) :: hipMemcpy_r4_7 #endif ! hipMemcpy_r4_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind) end function function hipMemcpy_r8_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest real(c_double),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_0_c_int #endif ! hipMemcpy_r8_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest real(c_double),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_0_c_size_t #endif ! hipMemcpy_r8_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest real(c_double),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_0 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_0 #endif ! hipMemcpy_r8_0 = hipMemcpy_(c_loc(dest),c_loc(src),8_8,myKind) end function function hipMemcpy_r8_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest real(c_double),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_1_c_int #endif ! hipMemcpy_r8_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest real(c_double),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_1_c_size_t #endif ! hipMemcpy_r8_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest real(c_double),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_1 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_1 #endif ! hipMemcpy_r8_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r8_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest real(c_double),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_2_c_int #endif ! hipMemcpy_r8_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest real(c_double),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_2_c_size_t #endif ! hipMemcpy_r8_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest real(c_double),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_2 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_2 #endif ! hipMemcpy_r8_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r8_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_3_c_int #endif ! hipMemcpy_r8_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_3_c_size_t #endif ! hipMemcpy_r8_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_3 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_3 #endif ! hipMemcpy_r8_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r8_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_4_c_int #endif ! hipMemcpy_r8_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_4_c_size_t #endif ! hipMemcpy_r8_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_4 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_4 #endif ! hipMemcpy_r8_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r8_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_5_c_int #endif ! hipMemcpy_r8_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_5_c_size_t #endif ! hipMemcpy_r8_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_5 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_5 #endif ! hipMemcpy_r8_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r8_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_6_c_int #endif ! hipMemcpy_r8_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_6_c_size_t #endif ! hipMemcpy_r8_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_6 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_6 #endif ! hipMemcpy_r8_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_r8_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_r8_7_c_int #endif ! hipMemcpy_r8_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_r8_7_c_size_t #endif ! hipMemcpy_r8_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*8_8,myKind) end function function hipMemcpy_r8_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_r8_7 #else integer(kind(hipSuccess)) :: hipMemcpy_r8_7 #endif ! hipMemcpy_r8_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind) end function function hipMemcpy_c4_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest complex(c_float_complex),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_0_c_int #endif ! hipMemcpy_c4_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest complex(c_float_complex),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_0_c_size_t #endif ! hipMemcpy_c4_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest complex(c_float_complex),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_0 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_0 #endif ! hipMemcpy_c4_0 = hipMemcpy_(c_loc(dest),c_loc(src),2*4_8,myKind) end function function hipMemcpy_c4_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_1_c_int #endif ! hipMemcpy_c4_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_1_c_size_t #endif ! hipMemcpy_c4_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest complex(c_float_complex),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_1 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_1 #endif ! hipMemcpy_c4_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c4_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_2_c_int #endif ! hipMemcpy_c4_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_2_c_size_t #endif ! hipMemcpy_c4_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_2 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_2 #endif ! hipMemcpy_c4_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c4_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_3_c_int #endif ! hipMemcpy_c4_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_3_c_size_t #endif ! hipMemcpy_c4_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_3 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_3 #endif ! hipMemcpy_c4_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c4_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_4_c_int #endif ! hipMemcpy_c4_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_4_c_size_t #endif ! hipMemcpy_c4_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_4 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_4 #endif ! hipMemcpy_c4_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c4_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_5_c_int #endif ! hipMemcpy_c4_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_5_c_size_t #endif ! hipMemcpy_c4_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_5 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_5 #endif ! hipMemcpy_c4_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c4_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_6_c_int #endif ! hipMemcpy_c4_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_6_c_size_t #endif ! hipMemcpy_c4_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_6 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_6 #endif ! hipMemcpy_c4_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c4_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c4_7_c_int #endif ! hipMemcpy_c4_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c4_7_c_size_t #endif ! hipMemcpy_c4_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*4_8,myKind) end function function hipMemcpy_c4_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c4_7 #else integer(kind(hipSuccess)) :: hipMemcpy_c4_7 #endif ! hipMemcpy_c4_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind) end function function hipMemcpy_c8_0_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest complex(c_double_complex),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_0_c_int #endif ! hipMemcpy_c8_0_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_0_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest complex(c_double_complex),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_0_c_size_t #endif ! hipMemcpy_c8_0_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_0(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest complex(c_double_complex),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_0 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_0 #endif ! hipMemcpy_c8_0 = hipMemcpy_(c_loc(dest),c_loc(src),2*8_8,myKind) end function function hipMemcpy_c8_1_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_1_c_int #endif ! hipMemcpy_c8_1_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_1_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_1_c_size_t #endif ! hipMemcpy_c8_1_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_1(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest complex(c_double_complex),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_1 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_1 #endif ! hipMemcpy_c8_1 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpy_c8_2_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_2_c_int #endif ! hipMemcpy_c8_2_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_2_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_2_c_size_t #endif ! hipMemcpy_c8_2_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_2(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_2 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_2 #endif ! hipMemcpy_c8_2 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpy_c8_3_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_3_c_int #endif ! hipMemcpy_c8_3_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_3_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_3_c_size_t #endif ! hipMemcpy_c8_3_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_3(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_3 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_3 #endif ! hipMemcpy_c8_3 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpy_c8_4_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_4_c_int #endif ! hipMemcpy_c8_4_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_4_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_4_c_size_t #endif ! hipMemcpy_c8_4_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_4(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_4 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_4 #endif ! hipMemcpy_c8_4 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpy_c8_5_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_5_c_int #endif ! hipMemcpy_c8_5_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_5_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_5_c_size_t #endif ! hipMemcpy_c8_5_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_5(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_5 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_5 #endif ! hipMemcpy_c8_5 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpy_c8_6_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_6_c_int #endif ! hipMemcpy_c8_6_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_6_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_6_c_size_t #endif ! hipMemcpy_c8_6_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_6(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_6 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_6 #endif ! hipMemcpy_c8_6 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpy_c8_7_c_int(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpy_c8_7_c_int #endif ! hipMemcpy_c8_7_c_int = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_7_c_size_t(dest,src,length,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy_c8_7_c_size_t #endif ! hipMemcpy_c8_7_c_size_t = hipMemcpy_(c_loc(dest),c_loc(src),length*2*8_8,myKind) end function function hipMemcpy_c8_7(dest,src,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy_c8_7 #else integer(kind(hipSuccess)) :: hipMemcpy_c8_7 #endif ! hipMemcpy_c8_7 = hipMemcpy_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind) end function function hipMemcpyAsync_l_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest logical(c_bool),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_0_c_int #endif ! hipMemcpyAsync_l_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest logical(c_bool),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_0_c_size_t #endif ! hipMemcpyAsync_l_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest logical(c_bool),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_0 #endif ! hipMemcpyAsync_l_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),1_8,myKind,stream) end function function hipMemcpyAsync_l_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest logical(c_bool),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_1_c_int #endif ! hipMemcpyAsync_l_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest logical(c_bool),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_1_c_size_t #endif ! hipMemcpyAsync_l_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest logical(c_bool),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_1 #endif ! hipMemcpyAsync_l_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_l_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_2_c_int #endif ! hipMemcpyAsync_l_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_2_c_size_t #endif ! hipMemcpyAsync_l_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_2 #endif ! hipMemcpyAsync_l_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_l_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_3_c_int #endif ! hipMemcpyAsync_l_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_3_c_size_t #endif ! hipMemcpyAsync_l_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_3 #endif ! hipMemcpyAsync_l_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_l_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_4_c_int #endif ! hipMemcpyAsync_l_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_4_c_size_t #endif ! hipMemcpyAsync_l_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_4 #endif ! hipMemcpyAsync_l_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_l_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_5_c_int #endif ! hipMemcpyAsync_l_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_5_c_size_t #endif ! hipMemcpyAsync_l_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_5 #endif ! hipMemcpyAsync_l_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_l_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_6_c_int #endif ! hipMemcpyAsync_l_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_6_c_size_t #endif ! hipMemcpyAsync_l_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_6 #endif ! hipMemcpyAsync_l_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_l_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_7_c_int #endif ! hipMemcpyAsync_l_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_7_c_size_t #endif ! hipMemcpyAsync_l_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*1_8,myKind,stream) end function function hipMemcpyAsync_l_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest logical(c_bool),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_l_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_l_7 #endif ! hipMemcpyAsync_l_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*1_8,myKind,stream) end function function hipMemcpyAsync_i4_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_0_c_int #endif ! hipMemcpyAsync_i4_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_0_c_size_t #endif ! hipMemcpyAsync_i4_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_0 #endif ! hipMemcpyAsync_i4_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),4_8,myKind,stream) end function function hipMemcpyAsync_i4_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_1_c_int #endif ! hipMemcpyAsync_i4_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_1_c_size_t #endif ! hipMemcpyAsync_i4_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_1 #endif ! hipMemcpyAsync_i4_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i4_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_2_c_int #endif ! hipMemcpyAsync_i4_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_2_c_size_t #endif ! hipMemcpyAsync_i4_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_2 #endif ! hipMemcpyAsync_i4_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i4_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_3_c_int #endif ! hipMemcpyAsync_i4_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_3_c_size_t #endif ! hipMemcpyAsync_i4_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_3 #endif ! hipMemcpyAsync_i4_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i4_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_4_c_int #endif ! hipMemcpyAsync_i4_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_4_c_size_t #endif ! hipMemcpyAsync_i4_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_4 #endif ! hipMemcpyAsync_i4_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i4_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_5_c_int #endif ! hipMemcpyAsync_i4_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_5_c_size_t #endif ! hipMemcpyAsync_i4_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_5 #endif ! hipMemcpyAsync_i4_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i4_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_6_c_int #endif ! hipMemcpyAsync_i4_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_6_c_size_t #endif ! hipMemcpyAsync_i4_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_6 #endif ! hipMemcpyAsync_i4_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i4_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_7_c_int #endif ! hipMemcpyAsync_i4_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_7_c_size_t #endif ! hipMemcpyAsync_i4_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_i4_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_int),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i4_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i4_7 #endif ! hipMemcpyAsync_i4_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_i8_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_long),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_0_c_int #endif ! hipMemcpyAsync_i8_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_long),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_0_c_size_t #endif ! hipMemcpyAsync_i8_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_long),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_0 #endif ! hipMemcpyAsync_i8_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),8_8,myKind,stream) end function function hipMemcpyAsync_i8_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_long),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_1_c_int #endif ! hipMemcpyAsync_i8_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_long),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_1_c_size_t #endif ! hipMemcpyAsync_i8_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_long),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_1 #endif ! hipMemcpyAsync_i8_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_i8_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_2_c_int #endif ! hipMemcpyAsync_i8_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_2_c_size_t #endif ! hipMemcpyAsync_i8_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_2 #endif ! hipMemcpyAsync_i8_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_i8_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_3_c_int #endif ! hipMemcpyAsync_i8_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_3_c_size_t #endif ! hipMemcpyAsync_i8_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_3 #endif ! hipMemcpyAsync_i8_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_i8_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_4_c_int #endif ! hipMemcpyAsync_i8_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_4_c_size_t #endif ! hipMemcpyAsync_i8_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_4 #endif ! hipMemcpyAsync_i8_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_i8_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_5_c_int #endif ! hipMemcpyAsync_i8_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_5_c_size_t #endif ! hipMemcpyAsync_i8_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_5 #endif ! hipMemcpyAsync_i8_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_i8_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_6_c_int #endif ! hipMemcpyAsync_i8_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_6_c_size_t #endif ! hipMemcpyAsync_i8_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_6 #endif ! hipMemcpyAsync_i8_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_i8_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_7_c_int #endif ! hipMemcpyAsync_i8_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_7_c_size_t #endif ! hipMemcpyAsync_i8_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_i8_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest integer(c_long),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_i8_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_i8_7 #endif ! hipMemcpyAsync_i8_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r4_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest real(c_float),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_0_c_int #endif ! hipMemcpyAsync_r4_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest real(c_float),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_0_c_size_t #endif ! hipMemcpyAsync_r4_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest real(c_float),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_0 #endif ! hipMemcpyAsync_r4_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),4_8,myKind,stream) end function function hipMemcpyAsync_r4_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest real(c_float),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_1_c_int #endif ! hipMemcpyAsync_r4_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest real(c_float),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_1_c_size_t #endif ! hipMemcpyAsync_r4_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest real(c_float),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_1 #endif ! hipMemcpyAsync_r4_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r4_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest real(c_float),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_2_c_int #endif ! hipMemcpyAsync_r4_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest real(c_float),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_2_c_size_t #endif ! hipMemcpyAsync_r4_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest real(c_float),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_2 #endif ! hipMemcpyAsync_r4_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r4_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_3_c_int #endif ! hipMemcpyAsync_r4_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_3_c_size_t #endif ! hipMemcpyAsync_r4_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_3 #endif ! hipMemcpyAsync_r4_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r4_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_4_c_int #endif ! hipMemcpyAsync_r4_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_4_c_size_t #endif ! hipMemcpyAsync_r4_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_4 #endif ! hipMemcpyAsync_r4_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r4_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_5_c_int #endif ! hipMemcpyAsync_r4_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_5_c_size_t #endif ! hipMemcpyAsync_r4_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_5 #endif ! hipMemcpyAsync_r4_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r4_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_6_c_int #endif ! hipMemcpyAsync_r4_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_6_c_size_t #endif ! hipMemcpyAsync_r4_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_6 #endif ! hipMemcpyAsync_r4_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r4_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_7_c_int #endif ! hipMemcpyAsync_r4_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_7_c_size_t #endif ! hipMemcpyAsync_r4_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*4_8,myKind,stream) end function function hipMemcpyAsync_r4_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_float),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r4_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r4_7 #endif ! hipMemcpyAsync_r4_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*4_8,myKind,stream) end function function hipMemcpyAsync_r8_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest real(c_double),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_0_c_int #endif ! hipMemcpyAsync_r8_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest real(c_double),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_0_c_size_t #endif ! hipMemcpyAsync_r8_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest real(c_double),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_0 #endif ! hipMemcpyAsync_r8_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),8_8,myKind,stream) end function function hipMemcpyAsync_r8_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest real(c_double),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_1_c_int #endif ! hipMemcpyAsync_r8_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest real(c_double),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_1_c_size_t #endif ! hipMemcpyAsync_r8_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest real(c_double),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_1 #endif ! hipMemcpyAsync_r8_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r8_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest real(c_double),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_2_c_int #endif ! hipMemcpyAsync_r8_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest real(c_double),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_2_c_size_t #endif ! hipMemcpyAsync_r8_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest real(c_double),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_2 #endif ! hipMemcpyAsync_r8_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r8_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_3_c_int #endif ! hipMemcpyAsync_r8_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_3_c_size_t #endif ! hipMemcpyAsync_r8_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_3 #endif ! hipMemcpyAsync_r8_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r8_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_4_c_int #endif ! hipMemcpyAsync_r8_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_4_c_size_t #endif ! hipMemcpyAsync_r8_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_4 #endif ! hipMemcpyAsync_r8_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r8_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_5_c_int #endif ! hipMemcpyAsync_r8_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_5_c_size_t #endif ! hipMemcpyAsync_r8_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_5 #endif ! hipMemcpyAsync_r8_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r8_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_6_c_int #endif ! hipMemcpyAsync_r8_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_6_c_size_t #endif ! hipMemcpyAsync_r8_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_6 #endif ! hipMemcpyAsync_r8_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_r8_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_7_c_int #endif ! hipMemcpyAsync_r8_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_7_c_size_t #endif ! hipMemcpyAsync_r8_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*8_8,myKind,stream) end function function hipMemcpyAsync_r8_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest real(c_double),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_r8_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_r8_7 #endif ! hipMemcpyAsync_r8_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*8_8,myKind,stream) end function function hipMemcpyAsync_c4_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest complex(c_float_complex),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_0_c_int #endif ! hipMemcpyAsync_c4_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest complex(c_float_complex),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_0_c_size_t #endif ! hipMemcpyAsync_c4_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest complex(c_float_complex),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_0 #endif ! hipMemcpyAsync_c4_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_1_c_int #endif ! hipMemcpyAsync_c4_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_1_c_size_t #endif ! hipMemcpyAsync_c4_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest complex(c_float_complex),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_1 #endif ! hipMemcpyAsync_c4_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_2_c_int #endif ! hipMemcpyAsync_c4_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_2_c_size_t #endif ! hipMemcpyAsync_c4_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_2 #endif ! hipMemcpyAsync_c4_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_3_c_int #endif ! hipMemcpyAsync_c4_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_3_c_size_t #endif ! hipMemcpyAsync_c4_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_3 #endif ! hipMemcpyAsync_c4_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_4_c_int #endif ! hipMemcpyAsync_c4_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_4_c_size_t #endif ! hipMemcpyAsync_c4_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_4 #endif ! hipMemcpyAsync_c4_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_5_c_int #endif ! hipMemcpyAsync_c4_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_5_c_size_t #endif ! hipMemcpyAsync_c4_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_5 #endif ! hipMemcpyAsync_c4_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_6_c_int #endif ! hipMemcpyAsync_c4_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_6_c_size_t #endif ! hipMemcpyAsync_c4_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_6 #endif ! hipMemcpyAsync_c4_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_7_c_int #endif ! hipMemcpyAsync_c4_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_7_c_size_t #endif ! hipMemcpyAsync_c4_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*4_8,myKind,stream) end function function hipMemcpyAsync_c4_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_float_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c4_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c4_7 #endif ! hipMemcpyAsync_c4_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*4_8,myKind,stream) end function function hipMemcpyAsync_c8_0_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest complex(c_double_complex),target,intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_0_c_int #endif ! hipMemcpyAsync_c8_0_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_0_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest complex(c_double_complex),target,intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_0_c_size_t #endif ! hipMemcpyAsync_c8_0_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_0(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest complex(c_double_complex),target,intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_0 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_0 #endif ! hipMemcpyAsync_c8_0 = hipMemcpyAsync_(c_loc(dest),c_loc(src),2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_1_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_1_c_int #endif ! hipMemcpyAsync_c8_1_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_1_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_1_c_size_t #endif ! hipMemcpyAsync_c8_1_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_1(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest complex(c_double_complex),target,dimension(:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_1 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_1 #endif ! hipMemcpyAsync_c8_1 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_2_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_2_c_int #endif ! hipMemcpyAsync_c8_2_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_2_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_2_c_size_t #endif ! hipMemcpyAsync_c8_2_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_2(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_2 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_2 #endif ! hipMemcpyAsync_c8_2 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_3_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_3_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_3_c_int #endif ! hipMemcpyAsync_c8_3_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_3_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_3_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_3_c_size_t #endif ! hipMemcpyAsync_c8_3_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_3(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_3 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_3 #endif ! hipMemcpyAsync_c8_3 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_4_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_4_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_4_c_int #endif ! hipMemcpyAsync_c8_4_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_4_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_4_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_4_c_size_t #endif ! hipMemcpyAsync_c8_4_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_4(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_4 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_4 #endif ! hipMemcpyAsync_c8_4 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_5_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_5_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_5_c_int #endif ! hipMemcpyAsync_c8_5_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_5_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_5_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_5_c_size_t #endif ! hipMemcpyAsync_c8_5_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_5(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_5 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_5 #endif ! hipMemcpyAsync_c8_5 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_6_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_6_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_6_c_int #endif ! hipMemcpyAsync_c8_6_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_6_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_6_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_6_c_size_t #endif ! hipMemcpyAsync_c8_6_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_6(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_6 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_6 #endif ! hipMemcpyAsync_c8_6 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_7_c_int(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_int),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_7_c_int #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_7_c_int #endif ! hipMemcpyAsync_c8_7_c_int = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_7_c_size_t(dest,src,length,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(c_size_t),intent(in) :: length integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_7_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_7_c_size_t #endif ! hipMemcpyAsync_c8_7_c_size_t = hipMemcpyAsync_(c_loc(dest),c_loc(src),length*2*8_8,myKind,stream) end function function hipMemcpyAsync_c8_7(dest,src,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(inout) :: dest complex(c_double_complex),target,dimension(:,:,:,:,:,:,:),intent(in) :: src integer(kind(hipMemcpyHostToHost)) :: myKind type(c_ptr) :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpyAsync_c8_7 #else integer(kind(hipSuccess)) :: hipMemcpyAsync_c8_7 #endif ! hipMemcpyAsync_c8_7 = hipMemcpyAsync_(c_loc(dest),c_loc(src),size(dest)*2*8_8,myKind,stream) end function function hipMemcpy2D_l_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest integer(c_int) :: dpitch logical(c_bool),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_l_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_l_0_c_int #endif ! hipMemcpy2D_l_0_c_int = hipMemcpy2D_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind) end function function hipMemcpy2D_l_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest integer(c_size_t) :: dpitch logical(c_bool),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_l_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_l_0_c_size_t #endif ! hipMemcpy2D_l_0_c_size_t = hipMemcpy2D_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind) end function function hipMemcpy2D_l_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch logical(c_bool),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_l_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_l_1_c_int #endif ! hipMemcpy2D_l_1_c_int = hipMemcpy2D_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind) end function function hipMemcpy2D_l_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch logical(c_bool),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_l_1_c_size_t #endif ! hipMemcpy2D_l_1_c_size_t = hipMemcpy2D_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind) end function function hipMemcpy2D_l_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_l_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_l_2_c_int #endif ! hipMemcpy2D_l_2_c_int = hipMemcpy2D_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind) end function function hipMemcpy2D_l_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_l_2_c_size_t #endif ! hipMemcpy2D_l_2_c_size_t = hipMemcpy2D_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind) end function function hipMemcpy2D_i4_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int) :: dpitch integer(c_int),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_i4_0_c_int #endif ! hipMemcpy2D_i4_0_c_int = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_i4_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_int),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_i4_0_c_size_t #endif ! hipMemcpy2D_i4_0_c_size_t = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_i4_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_int),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_i4_1_c_int #endif ! hipMemcpy2D_i4_1_c_int = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_i4_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_int),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_i4_1_c_size_t #endif ! hipMemcpy2D_i4_1_c_size_t = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_i4_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_i4_2_c_int #endif ! hipMemcpy2D_i4_2_c_int = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_i4_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_i4_2_c_size_t #endif ! hipMemcpy2D_i4_2_c_size_t = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_i8_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_int) :: dpitch integer(c_long),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_i8_0_c_int #endif ! hipMemcpy2D_i8_0_c_int = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_i8_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_long),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_i8_0_c_size_t #endif ! hipMemcpy2D_i8_0_c_size_t = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_i8_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_long),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_i8_1_c_int #endif ! hipMemcpy2D_i8_1_c_int = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_i8_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_long),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_i8_1_c_size_t #endif ! hipMemcpy2D_i8_1_c_size_t = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_i8_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_i8_2_c_int #endif ! hipMemcpy2D_i8_2_c_int = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_i8_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_i8_2_c_size_t #endif ! hipMemcpy2D_i8_2_c_size_t = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_r4_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest integer(c_int) :: dpitch real(c_float),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_r4_0_c_int #endif ! hipMemcpy2D_r4_0_c_int = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_r4_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest integer(c_size_t) :: dpitch real(c_float),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_r4_0_c_size_t #endif ! hipMemcpy2D_r4_0_c_size_t = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_r4_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch real(c_float),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_r4_1_c_int #endif ! hipMemcpy2D_r4_1_c_int = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_r4_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_float),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_r4_1_c_size_t #endif ! hipMemcpy2D_r4_1_c_size_t = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_r4_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch real(c_float),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_r4_2_c_int #endif ! hipMemcpy2D_r4_2_c_int = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_r4_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_float),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_r4_2_c_size_t #endif ! hipMemcpy2D_r4_2_c_size_t = hipMemcpy2D_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind) end function function hipMemcpy2D_r8_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest integer(c_int) :: dpitch real(c_double),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_r8_0_c_int #endif ! hipMemcpy2D_r8_0_c_int = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_r8_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest integer(c_size_t) :: dpitch real(c_double),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_r8_0_c_size_t #endif ! hipMemcpy2D_r8_0_c_size_t = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_r8_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch real(c_double),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_r8_1_c_int #endif ! hipMemcpy2D_r8_1_c_int = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_r8_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_double),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_r8_1_c_size_t #endif ! hipMemcpy2D_r8_1_c_size_t = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_r8_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch real(c_double),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_r8_2_c_int #endif ! hipMemcpy2D_r8_2_c_int = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_r8_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_double),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_r8_2_c_size_t #endif ! hipMemcpy2D_r8_2_c_size_t = hipMemcpy2D_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind) end function function hipMemcpy2D_c4_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest integer(c_int) :: dpitch complex(c_float_complex),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_c4_0_c_int #endif ! hipMemcpy2D_c4_0_c_int = hipMemcpy2D_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind) end function function hipMemcpy2D_c4_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_float_complex),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_c4_0_c_size_t #endif ! hipMemcpy2D_c4_0_c_size_t = hipMemcpy2D_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind) end function function hipMemcpy2D_c4_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_c4_1_c_int #endif ! hipMemcpy2D_c4_1_c_int = hipMemcpy2D_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind) end function function hipMemcpy2D_c4_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_c4_1_c_size_t #endif ! hipMemcpy2D_c4_1_c_size_t = hipMemcpy2D_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind) end function function hipMemcpy2D_c4_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_c4_2_c_int #endif ! hipMemcpy2D_c4_2_c_int = hipMemcpy2D_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind) end function function hipMemcpy2D_c4_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_c4_2_c_size_t #endif ! hipMemcpy2D_c4_2_c_size_t = hipMemcpy2D_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind) end function function hipMemcpy2D_c8_0_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest integer(c_int) :: dpitch complex(c_double_complex),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_c8_0_c_int #endif ! hipMemcpy2D_c8_0_c_int = hipMemcpy2D_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind) end function function hipMemcpy2D_c8_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_double_complex),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_c8_0_c_size_t #endif ! hipMemcpy2D_c8_0_c_size_t = hipMemcpy2D_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind) end function function hipMemcpy2D_c8_1_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_c8_1_c_int #endif ! hipMemcpy2D_c8_1_c_int = hipMemcpy2D_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind) end function function hipMemcpy2D_c8_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_c8_1_c_size_t #endif ! hipMemcpy2D_c8_1_c_size_t = hipMemcpy2D_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind) end function function hipMemcpy2D_c8_2_c_int(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2D_c8_2_c_int #endif ! hipMemcpy2D_c8_2_c_int = hipMemcpy2D_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind) end function function hipMemcpy2D_c8_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2D_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2D_c8_2_c_size_t #endif ! hipMemcpy2D_c8_2_c_size_t = hipMemcpy2D_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind) end function function hipMemcpy2DAsync_l_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest integer(c_int) :: dpitch logical(c_bool),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_l_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_l_0_c_int #endif ! hipMemcpy2DAsync_l_0_c_int = hipMemcpy2DAsync_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_l_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,intent(inout) :: dest integer(c_size_t) :: dpitch logical(c_bool),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_l_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_l_0_c_size_t #endif ! hipMemcpy2DAsync_l_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_l_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch logical(c_bool),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_l_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_l_1_c_int #endif ! hipMemcpy2DAsync_l_1_c_int = hipMemcpy2DAsync_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_l_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch logical(c_bool),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_l_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_l_1_c_size_t #endif ! hipMemcpy2DAsync_l_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_l_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_l_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_l_2_c_int #endif ! hipMemcpy2DAsync_l_2_c_int = hipMemcpy2DAsync_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_l_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none logical(c_bool),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch logical(c_bool),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_l_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_l_2_c_size_t #endif ! hipMemcpy2DAsync_l_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),1_8*dpitch,c_loc(src),1_8*spitch,1_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i4_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_int) :: dpitch integer(c_int),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i4_0_c_int #endif ! hipMemcpy2DAsync_i4_0_c_int = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i4_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_int),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i4_0_c_size_t #endif ! hipMemcpy2DAsync_i4_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i4_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_int),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i4_1_c_int #endif ! hipMemcpy2DAsync_i4_1_c_int = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i4_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_int),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i4_1_c_size_t #endif ! hipMemcpy2DAsync_i4_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i4_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i4_2_c_int #endif ! hipMemcpy2DAsync_i4_2_c_int = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i4_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_int),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_int),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i4_2_c_size_t #endif ! hipMemcpy2DAsync_i4_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i8_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_int) :: dpitch integer(c_long),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i8_0_c_int #endif ! hipMemcpy2DAsync_i8_0_c_int = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i8_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_long),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i8_0_c_size_t #endif ! hipMemcpy2DAsync_i8_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i8_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_long),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i8_1_c_int #endif ! hipMemcpy2DAsync_i8_1_c_int = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i8_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_long),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i8_1_c_size_t #endif ! hipMemcpy2DAsync_i8_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i8_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i8_2_c_int #endif ! hipMemcpy2DAsync_i8_2_c_int = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_i8_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none integer(c_long),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch integer(c_long),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_i8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_i8_2_c_size_t #endif ! hipMemcpy2DAsync_i8_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r4_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest integer(c_int) :: dpitch real(c_float),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r4_0_c_int #endif ! hipMemcpy2DAsync_r4_0_c_int = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r4_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,intent(inout) :: dest integer(c_size_t) :: dpitch real(c_float),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r4_0_c_size_t #endif ! hipMemcpy2DAsync_r4_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r4_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch real(c_float),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r4_1_c_int #endif ! hipMemcpy2DAsync_r4_1_c_int = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r4_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_float),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r4_1_c_size_t #endif ! hipMemcpy2DAsync_r4_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r4_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch real(c_float),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r4_2_c_int #endif ! hipMemcpy2DAsync_r4_2_c_int = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r4_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_float),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_float),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r4_2_c_size_t #endif ! hipMemcpy2DAsync_r4_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),4_8*dpitch,c_loc(src),4_8*spitch,4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r8_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest integer(c_int) :: dpitch real(c_double),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r8_0_c_int #endif ! hipMemcpy2DAsync_r8_0_c_int = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r8_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,intent(inout) :: dest integer(c_size_t) :: dpitch real(c_double),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r8_0_c_size_t #endif ! hipMemcpy2DAsync_r8_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r8_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch real(c_double),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r8_1_c_int #endif ! hipMemcpy2DAsync_r8_1_c_int = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r8_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_double),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r8_1_c_size_t #endif ! hipMemcpy2DAsync_r8_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r8_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch real(c_double),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r8_2_c_int #endif ! hipMemcpy2DAsync_r8_2_c_int = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_r8_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none real(c_double),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch real(c_double),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_r8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_r8_2_c_size_t #endif ! hipMemcpy2DAsync_r8_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),8_8*dpitch,c_loc(src),8_8*spitch,8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c4_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest integer(c_int) :: dpitch complex(c_float_complex),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c4_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c4_0_c_int #endif ! hipMemcpy2DAsync_c4_0_c_int = hipMemcpy2DAsync_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c4_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_float_complex),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c4_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c4_0_c_size_t #endif ! hipMemcpy2DAsync_c4_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c4_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c4_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c4_1_c_int #endif ! hipMemcpy2DAsync_c4_1_c_int = hipMemcpy2DAsync_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c4_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_float_complex),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c4_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c4_1_c_size_t #endif ! hipMemcpy2DAsync_c4_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c4_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c4_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c4_2_c_int #endif ! hipMemcpy2DAsync_c4_2_c_int = hipMemcpy2DAsync_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c4_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_float_complex),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_float_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c4_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c4_2_c_size_t #endif ! hipMemcpy2DAsync_c4_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),2*4_8*dpitch,c_loc(src),2*4_8*spitch,2*4_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c8_0_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest integer(c_int) :: dpitch complex(c_double_complex),target,intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c8_0_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c8_0_c_int #endif ! hipMemcpy2DAsync_c8_0_c_int = hipMemcpy2DAsync_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c8_0_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_double_complex),target,intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c8_0_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c8_0_c_size_t #endif ! hipMemcpy2DAsync_c8_0_c_size_t = hipMemcpy2DAsync_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c8_1_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c8_1_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c8_1_c_int #endif ! hipMemcpy2DAsync_c8_1_c_int = hipMemcpy2DAsync_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c8_1_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_double_complex),target,dimension(:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c8_1_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c8_1_c_size_t #endif ! hipMemcpy2DAsync_c8_1_c_size_t = hipMemcpy2DAsync_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c8_2_c_int(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest integer(c_int) :: dpitch complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_int) :: spitch integer(c_int) :: width integer(c_int) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c8_2_c_int #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c8_2_c_int #endif ! hipMemcpy2DAsync_c8_2_c_int = hipMemcpy2DAsync_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind,stream) end function function hipMemcpy2DAsync_c8_2_c_size_t(dest,dpitch,src,spitch,width,height,myKind,stream) use iso_c_binding #ifdef USE_CUDA_NAMES use hipfort_cuda_errors #endif use hipfort_enums use hipfort_types implicit none complex(c_double_complex),target,dimension(:,:),intent(inout) :: dest integer(c_size_t) :: dpitch complex(c_double_complex),target,dimension(:,:),intent(in) :: src integer(c_size_t) :: spitch integer(c_size_t) :: width integer(c_size_t) :: height integer(kind(hipMemcpyHostToHost)),value :: myKind type(c_ptr),value :: stream #ifdef USE_CUDA_NAMES integer(kind(cudaSuccess)) :: hipMemcpy2DAsync_c8_2_c_size_t #else integer(kind(hipSuccess)) :: hipMemcpy2DAsync_c8_2_c_size_t #endif ! hipMemcpy2DAsync_c8_2_c_size_t = hipMemcpy2DAsync_(c_loc(dest),2*8_8*dpitch,c_loc(src),2*8_8*spitch,2*8_8*width,height*1_8,myKind,stream) end function #endif end module hipfort-7.2.4/lib/hipfort/hipfort_hipfft_enums.F900000664000175000017500000000532115207260635022315 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipfft_enums implicit none enum, bind(c) enumerator :: HIPFFT_SUCCESS = 0 enumerator :: HIPFFT_INVALID_PLAN = 1 enumerator :: HIPFFT_ALLOC_FAILED = 2 enumerator :: HIPFFT_INVALID_TYPE = 3 enumerator :: HIPFFT_INVALID_VALUE = 4 enumerator :: HIPFFT_INTERNAL_ERROR = 5 enumerator :: HIPFFT_EXEC_FAILED = 6 enumerator :: HIPFFT_SETUP_FAILED = 7 enumerator :: HIPFFT_INVALID_SIZE = 8 enumerator :: HIPFFT_UNALIGNED_DATA = 9 enumerator :: HIPFFT_INCOMPLETE_PARAMETER_LIST = 10 enumerator :: HIPFFT_INVALID_DEVICE = 11 enumerator :: HIPFFT_PARSE_ERROR = 12 enumerator :: HIPFFT_NO_WORKSPACE = 13 enumerator :: HIPFFT_NOT_IMPLEMENTED = 14 enumerator :: HIPFFT_NOT_SUPPORTED = 16 end enum enum, bind(c) enumerator :: HIPFFT_R2C = 42 enumerator :: HIPFFT_C2R = 44 enumerator :: HIPFFT_C2C = 41 enumerator :: HIPFFT_D2Z = 106 enumerator :: HIPFFT_Z2D = 108 enumerator :: HIPFFT_Z2Z = 105 end enum enum, bind(c) enumerator :: HIPFFT_MAJOR_VERSION enumerator :: HIPFFT_MINOR_VERSION enumerator :: HIPFFT_PATCH_LEVEL end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_hipfft_enumshipfort-7.2.4/lib/hipfort/hipfort_roctx.f900000664000175000017500000000541015207260635021024 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_roctx interface subroutine roctxMark(message) bind(c, name="roctxMarkA") use iso_c_binding, only: c_char implicit none character(kind=c_char) :: message(*) end subroutine roctxMark function roctxRangePush(message) bind(c, name="roctxRangePushA") use iso_c_binding, only: c_int,& c_char implicit none integer(c_int) :: roctxRangePush character(kind=c_char) :: message(*) end function roctxRangePush function roctxRangePop() bind(c, name="roctxRangePop") use iso_c_binding, only: c_int implicit none integer(c_int) :: roctxRangePop end function roctxRangePop function roctxRangeStart(message) bind(c, name="roctxRangeStartA") use iso_c_binding, only: c_size_t,& c_char implicit none integer(c_size_t) :: roctxRangeStart character(kind=c_char) :: message(*) end function roctxRangeStart subroutine roctxRangeStop(range_id) bind (c, name="roctxRangeStop") use iso_c_binding, only: c_size_t implicit none integer(c_size_t) :: range_id end subroutine roctxRangeStop end interface end module hipfort_roctx hipfort-7.2.4/lib/hipfort/hipfort_rocsolver_enums.F900000664000175000017500000000512015207260635023050 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocsolver_enums implicit none enum, bind(c) enumerator :: rocblas_layer_mode_ex_log_kernel = 16 end enum enum, bind(c) enumerator :: rocblas_forward_direction = 171 enumerator :: rocblas_backward_direction = 172 end enum enum, bind(c) enumerator :: rocblas_column_wise = 181 enumerator :: rocblas_row_wise = 182 end enum enum, bind(c) enumerator :: rocblas_svect_all = 191 enumerator :: rocblas_svect_singular = 192 enumerator :: rocblas_svect_overwrite = 193 enumerator :: rocblas_svect_none = 194 end enum enum, bind(c) enumerator :: rocblas_outofplace = 201 enumerator :: rocblas_inplace = 202 end enum enum, bind(c) enumerator :: rocblas_evect_original = 211 enumerator :: rocblas_evect_tridiagonal = 212 enumerator :: rocblas_evect_none = 213 end enum enum, bind(c) enumerator :: rocblas_eform_ax = 221 enumerator :: rocblas_eform_abx = 222 enumerator :: rocblas_eform_bax = 223 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_rocsolver_enumshipfort-7.2.4/lib/hipfort/hipfort_rocsparse_enums.F900000664000175000017500000001602615207260635023042 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocsparse_enums implicit none enum, bind(c) enumerator :: rocsparse_operation_none = 111 enumerator :: rocsparse_operation_transpose = 112 enumerator :: rocsparse_operation_conjugate_transpose = 113 end enum enum, bind(c) enumerator :: rocsparse_index_base_zero = 0 enumerator :: rocsparse_index_base_one = 1 end enum enum, bind(c) enumerator :: rocsparse_matrix_type_general = 0 enumerator :: rocsparse_matrix_type_symmetric = 1 enumerator :: rocsparse_matrix_type_hermitian = 2 enumerator :: rocsparse_matrix_type_triangular = 3 end enum enum, bind(c) enumerator :: rocsparse_diag_type_non_unit = 0 enumerator :: rocsparse_diag_type_unit = 1 end enum enum, bind(c) enumerator :: rocsparse_fill_mode_lower = 0 enumerator :: rocsparse_fill_mode_upper = 1 end enum enum, bind(c) enumerator :: rocsparse_action_symbolic = 0 enumerator :: rocsparse_action_numeric = 1 end enum enum, bind(c) enumerator :: rocsparse_direction_row = 0 enumerator :: rocsparse_direction_column = 1 end enum enum, bind(c) enumerator :: rocsparse_hyb_partition_auto = 0 enumerator :: rocsparse_hyb_partition_user = 1 enumerator :: rocsparse_hyb_partition_max = 2 end enum enum, bind(c) enumerator :: rocsparse_analysis_policy_reuse = 0 enumerator :: rocsparse_analysis_policy_force = 1 end enum enum, bind(c) enumerator :: rocsparse_solve_policy_auto = 0 end enum enum, bind(c) enumerator :: rocsparse_pointer_mode_host = 0 enumerator :: rocsparse_pointer_mode_device = 1 end enum enum, bind(c) enumerator :: rocsparse_layer_mode_none = 0 enumerator :: rocsparse_layer_mode_log_trace = 1 enumerator :: rocsparse_layer_mode_log_bench = 2 end enum enum, bind(c) enumerator :: rocsparse_status_success = 0 enumerator :: rocsparse_status_invalid_handle = 1 enumerator :: rocsparse_status_not_implemented = 2 enumerator :: rocsparse_status_invalid_pointer = 3 enumerator :: rocsparse_status_invalid_size = 4 enumerator :: rocsparse_status_memory_error = 5 enumerator :: rocsparse_status_internal_error = 6 enumerator :: rocsparse_status_invalid_value = 7 enumerator :: rocsparse_status_arch_mismatch = 8 enumerator :: rocsparse_status_zero_pivot = 9 enumerator :: rocsparse_status_not_initialized = 10 enumerator :: rocsparse_status_type_mismatch = 11 end enum enum, bind(c) enumerator :: rocsparse_indextype_u16 = 1 enumerator :: rocsparse_indextype_i32 = 2 enumerator :: rocsparse_indextype_i64 = 3 end enum enum, bind(c) enumerator :: rocsparse_datatype_f32_r = 151 enumerator :: rocsparse_datatype_f64_r = 152 enumerator :: rocsparse_datatype_f32_c = 154 enumerator :: rocsparse_datatype_f64_c = 155 end enum enum, bind(c) enumerator :: rocsparse_format_coo = 0 enumerator :: rocsparse_format_coo_aos = 1 enumerator :: rocsparse_format_csr = 2 enumerator :: rocsparse_format_csc = 3 enumerator :: rocsparse_format_ell = 4 enumerator :: rocsparse_format_bell = 5 end enum enum, bind(c) enumerator :: rocsparse_order_row = 0 enumerator :: rocsparse_order_column = 1 end enum enum, bind(c) enumerator :: rocsparse_spmat_fill_mode = 0 enumerator :: rocsparse_spmat_diag_type = 1 enumerator :: rocsparse_spmat_matrix_type = 2 end enum enum, bind(c) enumerator :: rocsparse_spmv_alg_default = 0 enumerator :: rocsparse_spmv_alg_coo = 1 enumerator :: rocsparse_spmv_alg_csr_adaptive = 2 enumerator :: rocsparse_spmv_alg_csr_stream = 3 enumerator :: rocsparse_spmv_alg_ell = 4 end enum enum, bind(c) enumerator :: rocsparse_spsv_alg_default = 0 end enum enum, bind(c) enumerator :: rocsparse_spsv_stage_auto = 0 enumerator :: rocsparse_spsv_stage_buffer_size = 1 enumerator :: rocsparse_spsv_stage_preprocess = 2 enumerator :: rocsparse_spsv_stage_compute = 3 end enum enum, bind(c) enumerator :: rocsparse_spsm_alg_default = 0 end enum enum, bind(c) enumerator :: rocsparse_spsm_stage_auto = 0 enumerator :: rocsparse_spsm_stage_buffer_size = 1 enumerator :: rocsparse_spsm_stage_preprocess = 2 enumerator :: rocsparse_spsm_stage_compute = 3 end enum enum, bind(c) enumerator :: rocsparse_spmm_alg_default = 0 enumerator :: rocsparse_spmm_alg_csr enumerator :: rocsparse_spmm_alg_coo_segmented enumerator :: rocsparse_spmm_alg_coo_atomic enumerator :: rocsparse_spmm_alg_csr_row_split enumerator :: rocsparse_spmm_alg_csr_merge enumerator :: rocsparse_spmm_alg_coo_segmented_atomic enumerator :: rocsparse_spmm_alg_bell end enum enum, bind(c) enumerator :: rocsparse_sddmm_alg_default = 0 end enum enum, bind(c) enumerator :: rocsparse_sparse_to_dense_alg_default = 0 end enum enum, bind(c) enumerator :: rocsparse_dense_to_sparse_alg_default = 0 end enum enum, bind(c) enumerator :: rocsparse_spmm_stage_auto = 0 enumerator :: rocsparse_spmm_stage_buffer_size = 1 enumerator :: rocsparse_spmm_stage_preprocess = 2 enumerator :: rocsparse_spmm_stage_compute = 3 end enum enum, bind(c) enumerator :: rocsparse_spgemm_stage_auto = 0 enumerator :: rocsparse_spgemm_stage_buffer_size = 1 enumerator :: rocsparse_spgemm_stage_nnz = 2 enumerator :: rocsparse_spgemm_stage_compute = 3 end enum enum, bind(c) enumerator :: rocsparse_spgemm_alg_default = 0 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_rocsparse_enumshipfort-7.2.4/lib/hipfort/hipfort_hipsolver_enums.F900000664000175000017500000001101515207260635023045 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_hipsolver_enums implicit none enum, bind(c) enumerator :: HIPSOLVER_STATUS_SUCCESS = 0 enumerator :: HIPSOLVER_STATUS_NOT_INITIALIZED = 1 enumerator :: HIPSOLVER_STATUS_ALLOC_FAILED = 2 enumerator :: HIPSOLVER_STATUS_INVALID_VALUE = 3 enumerator :: HIPSOLVER_STATUS_MAPPING_ERROR = 4 enumerator :: HIPSOLVER_STATUS_EXECUTION_FAILED = 5 enumerator :: HIPSOLVER_STATUS_INTERNAL_ERROR = 6 enumerator :: HIPSOLVER_STATUS_NOT_SUPPORTED = 7 enumerator :: HIPSOLVER_STATUS_ARCH_MISMATCH = 8 enumerator :: HIPSOLVER_STATUS_HANDLE_IS_NULLPTR = 9 enumerator :: HIPSOLVER_STATUS_INVALID_ENUM = 10 enumerator :: HIPSOLVER_STATUS_UNKNOWN = 11 end enum enum, bind(c) enumerator :: HIPSOLVER_OP_N = 111 enumerator :: HIPSOLVER_OP_T = 112 enumerator :: HIPSOLVER_OP_C = 113 end enum enum, bind(c) enumerator :: HIPSOLVER_FILL_MODE_UPPER = 121 enumerator :: HIPSOLVER_FILL_MODE_LOWER = 122 enumerator :: HIPSOLVER_FILL_MODE_FULL = 123 end enum enum, bind(c) enumerator :: HIPSOLVER_SIDE_LEFT = 141 enumerator :: HIPSOLVER_SIDE_RIGHT = 142 end enum enum, bind(c) enumerator :: HIPSOLVER_EIG_MODE_NOVECTOR = 201 enumerator :: HIPSOLVER_EIG_MODE_VECTOR = 202 end enum enum, bind(c) enumerator :: HIPSOLVER_EIG_TYPE_1 = 211 enumerator :: HIPSOLVER_EIG_TYPE_2 = 212 enumerator :: HIPSOLVER_EIG_TYPE_3 = 213 end enum enum, bind(c) enumerator :: HIPSOLVER_EIG_RANGE_ALL = 221 enumerator :: HIPSOLVER_EIG_RANGE_V = 222 enumerator :: HIPSOLVER_EIG_RANGE_I = 223 end enum enum, bind(c) enumerator :: HIPSOLVER_DETERMINISTIC_RESULTS = 241 enumerator :: HIPSOLVER_ALLOW_NON_DETERMINISTIC_RESULTS = 242 end enum enum, bind(c) enumerator :: HIPSOLVER_ALG_0 = 231 enumerator :: HIPSOLVER_ALG_1 = 232 end enum enum, bind(c) enumerator :: HIPSOLVERDN_GETRF = 0 end enum enum, bind(c) enumerator :: HIPSOLVERRF_FACTORIZATION_ALG0 = 0 enumerator :: HIPSOLVERRF_FACTORIZATION_ALG1 = 1 enumerator :: HIPSOLVERRF_FACTORIZATION_ALG2 = 2 end enum enum, bind(c) enumerator :: HIPSOLVERRF_MATRIX_FORMAT_CSR = 0 enumerator :: HIPSOLVERRF_MATRIX_FORMAT_CSC = 1 end enum enum, bind(c) enumerator :: HIPSOLVERRF_NUMERIC_BOOST_NOT_USED = 0 enumerator :: HIPSOLVERRF_NUMERIC_BOOST_USED = 1 end enum enum, bind(c) enumerator :: HIPSOLVERRF_RESET_VALUES_FAST_MODE_OFF = 0 enumerator :: HIPSOLVERRF_RESET_VALUES_FAST_MODE_ON = 1 end enum enum, bind(c) enumerator :: HIPSOLVERRF_TRIANGULAR_SOLVE_ALG1 = 1 enumerator :: HIPSOLVERRF_TRIANGULAR_SOLVE_ALG2 = 2 enumerator :: HIPSOLVERRF_TRIANGULAR_SOLVE_ALG3 = 3 end enum enum, bind(c) enumerator :: HIPSOLVERRF_UNIT_DIAGONAL_STORED_L = 0 enumerator :: HIPSOLVERRF_UNIT_DIAGONAL_STORED_U = 1 enumerator :: HIPSOLVERRF_UNIT_DIAGONAL_ASSUMED_L = 2 enumerator :: HIPSOLVERRF_UNIT_DIAGONAL_ASSUMED_U = 3 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_hipsolver_enums hipfort-7.2.4/lib/hipfort/hipfort_rocblas_enums.F900000664000175000017500000001174115207260635022465 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ============================================================================== ! hipfort: FORTRAN Interfaces for GPU kernels ! ============================================================================== ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. ! [MITx11 License] ! ! 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 hipfort_rocblas_enums implicit none enum, bind(c) enumerator :: rocblas_operation_none = 111 enumerator :: rocblas_operation_transpose = 112 enumerator :: rocblas_operation_conjugate_transpose = 113 end enum enum, bind(c) enumerator :: rocblas_fill_upper = 121 enumerator :: rocblas_fill_lower = 122 enumerator :: rocblas_fill_full = 123 end enum enum, bind(c) enumerator :: rocblas_diagonal_non_unit = 131 enumerator :: rocblas_diagonal_unit = 132 end enum enum, bind(c) enumerator :: rocblas_side_left = 141 enumerator :: rocblas_side_right = 142 enumerator :: rocblas_side_both = 143 end enum enum, bind(c) enumerator :: rocblas_status_success = 0 enumerator :: rocblas_status_invalid_handle = 1 enumerator :: rocblas_status_not_implemented = 2 enumerator :: rocblas_status_invalid_pointer = 3 enumerator :: rocblas_status_invalid_size = 4 enumerator :: rocblas_status_memory_error = 5 enumerator :: rocblas_status_internal_error = 6 enumerator :: rocblas_status_perf_degraded = 7 enumerator :: rocblas_status_size_query_mismatch = 8 enumerator :: rocblas_status_size_increased = 9 enumerator :: rocblas_status_size_unchanged = 10 enumerator :: rocblas_status_invalid_value = 11 enumerator :: rocblas_status_continue = 12 enumerator :: rocblas_status_check_numerics_fail = 13 end enum enum, bind(c) enumerator :: rocblas_datatype_f16_r = 150 enumerator :: rocblas_datatype_f32_r = 151 enumerator :: rocblas_datatype_f64_r = 152 enumerator :: rocblas_datatype_f16_c = 153 enumerator :: rocblas_datatype_f32_c = 154 enumerator :: rocblas_datatype_f64_c = 155 enumerator :: rocblas_datatype_i8_r = 160 enumerator :: rocblas_datatype_u8_r = 161 enumerator :: rocblas_datatype_i32_r = 162 enumerator :: rocblas_datatype_u32_r = 163 enumerator :: rocblas_datatype_i8_c = 164 enumerator :: rocblas_datatype_u8_c = 165 enumerator :: rocblas_datatype_i32_c = 166 enumerator :: rocblas_datatype_u32_c = 167 enumerator :: rocblas_datatype_bf16_r = 168 enumerator :: rocblas_datatype_bf16_c = 169 end enum enum, bind(c) enumerator :: rocblas_pointer_mode_host = 0 enumerator :: rocblas_pointer_mode_device = 1 end enum enum, bind(c) enumerator :: rocblas_atomics_not_allowed = 0 enumerator :: rocblas_atomics_allowed = 1 end enum enum, bind(c) enumerator :: rocblas_default_performance_metric = 0 enumerator :: rocblas_device_efficiency_performance_metric = 1 enumerator :: rocblas_cu_efficiency_performance_metric = 2 end enum enum, bind(c) enumerator :: rocblas_layer_mode_none = 0 enumerator :: rocblas_layer_mode_log_trace = 1 enumerator :: rocblas_layer_mode_log_bench = 2 enumerator :: rocblas_layer_mode_log_profile = 4 end enum enum, bind(c) enumerator :: rocblas_gemm_algo_standard = 0 end enum enum, bind(c) enumerator :: rocblas_gemm_flags_none = 0 enumerator :: rocblas_gemm_flags_pack_int8x4 = 1 enumerator :: rocblas_gemm_flags_use_cu_efficiency = 2 enumerator :: rocblas_gemm_flags_fp16_alt_impl = 4 end enum enum, bind(c) enumerator :: rocblas_check_numerics_mode_no_check = 0 enumerator :: rocblas_check_numerics_mode_info = 1 enumerator :: rocblas_check_numerics_mode_warn = 2 enumerator :: rocblas_check_numerics_mode_fail = 4 end enum #ifdef USE_FPOINTER_INTERFACES #endif end module hipfort_rocblas_enumshipfort-7.2.4/test/0000775000175000017500000000000015207260635014350 5ustar alastairalastairhipfort-7.2.4/test/f2003/0000775000175000017500000000000015207260635015102 5ustar alastairalastairhipfort-7.2.4/test/f2003/hipfft/0000775000175000017500000000000015207260635016362 5ustar alastairalastairhipfort-7.2.4/test/f2003/hipfft/Makefile0000664000175000017500000000006615207260635020024 0ustar alastairalastairCFLAGS ?= -lhipfft -lrocfft include ../../Makefile.inhipfort-7.2.4/test/f2003/hipfft/hipfft.f030000664000175000017500000000337615207260635020165 0ustar alastairalastairprogram hipfft_example use iso_c_binding use hipfort use hipfort_check use hipfort_hipfft implicit none integer(c_size_t), parameter :: N = 16 integer(c_size_t), parameter :: Nbytes = N * 8 * 2 type double2 double precision :: x double precision :: y end type double2 type(double2), allocatable, target, dimension(:) :: hx integer(c_int) :: direction = HIPFFT_FORWARD type(c_ptr) :: dx = c_null_ptr type(c_ptr) :: plan = c_null_ptr integer(c_size_t), allocatable, target, dimension(:) :: lengths integer(c_size_t), parameter :: one = 1 integer :: i integer(kind(HIPFFT_SUCCESS)) :: ierr double precision :: error double precision, parameter :: error_max = epsilon(error) write(*,"(a)",advance="no") "-- Running test 'hipFFT' (Fortran 2003 interfaces) - " allocate(lengths(3)) lengths(1) = N allocate(hx(N)) hx(:)%x = 1 hx(:)%y = -1 call hipCheck(hipMalloc(dx, Nbytes)) call hipCheck(hipMemcpy(dx, c_loc(hx(1)), Nbytes, hipMemcpyHostToDevice)) call hipfftCheck(hipfftPlan1d(plan, int(N, 4), HIPFFT_Z2Z, 1)) call hipfftCheck(hipfftExecZ2Z(plan, dx, dx, direction)) call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(c_loc(hx(1)),dx,Nbytes,hipMemcpyDeviceToHost)) call hipCheck(hipFree(dx)) ! Using the C++ version of this as the "gold". ! first components were \pm 16 and the remaining componenents ! were zero, so the sum of each component pair should be zero do i = 1,N error = abs(hx(i) % x + hx(i) % y) if(error > error_max)then write(*,*) "FAILED! Error = ", error, "hx(i)%x = ", hx(i)%x, "hx(i)%y = " end if end do deallocate(hx) deallocate(lengths) call hipfftcheck( hipfftDestroy(plan)) write(*,*) "PASSED!" end program hipfft_examplehipfort-7.2.4/test/f2003/rocblas/0000775000175000017500000000000015207260635016527 5ustar alastairalastairhipfort-7.2.4/test/f2003/rocblas/saxpy.f030000664000175000017500000000673615207260635020221 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. ! ! 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. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program rocblas_saxpy_test use iso_c_binding use hipfort use hipfort_check use hipfort_rocblas implicit none integer, parameter :: N = 12000 integer, parameter :: bytes_per_element = 4 ! single precision integer(c_size_t), parameter :: Nbytes = N * bytes_per_element real(c_float), target :: alpha = 12.5 type(c_ptr) :: dx = c_null_ptr type(c_ptr) :: dy = c_null_ptr real,allocatable,target,dimension(:) :: hx real,allocatable,target,dimension(:) :: hy real,allocatable,target,dimension(:) :: hz real :: error real :: result real, parameter :: error_max = 10 * epsilon(error_max) type(c_ptr) :: rocblas_handle integer :: i write(*,"(a)",advance="no") "-- Running test 'saxpy' (Fortran 2003 interfaces) - " ! Create rocblas handle call rocblasCheck(rocblas_create_handle(rocblas_handle)) ! Allocate host-side memory allocate(hx(N)) allocate(hy(N)) allocate(hz(N)) ! Allocate device-side memory call hipCheck(hipMalloc(dx, Nbytes)) call hipCheck(hipMalloc(dy, Nbytes)) ! Initialize host memory do i = 1, n hx(i) = i hy(i) = n - i hz(i) = n - i end do ! Transfer data from host to deivce memory call hipCheck(hipMemcpy(dx, c_loc(hx(1)), Nbytes, hipMemcpyHostToDevice)) call hipCheck(hipmemcpy(dy, c_loc(hy(1)), Nbytes, hipMemcpyHostToDevice)) ! Call rocblas function call rocblasCheck(rocblas_set_pointer_mode(rocblas_handle, 0)) call rocblasCheck(rocblas_saxpy(rocblas_handle, N, alpha, dx, 1, dy, 1)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipcheck(hipMemcpy(c_loc(hy(1)), dy, Nbytes, hipMemcpyDeviceToHost)) ! Verification do i = 1, N result = alpha * hx(i) + hz(i) error = abs(hy(i) - result) if(error .gt. error_max) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " hy(", i, ") = ", hy(i) call exit end if end do ! Cleanup call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(hx, hy, hz) call rocblasCheck(rocblas_destroy_handle(rocblas_handle)) write(*,*) "PASSED!" end program rocblas_saxpy_testhipfort-7.2.4/test/f2003/rocblas/Makefile0000664000175000017500000000005715207260635020171 0ustar alastairalastairCFLAGS ?= -lrocblas include ../../Makefile.in hipfort-7.2.4/test/f2003/rocblas/.gitignore0000664000175000017500000000000515207260635020512 0ustar alastairalastairsaxpyhipfort-7.2.4/test/f2003/rocsparse/0000775000175000017500000000000015207260635017103 5ustar alastairalastairhipfort-7.2.4/test/f2003/rocsparse/ddoti.f030000664000175000017500000000713615207260635020527 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. ! ! 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. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program rocsparse_ddoti_test use iso_c_binding use hipfort use hipfort_check use hipfort_rocsparse implicit none integer, target :: h_xind(3) real(8), target :: h_xval(3), h_y(9) real(8), target :: h_dot type(c_ptr) :: d_xind type(c_ptr) :: d_xval type(c_ptr) :: d_y type(c_ptr) :: d_dot integer :: i integer(c_int) :: M, nnz type(c_ptr) :: handle write(*,"(a)",advance="no") "-- Running test 'ddoti' (Fortran 2003 interfaces) - " ! Input data ! Number of rows M = 9 ! Number of non-zero entries nnz = 3 ! Fill structures h_xind = (/0, 3, 5/) h_xval = (/1, 2, 3/) h_y = (/1, 2, 3, 4, 5, 6, 7, 8, 9/) ! Allocate device memory call hipCheck(hipMalloc(d_xind, (int(nnz, c_size_t) + 1) * 4)) call hipCheck(hipMalloc(d_xval, int(nnz, c_size_t) * 8)) call hipCheck(hipMalloc(d_y, int(M, c_size_t) * 8)) call hipCheck(hipMalloc(d_dot, int(8, c_size_t))) ! Copy host data to device call hipCheck(hipMemcpy(d_xind, c_loc(h_xind(1)), (int(nnz, c_size_t) + 1) * 4, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(d_xval, c_loc(h_xval(1)), int(nnz, c_size_t) * 8, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(d_y, c_loc(h_y(1)), int(M, c_size_t) * 8, hipMemcpyHostToDevice)) ! Create rocSPARSE handle call rocsparseCheck(rocsparse_create_handle(handle)) call rocsparseCheck(rocsparse_set_pointer_mode(handle, rocsparse_pointer_mode_device)) ! Call ddoti call rocsparseCheck(rocsparse_ddoti(handle, & nnz, & d_xval, & d_xind, & d_y, & d_dot, & rocsparse_index_base_zero)) ! Copy result back to host call hipCheck(hipMemcpy(c_loc(h_dot), d_dot, int(8, c_size_t), hipMemcpyDeviceToHost)) ! Verification if(h_dot /= 27d0) then write(*,*) 'FAILED!' call exit end if ! Clear rocSPARSE call rocsparseCheck(rocsparse_destroy_handle(handle)) ! Clear device memory call hipCheck(hipFree(d_xind)) call hipCheck(hipFree(d_xval)) call hipCheck(hipFree(d_y)) call hipCheck(hipFree(d_dot)) ! Print success write(*,*) 'PASSED!' end program rocsparse_ddoti_testhipfort-7.2.4/test/f2003/rocsparse/Makefile0000664000175000017500000000006115207260635020540 0ustar alastairalastairCFLAGS ?= -lrocsparse include ../../Makefile.in hipfort-7.2.4/test/f2003/rocsparse/.gitignore0000664000175000017500000000000615207260635021067 0ustar alastairalastairddoti hipfort-7.2.4/test/f2003/hipblas/0000775000175000017500000000000015207260635016524 5ustar alastairalastairhipfort-7.2.4/test/f2003/hipblas/scopy.f030000664000175000017500000000315615207260635020200 0ustar alastairalastairprogram hip_scopy use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: n = 6 type(c_ptr) :: handle = c_null_ptr integer :: j real, allocatable, target, dimension(:) :: x, y integer, parameter :: bytes_per_element = 4 !float precision type(c_ptr) :: dx = c_null_ptr, dy = c_null_ptr integer(c_size_t) :: Nxbytes integer(c_size_t) :: Nybytes real :: error real, parameter :: error_max = 10*epsilon(error) Nxbytes = n * bytes_per_element Nybytes = n * bytes_per_element allocate(x(n)) allocate(y(n)) do j = 1,n x(j) = j ! write(*,*) "value of x(j)" , x(j) end do write(*,"(a)",advance="no") "-- Running test 'Scopy' (Fortran 2003 interfaces) - " do j = 1,n y(j) = x(j) ! write(*,*) "value of y(j)" , y(j) end do call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,Nxbytes)) call hipCheck(hipMalloc(dy,Nybytes)) call hipCheck(hipMemcpy(dx, c_loc(x(1)), Nxbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(y(1)), Nybytes, hipMemcpyHostToDevice)) call hipblasCheck(hipblasScopy(handle,n,dx,1,dy,1)) call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(c_loc(y(1)), dy, Nybytes, hipMemcpyDeviceToHost)) do j = 1,n error = abs(y(j) - x(j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) call hipblasCheck(hipblasDestroy(handle)) deallocate(x) deallocate(y) write(*,*) "PASSED!" end program hip_scopy hipfort-7.2.4/test/f2003/hipblas/sgemv.f030000664000175000017500000000351215207260635020160 0ustar alastairalastairprogram hip_sgemv use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: m = 6 integer :: n = 5 integer :: i, j real, parameter :: alpha = 1.0 real, parameter :: beta = 0.0 type(c_ptr) :: handle = c_null_ptr real(kind=4), allocatable, target, dimension(:) :: a, x, y type(c_ptr) :: da = c_null_ptr, dx = c_null_ptr, dy = c_null_ptr integer(c_size_t) :: Nabytes, Nxbytes, Nybytes integer, parameter :: bytes_per_element = 4 !float precision real :: error real, parameter :: error_max = 10*epsilon(error) Nabytes = m * n * bytes_per_element Nxbytes = n * bytes_per_element Nybytes = m * bytes_per_element allocate(x(n)) allocate(y(m)) allocate(a(m*n)) a(:) = 1.0 x(:) = 1.0 y(:) = 1.0 write(*,"(a)",advance="no") "-- Running test 'SGEMV' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,Nxbytes)) call hipCheck(hipMalloc(dy,Nybytes)) call hipCheck(hipMalloc(da,Nabytes)) call hipCheck(hipMemcpy(da, c_loc(a(1)), Nabytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dx, c_loc(x(1)), Nxbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(y(1)), Nybytes, hipMemcpyHostToDevice)) call hipCheck(hipblasSgemv(handle,HIPBLAS_OP_N,m,n,alpha,da,m,dx,1,beta,dy,1)) call hipCheck(hipMemcpy(c_loc(y(1)), dy, Nybytes, hipMemcpyDeviceToHost)) do i = 1,m error = abs(5.0 - y(i)) if( error > 10*epsilon(error) )then write(*,*) "FAILED! Error bigger than max! Error = ", error, "y(i) = ", y(i) call exit(1) end if end do call hipblasCheck(hipblasDestroy(handle)) call hipCheck(hipFree(da)) call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(a) deallocate(x) deallocate(y) write(*,*) "PASSED!" end program hip_sgemv hipfort-7.2.4/test/f2003/hipblas/dscal.f030000664000175000017500000000315615207260635020131 0ustar alastairalastairprogram hip_dscal use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer, parameter :: N = 10240; integer, parameter :: bytes_per_element = 8 !double precision integer(c_size_t), parameter :: Nbytes = N*bytes_per_element double precision, parameter :: alpha = 10.d0 type(c_ptr) :: dx = c_null_ptr double precision,allocatable,target,dimension(:) :: hx double precision,allocatable,dimension(:) ::hx_scaled double precision :: error double precision, parameter :: error_max = 10*epsilon(error_max) type(c_ptr) :: hip_blas_handle = c_null_ptr integer :: i write(*,"(a)",advance="no") "-- Running test 'dscal' (Fortran 2003 interfaces) - " allocate(hx(N)) allocate(hx_scaled(N)) hx(:) = 10.d0 hx_scaled = alpha*hx call hipblasCheck(hipblasCreate(hip_blas_handle)) call hipCheck(hipMalloc(dx,Nbytes)) ! Transfer data from host to device memory call hipCheck(hipMemcpy(dx, c_loc(hx(1)), Nbytes, hipMemcpyHostToDevice)) call hipblasCheck(hipblasDscal(hip_blas_handle, N, alpha, dx, 1)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(c_loc(hx(1)), dx, Nbytes, hipMemcpyDeviceToHost)) call hipCheck(hipFree(dx)) ! Verification do i = 1,N error = abs(hx(i) - hx_scaled(i) ) if( error .gt. error_max ) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " hx(i) = ", hx(i) call exit endif end do call hipblasCheck(hipblasDestroy(hip_blas_handle)) deallocate(hx_scaled) deallocate(hx) write(*,*) "PASSED!" end program hip_dscalhipfort-7.2.4/test/f2003/hipblas/dgemm.f030000664000175000017500000000506615207260635020136 0ustar alastairalastairprogram hip_dgemm use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer(kind(HIPBLAS_OP_N)), parameter :: transa = HIPBLAS_OP_N, transb = HIPBLAS_OP_N; double precision, parameter :: alpha = 1.1d0, beta = 0.9d0; integer, parameter :: m = 1024, n = 1024, k = 1024; integer :: lda, ldb, ldc, size_a, size_b, size_c; double precision, allocatable, target, dimension(:) :: ha, hb, hc double precision, allocatable, dimension(:) :: hc_exact type(c_ptr) :: da = c_null_ptr, db = c_null_ptr, dc = c_null_ptr type(c_ptr) :: handle = c_null_ptr integer, parameter :: bytes_per_element = 8 !double precision integer(c_size_t) :: Nabytes, Nbbytes, Ncbytes integer :: i double precision :: error double precision, parameter :: error_max = 10*epsilon(error) write(*,"(a)",advance="no") "-- Running test 'DGEMM' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) lda = m; size_a = k * lda; Nabytes = size_a*bytes_per_element ldb = k; size_b = n * ldb; Nbbytes = size_b*bytes_per_element ldc = m; size_c = n * ldc; Ncbytes = size_c*bytes_per_element allocate(ha(size_a)) allocate(hb(size_b)) allocate(hc(size_c)) allocate(hc_exact(size_c)) ! Use these constant matrices so the exact answer is also a ! constant matrix and therefore easy to check ha(:) = 1.d0 hb(:) = 2.d0 hc(:) = 3.d0 hc_exact = alpha*k*2.d0 + beta*3.d0 ! Allocate device memory call hipCheck(hipMalloc(da,Nabytes)) call hipCheck(hipMalloc(db,Nbbytes)) call hipCheck(hipMalloc(dc,Ncbytes)) !Transfer from host to device call hipCheck(hipMemcpy(da, c_loc(ha(1)), Nabytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(db, c_loc(hb(1)), Nbbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dc, c_loc(hc(1)), Ncbytes, hipMemcpyHostToDevice)) call hipblasCheck(hipblasDgemm(handle,transa,transb,m,n,k,alpha,da,lda,db,ldb,beta,dc,ldc)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(c_loc(hc(1)), dc, Ncbytes, hipMemcpyDeviceToHost)) do i = 1,size_c error = abs((hc_exact(i) - hc(i))/hc_exact(i)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipCheck(hipFree(da)) call hipCheck(hipFree(db)) call hipCheck(hipFree(dc)) call hipblasCheck(hipblasDestroy(handle)) deallocate(ha) deallocate(hb) deallocate(hc) deallocate(hc_exact) write(*,*) "PASSED!" end program hip_dgemm hipfort-7.2.4/test/f2003/hipblas/cgemm.f030000664000175000017500000000524615207260635020135 0ustar alastairalastairprogram hip_dgemm use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer(kind(HIPBLAS_OP_N)), parameter :: transa = HIPBLAS_OP_N, transb = HIPBLAS_OP_N; complex(kind=4), parameter :: alpha = 1.1d0, beta = 0.9d0; integer, parameter :: m = 512, n = 512, k = 512; integer :: lda, ldb, ldc, size_a, size_b, size_c; complex(kind=4), allocatable, target, dimension(:,:) :: ha, hb, hc complex(kind=4), allocatable, dimension(:,:) :: hc_exact type(c_ptr) :: da = c_null_ptr, db = c_null_ptr, dc = c_null_ptr type(c_ptr) :: handle = c_null_ptr integer, parameter :: bytes_per_element = 8 ! 2x float integer(c_size_t) :: Nabytes, Nbbytes, Ncbytes integer :: i,j double precision :: error double precision, parameter :: error_max = 10*epsilon(error) write(*,"(a)",advance="no") "-- Running test 'CGEMM' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) lda = m; size_a = k * lda; Nabytes = size_a*bytes_per_element ldb = k; size_b = n * ldb; Nbbytes = size_b*bytes_per_element ldc = m; size_c = n * ldc; Ncbytes = size_c*bytes_per_element ! C = A_MxK * B_KxN allocate(ha(m,k)) allocate(hb(k,n)) allocate(hc(m,n)) allocate(hc_exact(m,n)) ! Use these constant matrices so the exact answer is also a ! constant matrix and therefore easy to check ha(:,:) = 1.d0 hb(:,:) = 2.d0 hc(:,:) = 3.d0 hc_exact(:,:) = alpha*k*2.d0 + beta*3.d0 ! Allocate device memory call hipCheck(hipMalloc(da,Nabytes)) call hipCheck(hipMalloc(db,Nbbytes)) call hipCheck(hipMalloc(dc,Ncbytes)) !Transfer from host to device call hipCheck(hipMemcpy(da, c_loc(ha(1,1)), Nabytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(db, c_loc(hb(1,1)), Nbbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dc, c_loc(hc(1,1)), Ncbytes, hipMemcpyHostToDevice)) call hipblasCheck(hipblasCgemm(handle,transa,transb,m,n,k,alpha,da,lda,db,ldb,beta,dc,ldc)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(c_loc(hc(1,1)), dc, Ncbytes, hipMemcpyDeviceToHost)) do i = 1,m do j = 1,n !write(*,*) "hc(i,j)=",hc(i,j),",hc_exact(i,j)=",hc_exact(i,j) error = abs((hc_exact(i,j) - hc(i,j))/hc_exact(i,j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do end do call hipCheck(hipFree(da)) call hipCheck(hipFree(db)) call hipCheck(hipFree(dc)) call hipblasCheck(hipblasDestroy(handle)) deallocate(ha) deallocate(hb) deallocate(hc) deallocate(hc_exact) write(*,*) "PASSED!" end program hip_dgemmhipfort-7.2.4/test/f2003/hipblas/sswap.f030000664000175000017500000000334515207260635020200 0ustar alastairalastairprogram hip_sswap use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: n = 6 integer :: i real(kind=4), allocatable, target, dimension(:) :: x, y, x_exact, y_exact type(c_ptr) :: dx = c_null_ptr, dy = c_null_ptr type(c_ptr) :: handle = c_null_ptr real :: error real, parameter :: error_max = 10*epsilon(error) integer(c_size_t) :: Nxbytes, Nybytes integer, parameter :: bytes_per_element = 4 !float precision Nxbytes = n * bytes_per_element Nybytes = n * bytes_per_element allocate(x(n)) allocate(y(n)) allocate(x_exact(n)) allocate(y_exact(n)) do i = 1,n x(i) = i x_exact(i) = x(i) y(i) = 2 * i y_exact(i) = y(i) end do write(*,"(a)",advance="no") "-- Running test 'SSWAP' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,Nxbytes)) call hipCheck(hipMalloc(dy,Nybytes)) call hipCheck(hipMemcpy(dx, c_loc(x(1)), Nxbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(y(1)), Nybytes, hipMemcpyHostToDevice)) call hipblasCheck(hipblasSswap(handle,n,dx,1,dy,1)) call hipCheck(hipMemcpy(c_loc(x(1)), dx, Nxbytes, hipMemcpyDeviceToHost)) call hipCheck(hipMemcpy(c_loc(y(1)), dy, Nybytes, hipMemcpyDeviceToHost)) do i = 1,n error = MAX(abs((y_exact(i) - x(i))/y_exact(i)), abs((x_exact(i) - y(i))/x_exact(i))) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipblasCheck(hipblasDestroy(handle)) call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(x) deallocate(y) write(*,*) "PASSED!" end program hip_sswaphipfort-7.2.4/test/f2003/hipblas/saxpy.f030000664000175000017500000000323015207260635020200 0ustar alastairalastairprogram hip_saxpy use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: n = 6 type(c_ptr) :: handle = c_null_ptr integer :: j real, allocatable, target, dimension(:) :: x, y, y_exact real, parameter :: alpha = 2.0 type(c_ptr) :: dx = c_null_ptr, dy = c_null_ptr integer, parameter :: bytes_per_element = 4 !float precision integer(c_size_t) :: Nxbytes integer(c_size_t) :: Nybytes real :: error real, parameter :: error_max = 10*epsilon(error) Nxbytes = n * bytes_per_element Nybytes = n * bytes_per_element allocate(x(n)) allocate(y(n)) allocate(y_exact(n)) do j = 1,n x(j) = j y(j) = j end do do j = 1,n y_exact(j) = alpha*x(j) + y(j) end do write(*,"(a)",advance="no") "-- Running test 'SAXPY' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,Nxbytes)) call hipCheck(hipMalloc(dy,Nybytes)) call hipCheck(hipMemcpy(dx, c_loc(x(1)), Nxbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(y(1)), Nybytes, hipMemcpyHostToDevice)) call hipblasCheck(hipblasSaxpy(handle,n,alpha,dx,1,dy,1)) call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(c_loc(y(1)), dy, Nybytes, hipMemcpyDeviceToHost)) do j = 1,n error = abs((y_exact(j) - y(j))/y_exact(j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) call hipblasCheck(hipblasDestroy(handle)) deallocate(x) deallocate(y) write(*,*) "PASSED!" end program hip_saxpy hipfort-7.2.4/test/f2003/hipblas/dger.f030000664000175000017500000000350415207260635017761 0ustar alastairalastairprogram hip_dger use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer, parameter :: m = 100, n = 100 double precision, parameter :: alpha = 1.1d0 integer, parameter :: bytes_per_element = 8 !double precision double precision, allocatable, target, dimension(:) :: hx, hy, hA type(c_ptr) :: handle = c_null_ptr type(c_ptr) :: dx = c_null_ptr, dy = c_null_ptr, dA = c_null_ptr integer(c_size_t), parameter :: Nbytes = m*bytes_per_element integer :: i double precision :: error write(*,"(a)",advance="no") "-- Running test 'dger' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) allocate(hx(m)) allocate(hy(n)) allocate(ha(m*n)) hx(:) = 1.d0 hy(:) = 1.d0 hA(:) = 1.d0 ! Allocate device memory call hipCheck(hipMalloc(dx,Nbytes)) call hipCheck(hipMalloc(dy,Nbytes)) call hipCheck(hipMalloc(dA,Nbytes*n)) !Transfer from host to device call hipCheck(hipMemcpy(dx, c_loc(hx(1)), Nbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(hy(1)), Nbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dA, c_loc(hA(1)), Nbytes*n, hipMemcpyHostToDevice)) call hipblasCheck(hipblasDger(handle,m,n,alpha,dx,1,dy,1,dA,m)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(c_loc(hA(1)), dA, Nbytes*n, hipMemcpyDeviceToHost)) do i = 1,m*n error = abs(2.1d0 - hA(i)) if( error > 10*epsilon(error) )then write(*,*) "FAILED! Error bigger than max! Error = ", error, "hA(i) = ", hA(i) call exit(1) end if end do call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) call hipCheck(hipFree(dA)) call hipblasCheck(hipblasDestroy(handle)) deallocate(hx) deallocate(hy) deallocate(hA) write(*,*) "PASSED!" end program hip_dger hipfort-7.2.4/test/f2003/hipblas/Makefile0000664000175000017500000000010515207260635020160 0ustar alastairalastairCFLAGS ?= -lhipblas -lrocsolver -lrocblas include ../../Makefile.in hipfort-7.2.4/test/f2003/hipblas/sger.f030000664000175000017500000000500515207260635017776 0ustar alastairalastair! HIPBLAS, i.e. cuBLAS and rocBLAS, assumes column-major matrix memory layouts. ! Hence, no matrix must be transposed when interfacing with Fortran. program hip_sger use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: m = 6 integer :: n = 5 real, parameter :: alpha = 2.0 type(c_ptr) :: handle = c_null_ptr integer :: i, j real :: error real, parameter :: error_max = 10*epsilon(error) real(kind=4), allocatable, target, dimension(:,:) :: a real(kind=4), allocatable, target, dimension(:) :: x, y type(c_ptr) :: da = c_null_ptr, dx = c_null_ptr, dy = c_null_ptr integer(c_size_t) :: Nabytes, Nxbytes, Nybytes integer, parameter :: bytes_per_element = 4 !float precision Nxbytes = m * bytes_per_element Nybytes = n * bytes_per_element Nabytes = m * n * bytes_per_element allocate(x(m)) allocate(y(n)) allocate(a(m,n)) do i = 1,m do j = 1,n a(i,j) = 1.0 end do end do do i = 1,m x(i) = 1.0 end do do i = 1,n y(i) = 1.0 end do write(*,"(a)",advance="no") "-- Running test 'SGER' (Fortran 2003 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,Nxbytes)) call hipCheck(hipMalloc(dy,Nybytes)) call hipCheck(hipMalloc(da,Nabytes)) !call hipCheck(hipblasSetMatrix(m,n,bytes_per_element,a,m,da,m)) !call hipCheck(hipblasSetVector(m,bytes_per_element,x,1,dx,1)) !call hipCheck(hipblasSetVector(n,bytes_per_element,y,1,dy,1)) call hipCheck(hipMemcpy(da, c_loc(a(1,1)), Nabytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dx, c_loc(x(1)), Nxbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(y(1)), Nybytes, hipMemcpyHostToDevice)) call hipCheck(hipblasSger(handle,m,n,alpha,dx,1,dy,1,da,m)) !call hipCheck(hipblasGetMatrix(m,n,bytes_per_element,da,m,a,m)); call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(c_loc(a(1,1)), da, Nabytes, hipMemcpyDeviceToHost)) !do i=1,m ! do j = 1,n ! write(*,*) a(i,j) ! end do !end do do i = 1,m do j = 1,n error = abs(3.0 - a(i,j)) if( error > 10*epsilon(error) )then write(*,*) "FAILED! Error bigger than max! Error = ", error, "a(i,j) = ", a(i,j) call exit(1) end if end do end do call hipblasCheck(hipblasDestroy(handle)) call hipCheck(hipFree(da)) call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(a) deallocate(x) deallocate(y) write(*,*) "PASSED!" end program hip_sger hipfort-7.2.4/test/f2003/hipblas/.gitignore0000664000175000017500000000002115207260635020505 0ustar alastairalastairdgemm dger dscal hipfort-7.2.4/test/f2003/vecadd/0000775000175000017500000000000015207260635016330 5ustar alastairalastairhipfort-7.2.4/test/f2003/vecadd/main.f030000664000175000017500000000434715207260635017576 0ustar alastairalastairprogram fortran_hip use iso_c_binding use hipfort use hipfort_check implicit none interface subroutine launch(out,a,b,N) bind(c) use iso_c_binding implicit none type(c_ptr) :: a, b, out integer, value :: N end subroutine end interface type(c_ptr) :: da = c_null_ptr type(c_ptr) :: db = c_null_ptr type(c_ptr) :: dout = c_null_ptr integer, parameter :: N = 1000000 integer, parameter :: bytes_per_element = 8 !double precision integer(c_size_t), parameter :: Nbytes = N*bytes_per_element ! Plain real should be equivalent to float double precision,allocatable,target,dimension(:) :: a, b, out double precision :: error double precision, parameter :: error_max = 1.0d-10 integer :: i type(hipDeviceProp_t),target :: props ! call hipCheck(hipGetDeviceProperties(props,0)) write(*,"(a)",advance="no") "-- Running test 'vecadd' (Fortran 2003 interfaces)" write(*,"(a)",advance="no") "- device: " i=1 do while ( iachar(props%name(i)) .ne. 0 ) ! print till end char write(*,"(a)",advance="no") props%name(i) i = i+1 end do write(*,"(a)",advance="no") " - " ! Allocate host memory allocate(a(N)) allocate(b(N)) allocate(out(N)) ! Initialize host arrays a(:) = 1.0 b(:) = 2.0 ! Allocate array space on the device call hipCheck(hipMalloc(da,Nbytes)) call hipCheck(hipMalloc(db,Nbytes)) call hipCheck(hipMalloc(dout,Nbytes)) ! Transfer data from host to device memory call hipCheck(hipMemcpy(da, c_loc(a(1)), Nbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(db, c_loc(b(1)), Nbytes, hipMemcpyHostToDevice)) call launch(dout,da,db,N) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(c_loc(out(1)), dout, Nbytes, hipMemcpyDeviceToHost)) ! Verification do i = 1,N error = abs(out(i) - (a(i)+b(i)) ) if( error .gt. error_max ) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " Out = ", out(i) call exit endif end do call hipCheck(hipFree(da)) call hipCheck(hipFree(db)) call hipCheck(hipFree(dout)) ! Deallocate host memory deallocate(a) deallocate(b) deallocate(out) write(*,*) "PASSED!" end program fortran_hiphipfort-7.2.4/test/f2003/vecadd/Makefile0000664000175000017500000000022715207260635017771 0ustar alastairalastair.PHONY: build run clean build: main main: hipfc $(CFLAGS) main.f03 hip_implementation.cpp -o main run: main ./main clean: rm -f main *.o *.mod hipfort-7.2.4/test/f2003/vecadd/hip_implementation.cpp0000664000175000017500000000076415207260635022730 0ustar alastairalastair#include #include __global__ void vector_add(double *out, double *a, double *b, int n) { size_t index = blockIdx.x * blockDim.x + threadIdx.x; size_t stride = blockDim.x * gridDim.x; for (size_t i = index; i < n; i += stride) out[i] = a[i] + b[i]; } extern "C" { void launch(double **dout, double **da, double **db, int N) { //printf("launching kernel\n"); hipLaunchKernelGGL((vector_add), dim3(320), dim3(256), 0, 0, *dout, *da, *db, N); } } hipfort-7.2.4/test/f2003/vecadd/.gitignore0000664000175000017500000000002015207260635020310 0ustar alastairalastairfort_vector_add hipfort-7.2.4/test/f2003/roctx/0000775000175000017500000000000015207260635016241 5ustar alastairalastairhipfort-7.2.4/test/f2003/roctx/main.f030000664000175000017500000000206115207260635017476 0ustar alastairalastairprogram fortran_hip use iso_c_binding use hipfort use hipfort_check use hipfort_roctx implicit none interface subroutine launch() bind(c) use iso_c_binding implicit none end subroutine end interface integer :: i integer :: ret type(hipDeviceProp_t),target :: props call hipCheck(hipGetDeviceProperties(props,0)) write(*,"(a)",advance="no") "-- Running test 'roctx' (Fortran 2003 interfaces)" write(*,"(a)",advance="no") "- device: " i=1 do while ( iachar(props%name(i)) .ne. 0 ) ! print till end char write(*,"(a)",advance="no") props%name(i) i = i+1 end do write(*,"(a)",advance="no") " - " ret = roctxRangePush(c_char_"hello_world"//c_null_char) if (ret /= 0) then write (*, *) "ROCTX ERROR: roctxRangePush: Invalid nested range level ", ret end if call launch() call hipCheck(hipDeviceSynchronize()) ret = roctxRangePop() if (ret /= 0) then write (*, *) "ROCTX ERROR: roctxRangePop: Invalid nested range level ", ret end if write(*,*) "PASSED!" end program fortran_hip hipfort-7.2.4/test/f2003/roctx/Makefile0000664000175000017500000000043115207260635017677 0ustar alastairalastair.PHONY: build run clean build: main main: main.f03 hip_implementation.cpp hipfc $(CFLAGS) main.f03 hip_implementation.cpp -o main -lroctx64 run: main rocprof -d rocprof_out -o rocprof_out/results.csv --hip-trace --roctx-trace ./main clean: rm -rf main *.o *.mod rocprof_out hipfort-7.2.4/test/f2003/roctx/hip_implementation.cpp0000664000175000017500000000025615207260635022635 0ustar alastairalastair#include #include __global__ void empty() { } extern "C" { void launch() { hipLaunchKernelGGL((empty), dim3(1), dim3(1), 0, 0); } } hipfort-7.2.4/test/f2003/rocfft/0000775000175000017500000000000015207260635016365 5ustar alastairalastairhipfort-7.2.4/test/f2003/rocfft/Makefile0000664000175000017500000000005615207260635020026 0ustar alastairalastairCFLAGS ?= -lrocfft include ../../Makefile.in hipfort-7.2.4/test/f2003/rocfft/rocfft.f030000664000175000017500000000414615207260635020167 0ustar alastairalastairprogram rocfft_example use iso_c_binding use hipfort use hipfort_check use hipfort_rocfft implicit none integer(c_size_t), parameter :: N=16 integer(c_size_t), parameter :: Nbytes = N*8*2 type double2 double precision :: x double precision :: y end type double2 type(double2), allocatable, target, dimension(:) :: hx type(c_ptr) :: dx = c_null_ptr type(c_ptr) :: plan = c_null_ptr integer(c_size_t), allocatable, target, dimension(:) :: lengths integer(c_size_t), parameter :: one = 1 integer :: i double precision :: error double precision, parameter :: error_max = epsilon(error) write(*,"(a)",advance="no") "-- Running test 'rocFFT' (Fortran 2003 interfaces) - " call rocfftCheck(rocfft_setup()) allocate(lengths(3)) lengths(1) = N allocate(hx(N)) hx(:)%x = 1 hx(:)%y = -1 call hipCheck(hipMalloc(dx,Nbytes)) call hipCheck(hipMemcpy(dx,c_loc(hx(1)),Nbytes,hipMemcpyHostToDevice)) call rocfftCheck(rocfft_plan_create(plan,& rocfft_placement_inplace,& rocfft_transform_type_complex_forward,& rocfft_precision_double,& one,& c_loc(lengths(1)),& one,& c_null_ptr)) call rocfftCheck(rocfft_execute(plan,dx,c_null_ptr,c_null_ptr)) call hipCheck(hipDeviceSynchronize()) call rocfftCheck(rocfft_plan_destroy(plan)) call hipCheck(hipMemcpy(c_loc(hx(1)),dx,Nbytes,hipMemcpyDeviceToHost)) call hipCheck(hipFree(dx)) ! Using the C++ version of this as the "gold". ! first components were \pm 16 and the remaining componenents ! were zero, so the sum of each component pair should be zero do i = 1,N error = abs(hx(i)%x+hx(i)%y) if(error > error_max)then write(*,*) "FAILED! Error = ", error, "hx(i)%x = ", hx(i)%x, "hx(i)%y = " end if end do deallocate(hx) deallocate(lengths) call rocfftCheck(rocfft_cleanup()) write(*,*) "PASSED!" end program rocfft_examplehipfort-7.2.4/test/f2003/rocfft/.gitignore0000664000175000017500000000000715207260635020352 0ustar alastairalastairrocfft hipfort-7.2.4/test/f2003/rocsolver/0000775000175000017500000000000015207260635017120 5ustar alastairalastairhipfort-7.2.4/test/f2003/rocsolver/rocsolver_dgeqrf.f030000664000175000017500000000514315207260635023003 0ustar alastairalastair!!!!!!!!!!!!!/ ! dgeqrf example ! see: http:!www.netlib.org/lapack/explore-html/df/dc5/group__variants_g_ecomputational_ga3766ea903391b5cf9008132f7440ec7b.html !!!!!!!!!!!!!!/ ! program dgeqrf use iso_c_binding use hipfort use hipfort_check use hipfort_rocblas use hipfort_rocsolver implicit none integer :: i, j ! indices for iterating over results ! Define our input data real(c_double), target :: hA(3,3) = reshape((/12, 6, -4, -51, 167, 24, 4, -68, -41/), (/3, 3/)) real(c_double), target :: hResult(3,3) = reshape((/& -14.000000000000000, -21.000000000000000, 14.000000000000002,& 0.23076923076923078, -175.00000000000000, 70.000000000000000,& -0.15384615384615385, 5.5555555555555559E-002, -35.000000000000000/), shape(hResult), order=(/2,1/)) integer(c_int), parameter :: M = 3 integer(c_int), parameter :: N = 3 integer(c_int), parameter :: lda = 3 real(c_double), target :: hIpiv(3) ! CPU buffer for Householder scalars integer(c_size_t) :: size_A = size(hA) integer(c_size_t) :: size_Ipiv = size(hIpiv) type(c_ptr) :: dA ! GPU buffer for A type(c_ptr) :: dIpiv ! GPU buffer for Householder scalars type(c_ptr) :: handle ! rocblas_handle real :: error real, parameter :: error_max = 10 * epsilon(error_max) ! write(*,"(a)",advance="no") "-- Running test 'rocsolver_dgeqrf' (Fortran 2003 interfaces) - " ! Allocate device-side memory call hipCheck(hipMalloc(dA, size_A * 8)) call hipCheck(hipMalloc(dIpiv, size_Ipiv * 8)) ! Create rocBLAS handle call hipCheck(rocblas_create_handle(handle)) ! Copy memory from host to device call hipCheck(hipMemcpy(dA, c_loc(hA(1,1)), size_A * 8, hipMemcpyHostToDevice)) ! Compute the QR factorization on the devi ce call hipCheck(rocsolver_dgeqrf(handle, M, N, dA, lda, dIpiv)) ! Copy result from device to host call hipCheck(hipMemcpy(c_loc(hA(1,1)), dA, size_A * 8, hipMemcpyDeviceToHost)) call hipCheck(hipMemcpy(c_loc(hIpiv(1)), dIpiv, size_Ipiv * 8, hipMemcpyDeviceToHost)) ! Output results do j = 1,size(hA,2) do i = 1,size(hA,1) error = abs(hA(i,j) - hResult(i,j)) if(error .gt. error_max) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " hA(", i, ",", j, ") = ", hA(i,j) call exit end if ! print *, (hA(i,j), j=1,size(hA,2)) ! print *, (hResult(i,j), j=1,size(hA,2)) end do end do ! Clean up call hipCheck(hipFree(dA)) call hipCheck(hipFree(dIpiv)) call hipCheck(rocblas_destroy_handle(handle)) call hipCheck(hipDeviceReset()) write(*,*) "PASSED!" end program dgeqrfhipfort-7.2.4/test/f2003/rocsolver/Makefile0000664000175000017500000000007315207260635020560 0ustar alastairalastairCFLAGS ?= -lrocsolver -lrocblas include ../../Makefile.in hipfort-7.2.4/test/f2008/0000775000175000017500000000000015207260635015107 5ustar alastairalastairhipfort-7.2.4/test/f2008/hipfft/0000775000175000017500000000000015207260635016367 5ustar alastairalastairhipfort-7.2.4/test/f2008/hipfft/Makefile0000664000175000017500000000006615207260635020031 0ustar alastairalastairCFLAGS ?= -lhipfft -lrocfft include ../../Makefile.inhipfort-7.2.4/test/f2008/hipfft/hipfft.f030000664000175000017500000000271615207260635020167 0ustar alastairalastairprogram hipfft_example use iso_c_binding use hipfort use hipfort_check use hipfort_hipfft implicit none integer(c_int), parameter :: N = 16 complex(8), allocatable, dimension(:) :: hx integer(c_int) :: direction = HIPFFT_FORWARD complex(8), pointer, dimension(:) :: dx type(c_ptr) :: plan = c_null_ptr integer(c_size_t) :: lengths(3) integer(c_size_t), parameter :: one = 1 integer :: i integer(kind(HIPFFT_SUCCESS)) :: ierr double precision :: error double precision, parameter :: error_max = epsilon(error) write(*,"(a)",advance="no") "-- Running test 'hipFFT' (Fortran 2008 interfaces) - " lengths(1) = N allocate(hx(N)) hx(:) = (1, -1) call hipCheck(hipMalloc(dx, source=hx)) call hipfftCheck(hipfftPlan1d(plan, N, HIPFFT_Z2Z, 1)) call hipfftCheck(hipfftExecZ2Z(plan, dx, dx, direction)) call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(hx,dx,hipMemcpyDeviceToHost)) call hipCheck(hipFree(dx)) ! Using the C++ version of this as the "gold". ! first components were \pm 16 and the remaining componenents ! were zero, so the sum of each component pair should be zero do i = 1,N error = abs(DBLE(hx(i)) + AIMAG(hx(i))) if(error > error_max)then write(*,*) "FAILED! Error = ", error, "hx(i)%x = ", DBLE(hx(i)), "hx(i)%y = ", AIMAG(hx(i)) end if end do deallocate(hx) call hipfftcheck( hipfftDestroy(plan)) write(*,*) "PASSED!" end program hipfft_example hipfort-7.2.4/test/f2008/rocblas/0000775000175000017500000000000015207260635016534 5ustar alastairalastairhipfort-7.2.4/test/f2008/rocblas/saxpy.f030000664000175000017500000000626115207260635020217 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. ! ! 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. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program rocblas_saxpy_test use iso_c_binding use hipfort use hipfort_check use hipfort_rocblas implicit none integer, parameter :: N = 12000 real(c_float), target :: alpha = 12.5 real,allocatable,target,dimension(:) :: hx real,allocatable,target,dimension(:) :: hy real,allocatable,target,dimension(:) :: hz real,pointer,dimension(:) :: dx real,pointer,dimension(:) :: dy real :: error real :: result real, parameter :: error_max = 10 * epsilon(error_max) type(c_ptr) :: rocblas_handle integer :: i write(*,"(a)",advance="no") "-- Running test 'saxpy' (Fortran 2008 interfaces) - " ! Create rocblas handle call rocblasCheck(rocblas_create_handle(rocblas_handle)) ! Allocate host-side memory allocate(hx(N)) allocate(hy(N)) allocate(hz(N)) ! Initialize host memory do i = 1, N hx(i) = i hy(i) = N - i hz(i) = N - i eNd do ! Allocate device-side memory ! Transfer data from host to device memory call hipCheck(hipMalloc(dx, source=hx)) call hipCheck(hipMalloc(dy, source=hy)) ! Call rocblas function call rocblasCheck(rocblas_set_pointer_mode(rocblas_handle, 0)) call rocblasCheck(rocblas_saxpy(rocblas_handle, N, alpha, dx, 1, dy, 1)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipcheck(hipMemcpy(hy, dy, hipMemcpyDeviceToHost)) ! Verification do i = 1, N result = alpha * hx(i) + hz(i) error = abs(hy(i) - result) if(error .gt. error_max) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " hy(", i, ") = ", hy(i) call exit end if end do ! Cleanup call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(hx, hy, hz) call rocblasCheck(rocblas_destroy_handle(rocblas_handle)) write(*,*) "PASSED!" end program rocblas_saxpy_testhipfort-7.2.4/test/f2008/rocblas/Makefile0000664000175000017500000000005715207260635020176 0ustar alastairalastairCFLAGS ?= -lrocblas include ../../Makefile.in hipfort-7.2.4/test/f2008/rocblas/.gitignore0000664000175000017500000000000515207260635020517 0ustar alastairalastairsaxpyhipfort-7.2.4/test/f2008/rocsparse/0000775000175000017500000000000015207260635017110 5ustar alastairalastairhipfort-7.2.4/test/f2008/rocsparse/ddoti.f030000664000175000017500000000635015207260635020531 0ustar alastairalastair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. ! ! 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. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program rocsparse_ddoti_test use iso_c_binding use hipfort use hipfort_check use hipfort_rocsparse implicit none integer :: h_xind(3) real(8) :: h_xval(3), h_y(9) real(8) :: h_dot integer, pointer :: d_xind(:) real(8), pointer :: d_xval(:), d_y(:) real(8), pointer :: d_dot integer :: i integer(c_int) :: M, nnz type(c_ptr) :: handle write(*,"(a)",advance="no") "-- Running test 'ddoti' (Fortran 2008 interfaces) - " ! Input data ! Number of rows M = 9 ! Number of non-zero entries nnz = 3 ! Fill structures h_xind = (/0, 3, 5/) h_xval = (/1, 2, 3/) h_y = (/1, 2, 3, 4, 5, 6, 7, 8, 9/) ! Allocate device memory and copy host data to device call hipCheck(hipMalloc(d_xind, source=h_xind)) call hipCheck(hipMalloc(d_xval,source=h_xval)) call hipCheck(hipMalloc(d_y,source=h_y)) call hipCheck(hipMalloc(d_dot,source=h_dot)) ! Create rocSPARSE handle call rocsparseCheck(rocsparse_create_handle(handle)) call rocsparseCheck(rocsparse_set_pointer_mode(handle, rocsparse_pointer_mode_device)) ! Call ddoti call rocsparseCheck(rocsparse_ddoti(handle, & nnz, & d_xval(1), & d_xind(1), & d_y(1), & d_dot, & rocsparse_index_base_zero)) ! Copy result back to host call hipCheck(hipMemcpy(h_dot, d_dot, hipMemcpyDeviceToHost)) ! Verification if(h_dot /= 27d0) then write(*,*) 'FAILED!' call exit end if ! Clear rocSPARSE call rocsparseCheck(rocsparse_destroy_handle(handle)) ! Clear device memory call hipCheck(hipFree(d_xind)) call hipCheck(hipFree(d_xval)) call hipCheck(hipFree(d_y)) call hipCheck(hipFree(d_dot)) ! Print success write(*,*) 'PASSED!' end program rocsparse_ddoti_testhipfort-7.2.4/test/f2008/rocsparse/Makefile0000664000175000017500000000006115207260635020545 0ustar alastairalastairCFLAGS ?= -lrocsparse include ../../Makefile.in hipfort-7.2.4/test/f2008/rocsparse/.gitignore0000664000175000017500000000000615207260635021074 0ustar alastairalastairddoti hipfort-7.2.4/test/f2008/hipblas/0000775000175000017500000000000015207260635016531 5ustar alastairalastairhipfort-7.2.4/test/f2008/hipblas/scopy.f030000664000175000017500000000245015207260635020201 0ustar alastairalastairprogram hip_scopy use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: n = 6 type(c_ptr) :: handle = c_null_ptr integer :: j real, allocatable, target, dimension(:) :: x, y integer, parameter :: bytes_per_element = 4 !float precision real, pointer, dimension(:) :: dx,dy real :: error real, parameter :: error_max = 10*epsilon(error) allocate(x(n)) allocate(y(n)) do j = 1,n x(j) = j ! write(*,*) "value of x(j)" , x(j) end do write(*,"(a)",advance="no") "-- Running test 'Scopy' (Fortran 2008 interfaces) - " do j = 1,n y(j) = x(j) ! write(*,*) "value of y(j)" , y(j) end do call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,source=x)) call hipCheck(hipMalloc(dy,source=y)) call hipblasCheck(hipblasScopy(handle,n,dx,1,dy,1)) call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(y, dy, hipMemcpyDeviceToHost)) do j = 1,n error = abs(y(j) - x(j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) call hipblasCheck(hipblasDestroy(handle)) deallocate(x,y) write(*,*) "PASSED!" end program hip_scopy hipfort-7.2.4/test/f2008/hipblas/sgemv.f030000664000175000017500000000251115207260635020163 0ustar alastairalastairprogram hip_sgemv use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: m = 6 integer :: n = 5 integer :: i, j real, parameter :: alpha = 1.0 real, parameter :: beta = 0.0 type(c_ptr) :: handle = c_null_ptr real(kind=4), allocatable, target, dimension(:) :: a, x, y real(kind=4), pointer, dimension(:) :: da, dx, dy real :: error real, parameter :: error_max = 10*epsilon(error) allocate(x(n)) allocate(y(m)) allocate(a(m*n)) a(:) = 1.0 x(:) = 1.0 y(:) = 1.0 write(*,"(a)",advance="no") "-- Running test 'SGEMV' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,source=x)) call hipCheck(hipMalloc(dy,source=y)) call hipCheck(hipMalloc(da,source=a)) call hipCheck(hipblasSgemv(handle,HIPBLAS_OP_N,m,n,alpha,da,m,dx,1,beta,dy,1)) call hipCheck(hipMemcpy(y, dy, hipMemcpyDeviceToHost)) do i = 1,m error = abs(5.0 - y(i)) if( error > 10*epsilon(error) )then write(*,*) "FAILED! Error bigger than max! Error = ", error, "y(i) = ", y(i) call exit(1) end if end do call hipblasCheck(hipblasDestroy(handle)) call hipCheck(hipFree(da)) call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(a,x,y) write(*,*) "PASSED!" end program hip_sgemv hipfort-7.2.4/test/f2008/hipblas/dscal.f030000664000175000017500000000271615207260635020137 0ustar alastairalastairprogram hip_dscal use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer, parameter :: N = 10240; double precision, parameter :: alpha = 10.d0 double precision,pointer,dimension(:) :: dx double precision,allocatable,target,dimension(:) :: hx double precision,allocatable,dimension(:) ::hx_scaled double precision :: error double precision, parameter :: error_max = 10*epsilon(error_max) type(c_ptr) :: hip_blas_handle = c_null_ptr integer :: i write(*,"(a)",advance="no") "-- Running test 'dscal' (Fortran 2008 interfaces) - " allocate(hx(N)) allocate(hx_scaled(N)) hx(:) = 10.d0 hx_scaled = alpha*hx call hipblasCheck(hipblasCreate(hip_blas_handle)) call hipCheck(hipMalloc(dx,shape(hx))) ! Transfer data from host to device memory call hipCheck(hipMemcpy(dx, hx, hipMemcpyHostToDevice)) call hipblasCheck(hipblasDscal(hip_blas_handle, N, alpha, dx, 1)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(hx, dx, hipMemcpyDeviceToHost)) call hipCheck(hipFree(dx)) ! Verification do i = 1,N error = abs(hx(i) - hx_scaled(i) ) if( error .gt. error_max ) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " hx(i) = ", hx(i) call exit endif end do call hipblasCheck(hipblasDestroy(hip_blas_handle)) deallocate(hx_scaled,hx) write(*,*) "PASSED!" end program hip_dscal hipfort-7.2.4/test/f2008/hipblas/dgemm.f030000664000175000017500000000357215207260635020143 0ustar alastairalastairprogram hip_dgemm use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer(kind(HIPBLAS_OP_N)), parameter :: transa = HIPBLAS_OP_N, transb = HIPBLAS_OP_N; double precision, parameter :: alpha = 1.1d0, beta = 0.9d0; integer, parameter :: m = 1024, n = 1024, k = 1024; double precision, allocatable, dimension(:,:) :: ha, hb, hc, hc_exact double precision, pointer, dimension(:,:) :: da, db, dc type(c_ptr) :: handle = c_null_ptr integer :: i,j double precision :: error double precision, parameter :: error_max = 10*epsilon(error) write(*,"(a)",advance="no") "-- Running test 'DGEMM' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) allocate(ha(m,k)) allocate(hb(k,n)) allocate(hc(m,n)) allocate(hc_exact(m,n)) ! Use these constant matrices so the exact answer is also a ! constant matrix and therefore easy to check ha(:,:) = 1.d0 hb(:,:) = 2.d0 hc(:,:) = 3.d0 hc_exact = alpha*k*2.d0 + beta*3.d0 ! Allocate device memory call hipCheck(hipMalloc(da,source=ha)) ! implies (blocking) memcpy call hipCheck(hipMalloc(db,source=hb)) call hipCheck(hipMalloc(dc,source=hc)) call hipblasCheck(hipblasDgemm(handle,transa,transb,m,n,k,alpha,da,size(da,1),db,size(db,1),beta,dc,size(dc,1))) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(hc, dc, hipMemcpyDeviceToHost)) do j = 1,n do i = 1,m error = abs((hc_exact(i,j) - hc(i,j))/hc_exact(i,j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do end do call hipCheck(hipFree(da)) call hipCheck(hipFree(db)) call hipCheck(hipFree(dc)) call hipblasCheck(hipblasDestroy(handle)) deallocate(ha,hb,hc,hc_exact) write(*,*) "PASSED!" end program hip_dgemm hipfort-7.2.4/test/f2008/hipblas/cgemm.f030000664000175000017500000000425615207260635020142 0ustar alastairalastairprogram hip_dgemm use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer(kind(HIPBLAS_OP_N)), parameter :: transa = HIPBLAS_OP_N, transb = HIPBLAS_OP_N; complex(kind=4), parameter :: alpha = 1.1d0, beta = 0.9d0; integer, parameter :: m = 512, n = 512, k = 512; complex(kind=4), allocatable, dimension(:,:) :: ha, hb, hc complex(kind=4), allocatable, dimension(:,:) :: hc_exact complex(kind=4), pointer, dimension(:,:) :: da, db, dc type(c_ptr) :: handle = c_null_ptr integer :: i,j double precision :: error double precision, parameter :: error_max = 10*epsilon(error) write(*,"(a)",advance="no") "-- Running test 'CGEMM' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) ! C = A_MxK * B_KxN allocate(ha(m,k)) allocate(hb(k,n)) allocate(hc(m,n)) allocate(hc_exact(m,n)) ! Use these constant matrices so the exact answer is also a ! constant matrix and therefore easy to check ha(:,:) = 1.d0 hb(:,:) = 2.d0 hc(:,:) = 3.d0 hc_exact(:,:) = alpha*k*2.d0 + beta*3.d0 ! Allocate device memory call hipCheck(hipMalloc(da,mold=ha)) call hipCheck(hipMalloc(db,mold=hb)) call hipCheck(hipMalloc(dc,mold=hc)) !Transfer from host to device call hipCheck(hipMemcpy(da, ha, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(db, hb, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dc, hc, hipMemcpyHostToDevice)) call hipblasCheck(hipblasCgemm(handle,transa,transb,m,n,k,alpha,da,size(da,1),db,size(db,1),beta,dc,size(dc,1))) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(hc, dc, hipMemcpyDeviceToHost)) do j = 1,n do i = 1,m !write(*,*) "hc(i,j)=",hc(i,j),",hc_exact(i,j)=",hc_exact(i,j) error = abs((hc_exact(i,j) - hc(i,j))/hc_exact(i,j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do end do call hipCheck(hipFree(da)) call hipCheck(hipFree(db)) call hipCheck(hipFree(dc)) call hipblasCheck(hipblasDestroy(handle)) deallocate(ha,hb,hc,hc_exact) write(*,*) "PASSED!" end program hip_dgemm hipfort-7.2.4/test/f2008/hipblas/sswap.f030000664000175000017500000000273415207260635020206 0ustar alastairalastairprogram hip_sswap use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: n = 6 integer :: i real(kind=4), allocatable, target, dimension(:) :: x, y, x_exact, y_exact real(kind=4), pointer, dimension(:) :: dx, dy type(c_ptr) :: handle = c_null_ptr real :: error real, parameter :: error_max = 10*epsilon(error) allocate(x(n)) allocate(y(n)) allocate(x_exact(n)) allocate(y_exact(n)) do i = 1,n x(i) = i x_exact(i) = x(i) y(i) = 2 * i y_exact(i) = y(i) end do write(*,"(a)",advance="no") "-- Running test 'SSWAP' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,shape(x))) call hipCheck(hipMalloc(dy,shape(y))) call hipCheck(hipMemcpy(dx, x, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, y, hipMemcpyHostToDevice)) call hipblasCheck(hipblasSswap(handle,n,dx,1,dy,1)) call hipCheck(hipMemcpy(x, dx, hipMemcpyDeviceToHost)) call hipCheck(hipMemcpy(y, dy, hipMemcpyDeviceToHost)) do i = 1,n error = MAX(abs((y_exact(i) - x(i))/y_exact(i)), abs((x_exact(i) - y(i))/x_exact(i))) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipblasCheck(hipblasDestroy(handle)) call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(x,y) write(*,*) "PASSED!" end program hip_sswap hipfort-7.2.4/test/f2008/hipblas/saxpy.f030000664000175000017500000000257615207260635020221 0ustar alastairalastairprogram hip_saxpy use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: n = 6 type(c_ptr) :: handle = c_null_ptr integer :: j real, allocatable, dimension(:) :: x, y, y_exact real, parameter :: alpha = 2.0 real, pointer, dimension(:) :: dx, dy real :: error real, parameter :: error_max = 10*epsilon(error) allocate(x(n)) allocate(y(n)) allocate(y_exact(n)) do j = 1,n x(j) = j y(j) = j end do do j = 1,n y_exact(j) = alpha*x(j) + y(j) end do write(*,"(a)",advance="no") "-- Running test 'SAXPY' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,shape(x))) call hipCheck(hipMalloc(dy,shape(y))) call hipCheck(hipMemcpy(dx, x, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, y, hipMemcpyHostToDevice)) call hipblasCheck(hipblasSaxpy(handle,n,alpha,dx,1,dy,1)) call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(y, dy, hipMemcpyDeviceToHost)) do j = 1,n error = abs((y_exact(j) - y(j))/y_exact(j)) if( error > error_max )then write(*,*) "FAILED! Error bigger than max! Error = ", error call exit(1) end if end do call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) call hipblasCheck(hipblasDestroy(handle)) deallocate(x,y) write(*,*) "PASSED!" end program hip_saxpy hipfort-7.2.4/test/f2008/hipblas/dger.f030000664000175000017500000000332715207260635017771 0ustar alastairalastairprogram hip_dger use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer, parameter :: m = 100, n = 100 double precision, parameter :: alpha = 1.1d0 double precision, allocatable, target, dimension(:) :: hx, hy double precision, allocatable, target, dimension(:,:) :: hA type(c_ptr) :: handle = c_null_ptr double precision, pointer, dimension(:) :: dx, dy double precision, pointer, dimension(:,:) :: dA integer :: i,j double precision :: error write(*,"(a)",advance="no") "-- Running test 'dger' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) allocate(hx(m)) allocate(hy(n)) allocate(ha(m,n)) hx(:) = 1.d0 hy(:) = 1.d0 hA(:,:) = 1.d0 ! Allocate device memory call hipCheck(hipMalloc(dx,m)) call hipCheck(hipMalloc(dy,n)) call hipCheck(hipMalloc(dA,m,n)) !Transfer from host to device call hipCheck(hipMemcpy(dx, hx, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, hy, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dA, hA, hipMemcpyHostToDevice)) call hipblasCheck(hipblasDger(handle,m,n,alpha,dx,1,dy,1,dA,m)) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(hA, dA, hipMemcpyDeviceToHost)) do j = 1,n do i = 1,m error = abs(2.1d0 - hA(i,j)) if( error > 10*epsilon(error) )then write(*,*) "FAILED! Error bigger than max! Error = ", error, "hA(i,j) = ", hA(i,j) call exit(1) end if end do end do call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) call hipCheck(hipFree(dA)) call hipblasCheck(hipblasDestroy(handle)) deallocate(hx,hy,hA) write(*,*) "PASSED!" end program hip_dger hipfort-7.2.4/test/f2008/hipblas/Makefile0000664000175000017500000000010515207260635020165 0ustar alastairalastairCFLAGS ?= -lhipblas -lrocsolver -lrocblas include ../../Makefile.in hipfort-7.2.4/test/f2008/hipblas/sger.f030000664000175000017500000000476515207260635020017 0ustar alastairalastair! HIPBLAS, i.e. cuBLAS and rocBLAS, assumes column-major matrix memory layouts. ! Hence, no matrix must be transposed when interfacing with Fortran. program hip_sger use iso_c_binding use hipfort use hipfort_check use hipfort_hipblas implicit none integer :: m = 6 integer :: n = 5 real, parameter :: alpha = 2.0 type(c_ptr) :: handle = c_null_ptr integer :: i, j real :: error real, parameter :: error_max = 10*epsilon(error) real(kind=4), allocatable, target, dimension(:,:) :: a real(kind=4), allocatable, target, dimension(:) :: x, y type(c_ptr) :: da = c_null_ptr, dx = c_null_ptr, dy = c_null_ptr integer(c_size_t) :: Nabytes, Nxbytes, Nybytes integer, parameter :: bytes_per_element = 4 !float precision Nxbytes = m * bytes_per_element Nybytes = n * bytes_per_element Nabytes = m * n * bytes_per_element allocate(x(m)) allocate(y(n)) allocate(a(m,n)) do i = 1,m do j = 1,n a(i,j) = 1.0 end do end do do i = 1,m x(i) = 1.0 end do do i = 1,n y(i) = 1.0 end do write(*,"(a)",advance="no") "-- Running test 'SGER' (Fortran 2008 interfaces) - " call hipblasCheck(hipblasCreate(handle)) call hipCheck(hipMalloc(dx,Nxbytes)) call hipCheck(hipMalloc(dy,Nybytes)) call hipCheck(hipMalloc(da,Nabytes)) !call hipCheck(hipblasSetMatrix(m,n,bytes_per_element,a,m,da,m)) !call hipCheck(hipblasSetVector(m,bytes_per_element,x,1,dx,1)) !call hipCheck(hipblasSetVector(n,bytes_per_element,y,1,dy,1)) call hipCheck(hipMemcpy(da, c_loc(a), Nabytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dx, c_loc(x), Nxbytes, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(dy, c_loc(y), Nybytes, hipMemcpyHostToDevice)) call hipCheck(hipblasSger(handle,m,n,alpha,dx,1,dy,1,da,m)) !call hipCheck(hipblasGetMatrix(m,n,bytes_per_element,da,m,a,m)); call hipCheck(hipDeviceSynchronize()) call hipCheck(hipMemcpy(c_loc(a), da, Nabytes, hipMemcpyDeviceToHost)) !do i=1,m ! do j = 1,n ! write(*,*) a(i,j) ! end do !end do do i = 1,m do j = 1,n error = abs(3.0 - a(i,j)) if( error > 10*epsilon(error) )then write(*,*) "FAILED! Error bigger than max! Error = ", error, "a(i,j) = ", a(i,j) call exit(1) end if end do end do call hipblasCheck(hipblasDestroy(handle)) call hipCheck(hipFree(da)) call hipCheck(hipFree(dx)) call hipCheck(hipFree(dy)) deallocate(a) deallocate(x) deallocate(y) write(*,*) "PASSED!" end program hip_sger hipfort-7.2.4/test/f2008/hipblas/.gitignore0000664000175000017500000000002115207260635020512 0ustar alastairalastairdgemm dger dscal hipfort-7.2.4/test/f2008/vecadd/0000775000175000017500000000000015207260635016335 5ustar alastairalastairhipfort-7.2.4/test/f2008/vecadd/main.f030000664000175000017500000000406415207260635017577 0ustar alastairalastairprogram fortran_hip use hipfort use hipfort_check implicit none interface ! dim3(320), dim3(256), 0, 0 subroutine launch(grid,block,shmem,stream,out,a,b,N) bind(c) use iso_c_binding use hipfort_types implicit none type(c_ptr),value :: a, b, out integer(c_int), value :: N, shmem type(dim3) :: grid, block type(c_ptr),value :: stream end subroutine end interface integer(c_int), parameter :: N = 1000000 real(8),allocatable,dimension(:) :: a,b,out real(8),pointer,dimension(:) :: da => null(), db => null(),dout => null() !type(dim3) :: grid = dim3(320,1,1) !type(dim3) :: block = dim3(256,1,1) integer :: i type(hipDeviceProp_t),target :: props ! call hipCheck(hipGetDeviceProperties(props,0)) write(*,"(a)",advance="no") "-- Running test 'vecadd' (Fortran 2008 interfaces)" write(*,"(a)",advance="no") "- device: " i=1 do while ( iachar(props%name(i)) .ne. 0 ) ! print till end char write(*,"(a)",advance="no") props%name(i) i = i+1 end do write(*,"(a)",advance="no") " - " ! Allocate host memory allocate(a(N),b(N),out(N)) ! Initialize host arrays a(:) = 1.0 b(:) = 1.0 ! Allocate array space on the device call hipCheck(hipMalloc(da,N)) call hipCheck(hipMalloc(db,N)) call hipCheck(hipMalloc(dout,N)) ! Transfer data from host to device memory call hipCheck(hipMemcpy(da, a, N, hipMemcpyHostToDevice)) call hipCheck(hipMemcpy(db, b, N, hipMemcpyHostToDevice)) ! launch kernel call launch(dim3(320),dim3(256),0,c_null_ptr,c_loc(dout),c_loc(da),c_loc(db),N) !call launch(grid,block,0,c_null_ptr,c_loc(dout),c_loc(da),c_loc(db),N) call hipCheck(hipDeviceSynchronize()) ! Transfer data back to host memory call hipCheck(hipMemcpy(out, dout, N, hipMemcpyDeviceToHost)) if ( sum(out) .eq. N*2.0 ) then print *, "PASSED!" else print *, "FAILED!" endif call hipCheck(hipFree(da)) call hipCheck(hipFree(db)) call hipCheck(hipFree(dout)) ! Deallocate host memory deallocate(a,b,out) end program fortran_hip hipfort-7.2.4/test/f2008/vecadd/Makefile0000664000175000017500000000022715207260635017776 0ustar alastairalastair.PHONY: build run clean build: main main: hipfc $(CFLAGS) main.f03 hip_implementation.cpp -o main run: main ./main clean: rm -f main *.o *.mod hipfort-7.2.4/test/f2008/vecadd/hip_implementation.cpp0000664000175000017500000000104715207260635022730 0ustar alastairalastair#include #include __global__ void vector_add(double *out, double *a, double *b, int n) { size_t index = blockIdx.x * blockDim.x + threadIdx.x; size_t stride = blockDim.x * gridDim.x; for (size_t i = index; i < n; i += stride) out[i] = a[i] + b[i]; } extern "C" { void launch(dim3* grid, dim3* block, int shmem, hipStream_t stream, double *dout, double *da, double *db, int N) { //printf("launching kernel\n"); hipLaunchKernelGGL((vector_add), *grid, *block, shmem, stream, dout, da, db, N); } } hipfort-7.2.4/test/f2008/hipsolver/0000775000175000017500000000000015207260635017122 5ustar alastairalastairhipfort-7.2.4/test/f2008/hipsolver/hipsolverdgetrf.f030000664000175000017500000000445615207260635022654 0ustar alastairalastair! Example: Compute the LU Factorization of a matrix on the GPU program main use hipfort use hipfort_check use hipfort_hipsolver implicit none integer(c_int),parameter :: M = 3,& N = 3,& lda = 3 integer(c_size_t),parameter :: size_piv = min(M, N) ! count of pivot indices real(c_double) :: hA(lda,N) integer(c_int) :: hInfo ! provides information about algorithm completion integer(c_int) :: hIpiv(size_piv) ! array for pivot indices on CPU ! type(c_ptr) :: handle = c_null_ptr integer(c_int),pointer :: dInfo integer(c_int),pointer :: dIpiv(:) real(c_double),pointer :: dA(:,:) type(c_ptr) :: dWork integer(c_int) :: size_work_bytes ! size of workspace to pass to getrf (in bytes) ! hA = reshape((/12,-51,4, 6,167,-68, -4,24,-41/),shape(hA)) write(*,"(a)",advance="no") "-- Running test 'hipsolverDgetrf' (Fortran 2008 interfaces) - " ! let's print the input matrix, just to see it ! print *, hA ! initialization call hipsolverCheck(hipsolverCreate(handle)) ! calculate the sizes of our arrays ! allocate memory on GPU & copy hA to device call hipCheck(hipMalloc(dInfo)) call hipCheck(hipMalloc(dIpiv, mold=hIpiv)) call hipCheck(hipMalloc(dA, source=hA)) ! create the workspace call hipsolverCheck(hipsolverDgetrf_bufferSize(handle, M, N, dA, lda, size_work_bytes)) call hipCheck(hipMalloc(dWork, int(size_work_bytes,c_size_t))) ! compute the LU factorization on the GPU call hipsolverCheck(hipsolverDgetrf(handle, M, N, dA, lda, dWork, size_work_bytes, dIpiv, dInfo)) ! copy the results back to CPU call hipCheck(hipMemcpy(hInfo, dInfo, hipMemcpyDeviceToHost)) call hipCheck(hipMemcpy(hIpiv, dIpiv, hipMemcpyDeviceToHost)) call hipCheck(hipMemcpy(hA, dA, hipMemcpyDeviceToHost)) ! the results are now in hA and hIpiv ! we can print some of the results if we want to see them ! print *, "hInfo=",hInfo ! print *, "hA=",hA ! print *, "hIpiv=",hA ! clean up call hipCheck(hipFree(dWork)) call hipCheck(hipFree(dInfo)) call hipCheck(hipFree(dIpiv)) call hipCheck(hipFree(dA)) call hipsolverCheck(hipsolverDestroy(handle)) ! TODO: add correctness check write(*,*) "PASSED!" end program hipfort-7.2.4/test/f2008/hipsolver/Makefile0000664000175000017500000000010715207260635020560 0ustar alastairalastairCFLAGS ?= -lhipsolver -lrocsolver -lrocblas include ../../Makefile.in hipfort-7.2.4/test/f2008/rocfft/0000775000175000017500000000000015207260635016372 5ustar alastairalastairhipfort-7.2.4/test/f2008/rocfft/Makefile0000664000175000017500000000005615207260635020033 0ustar alastairalastairCFLAGS ?= -lrocfft include ../../Makefile.in hipfort-7.2.4/test/f2008/rocfft/rocfft.f030000664000175000017500000000362415207260635020174 0ustar alastairalastairprogram rocfft_example use iso_c_binding use hipfort use hipfort_check use hipfort_rocfft implicit none integer(c_size_t), parameter :: N=16 complex(8), allocatable, target, dimension(:) :: hx complex(8), pointer, dimension(:) :: dx => null() type(c_ptr) :: plan = c_null_ptr integer(c_size_t), allocatable, target, dimension(:) :: lengths integer(c_size_t), parameter :: one = 1 integer :: i double precision :: error double precision, parameter :: error_max = epsilon(error) allocate(lengths(3)) lengths(1) = N allocate(hx(N)) hx(:) = (1., -1.) call hipCheck(hipMalloc(dx,source=hx)) write(*,"(a)",advance="no") "-- Running test 'rocFFT' (Fortran 2008 interfaces) - " call rocfftCheck(rocfft_setup()) call rocfftCheck(rocfft_plan_create(plan,& rocfft_placement_inplace,& rocfft_transform_type_complex_forward,& rocfft_precision_double,& one,& c_loc(lengths),& one,& c_null_ptr)) call rocfftCheck(rocfft_execute(plan,c_loc(dx),c_null_ptr,c_null_ptr)) call hipCheck(hipDeviceSynchronize()) call rocfftCheck(rocfft_plan_destroy(plan)) call hipCheck(hipMemcpy(hx,dx,hipMemcpyDeviceToHost)) call hipCheck(hipFree(dx)) ! Using the C++ version of this as the "gold". ! first components were \pm 16 and the remaining componenents ! were zero, so the sum of each component pair should be zero do i = 1,N error = DBLE(hx(i)) + AIMAG(hx(i)) if(error > error_max)then write(*,*) "FAILED! Error = ", error, "hx(i)=",hx(i) STOP 1 end if end do deallocate(hx) deallocate(lengths) call rocfftCheck(rocfft_cleanup()) write(*,*) "PASSED!" end program rocfft_example hipfort-7.2.4/test/f2008/rocfft/.gitignore0000664000175000017500000000000715207260635020357 0ustar alastairalastairrocfft hipfort-7.2.4/test/f2008/rocsolver/0000775000175000017500000000000015207260635017125 5ustar alastairalastairhipfort-7.2.4/test/f2008/rocsolver/rocsolver_dgeqrf.f030000664000175000017500000000462315207260635023012 0ustar alastairalastair!!!!!!!!!!!!!/ ! dgeqrf example ! see: http:!www.netlib.org/lapack/explore-html/df/dc5/group__variants_g_ecomputational_ga3766ea903391b5cf9008132f7440ec7b.html !!!!!!!!!!!!!!/ ! program dgeqrf use iso_c_binding use hipfort use hipfort_check use hipfort_rocblas use hipfort_rocsolver implicit none integer :: i, j ! indices for iterating over results ! Define our input data real(c_double) :: hA(3,3) = reshape((/12, 6, -4, -51, 167, 24, 4, -68, -41/), (/3, 3/)) real(c_double) :: hResult(3,3) = reshape((/& -14.000000000000000, -21.000000000000000, 14.000000000000002,& 0.23076923076923078, -175.00000000000000, 70.000000000000000,& -0.15384615384615385, 5.5555555555555559E-002, -35.000000000000000/), shape(hResult), order=(/2,1/)) integer(c_int), parameter :: M = 3 integer(c_int), parameter :: N = 3 integer(c_int), parameter :: lda = 3 real(c_double) :: hIpiv(3) ! CPU buffer for Householder scalars real(c_double), pointer :: dA(:,:) ! GPU buffer for A real(c_double), pointer :: dIpiv(:) ! GPU buffer for Householder scalars type(c_ptr) :: handle ! rocblas_handle real :: error real, parameter :: error_max = 10 * epsilon(error_max) ! write(*,"(a)",advance="no") "-- Running test 'rocsolver_dgeqrf' (Fortran 2008 interfaces) - " ! Allocate device-side memory & copy memory from host to device call hipCheck(hipMalloc(dA, source=hA)) call hipCheck(hipMalloc(dIpiv, source=hIpiv)) ! Create rocBLAS handle call hipCheck(rocblas_create_handle(handle)) ! Compute the QR factorization on the devi ce call hipCheck(rocsolver_dgeqrf(handle, M, N, dA, lda, dIpiv)) ! Copy result from device to host call hipCheck(hipMemcpy(hA, dA, hipMemcpyDeviceToHost)) call hipCheck(hipMemcpy(hIpiv, dIpiv, hipMemcpyDeviceToHost)) ! Output results do j = 1,size(hA,2) do i = 1,size(hA,1) error = abs(hA(i,j) - hResult(i,j)) if(error .gt. error_max) then write(*,*) "FAILED! Error bigger than max! Error = ", error, " hA(", i, ",", j, ") = ", hA(i,j) call exit end if ! print *, (hA(i,j), j=1,size(hA,2)) ! print *, (hResult(i,j), j=1,size(hA,2)) end do end do ! Clean up call hipCheck(hipFree(dA)) call hipCheck(hipFree(dIpiv)) call hipCheck(rocblas_destroy_handle(handle)) call hipCheck(hipDeviceReset()) write(*,*) "PASSED!" end program dgeqrf hipfort-7.2.4/test/f2008/rocsolver/Makefile0000664000175000017500000000007315207260635020565 0ustar alastairalastairCFLAGS ?= -lrocblas -lrocsolver include ../../Makefile.in hipfort-7.2.4/test/Makefile0000664000175000017500000000175115207260635016014 0ustar alastairalastairPREFIX ?= f2008 ifneq (,$(findstring sm_,$(CFLAGS))) # have CUDA arch flag TEST_COLLECTIONS = vecadd hipblas hipfft else TEST_COLLECTIONS = vecadd rocfft rocsparse rocsolver hipblas rocblas hipfft endif RUN_TEST_COLLECTIONS := $(addprefix run., $(TEST_COLLECTIONS)) CLEAN_TEST_COLLECTIONS := $(addprefix clean., $(TEST_COLLECTIONS)) .PHONY: build_all clean_all run_all build clean run $(TEST_COLLECTIONS) $(RUN_TEST_COLLECTIONS) $(CLEAN_TEST_COLLECTIONS) build_all: +make -C . build PREFIX=f2003 +make -C . build PREFIX=f2008 clean_all: +make -C . clean PREFIX=f2003 +make -C . clean PREFIX=f2008 run_all: +make -C . run PREFIX=f2003 +make -C . run PREFIX=f2008 $(TEST_COLLECTIONS): +make -C $(PREFIX)/$@ build $(RUN_TEST_COLLECTIONS): +make -C $(PREFIX)/$(shell echo $@ | sed "s,run.,,g") run $(CLEAN_TEST_COLLECTIONS): +make -C $(PREFIX)/$(shell echo $@ | sed "s,clean.,,g") clean build: $(TEST_COLLECTIONS) run: $(RUN_TEST_COLLECTIONS) clean: $(CLEAN_TEST_COLLECTIONS) hipfort-7.2.4/test/Makefile.in0000664000175000017500000000060615207260635016417 0ustar alastairalastairTEST_SOURCES := $(shell find . -name "*.f03" | sed "s,^\./,,g") TEST_APPS := $(TEST_SOURCES:.f03=) RUN_TEST_APPS := $(addprefix run., $(TEST_APPS)) .PHONY: build run clean $(TEST_APPS) $(RUN_TEST_APPS) build: $(TEST_APPS) $(TEST_APPS): %: hipfc $(CFLAGS) $@.f03 -o $@ $(RUN_TEST_APPS): run.%: % HIP_TRACE_API=1 ./$^ run: $(RUN_TEST_APPS) clean: rm -f $(TEST_APPS) *.o *.mod hipfort-7.2.4/test/CMakeLists.txt0000664000175000017500000001035115207260635017110 0ustar alastairalastair# # File: test/CMakeLists.txt # These tests are all Makefile based tests. # Each test is contained in its own subdirectory of this test directory # The Makefile must create a binary with the same name as the directory name. cmake_minimum_required(VERSION 3.18..4.0 FATAL_ERROR) if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") project(test-hipfort) endif() # make-based test infrastructure set(CMAKE_BUILD_PARALLEL_LEVEL "4" CACHE STRING "Number of build jobs") add_custom_target(all-f2003-tests COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j${CMAKE_BUILD_PARALLEL_LEVEL} PREFIX=f2003 build) add_custom_target(all-f2003-tests-run COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j1 PREFIX=f2003 run DEPENDS all-f2003-tests) add_custom_target(all-f2003-tests-clean COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j${CMAKE_BUILD_PARALLEL_LEVEL} PREFIX=f2003 clean) add_custom_target(all-f2008-tests COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j${CMAKE_BUILD_PARALLEL_LEVEL} PREFIX=f2008 build) add_custom_target(all-f2008-tests-run COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j1 PREFIX=f2008 run DEPENDS all-f2008-tests) add_custom_target(all-f2008-tests-clean COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j${CMAKE_BUILD_PARALLEL_LEVEL} PREFIX=f2008 clean) add_custom_target(all-tests COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j${CMAKE_BUILD_PARALLEL_LEVEL} build_all) add_custom_target(all-tests-run COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j1 run_all DEPENDS all-tests) add_custom_target(all-tests-clean COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} -j${CMAKE_BUILD_PARALLEL_LEVEL} clean_all) # cmake-based test infrastructure if(BUILD_TESTING) function(hipfort_add_test lib func dir) add_executable(hipfort_test_${dir}_${lib}_${func} ${dir}/${lib}/${func}.f03) target_link_libraries(hipfort_test_${dir}_${lib}_${func} PRIVATE hipfort::${lib} hipfort::hip) # the tests call EXIT, which is a GNU extension target_compile_options(hipfort_test_${dir}_${lib}_${func} PRIVATE $<$:-std=gnu>) add_test( NAME hipfort_test_${dir}_${lib}_${func} COMMAND hipfort_test_${dir}_${lib}_${func} ) endfunction() if(TARGET hipfort::hipblas) hipfort_add_test(hipblas cgemm f2003) hipfort_add_test(hipblas dgemm f2003) hipfort_add_test(hipblas dger f2003) hipfort_add_test(hipblas dscal f2003) hipfort_add_test(hipblas saxpy f2003) hipfort_add_test(hipblas scopy f2003) hipfort_add_test(hipblas sgemv f2003) hipfort_add_test(hipblas sger f2003) hipfort_add_test(hipblas sswap f2003) hipfort_add_test(hipblas cgemm f2008) hipfort_add_test(hipblas dgemm f2008) hipfort_add_test(hipblas dger f2008) hipfort_add_test(hipblas dscal f2008) hipfort_add_test(hipblas saxpy f2008) hipfort_add_test(hipblas scopy f2008) hipfort_add_test(hipblas sgemv f2008) hipfort_add_test(hipblas sger f2008) hipfort_add_test(hipblas sswap f2008) endif() if(TARGET hipfort::hipfft) hipfort_add_test(hipfft hipfft f2003) hipfort_add_test(hipfft hipfft f2008) endif() if(TARGET hipfort::hipsolver) hipfort_add_test(hipsolver hipsolverdgetrf f2008) endif() if(TARGET hipfort::rocblas) hipfort_add_test(rocblas saxpy f2003) hipfort_add_test(rocblas saxpy f2008) endif() if(TARGET hipfort::rocfft) hipfort_add_test(rocfft rocfft f2003) hipfort_add_test(rocfft rocfft f2008) endif() if(TARGET hipfort::rocsolver) hipfort_add_test(rocsolver rocsolver_dgeqrf f2003) hipfort_add_test(rocsolver rocsolver_dgeqrf f2008) endif() if(TARGET hipfort::rocsparse) hipfort_add_test(rocsparse ddoti f2003) hipfort_add_test(rocsparse ddoti f2008) endif() if(TARGET hipfort::roctx) include(CheckLanguage) check_language(HIP) if(CMAKE_HIP_COMPILER) enable_language(HIP) hipfort_add_test(roctx main f2003) target_sources(hipfort_test_f2003_roctx_main PRIVATE f2003/roctx/hip_implementation.cpp) set_source_files_properties(f2003/roctx/hip_implementation.cpp PROPERTIES LANGUAGE HIP ) set_target_properties(hipfort_test_f2003_roctx_main PROPERTIES LINKER_LANGUAGE Fortran POSITION_INDEPENDENT_CODE ON ) endif() endif() endif() hipfort-7.2.4/README.md0000664000175000017500000002226615207260635014660 0ustar alastairalastair# hipfort: Fortran Interface For GPU Kernel Libraries This repository contains the source and testing for hipfort. This is a FORTRAN interface library for accessing GPU Kernels. ## Documentation > [!NOTE] > The published hipfort documentation is available at [hipfort](https://rocm.docs.amd.com/projects/hipfort/en/latest/index.html) in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the hipfort/docs folder of this repository. As with all ROCm projects, the documentation is open source. For more information, see [Contribute to ROCm documentation](https://rocm.docs.amd.com/en/latest/contribute/contributing.html). ## Known issues * `hipSOLVER` interfaces will only work for AMD GPUs. * We recommend `gfortran` version 7.5.0 or newer as we have observed problems with older versions. ## Build and test hipfort from source Install `gfortran`, `git`, `cmake`, and HIP, if not yet installed. Then build, install, and test hipfort from source with the commands below: ```shell git clone https://github.com/ROCm/hipfort.git cd hipfort cmake -S. -Bbuild -DCMAKE_INSTALL_PREFIOX=/tmp/hipfort -DBUILD_TESTING=ON make -C build make -C build check ``` ## Fortran interfaces `hipfort` provides interfaces to the following HIP and ROCm libraries: * **HIP:** HIP runtime, hipBLAS, hipSPARSE, hipFFT, hipRAND, hipSOLVER * **ROCm:** rocBLAS, rocSPARSE, rocFFT, rocRAND, rocSOLVER While the HIP interfaces and libraries allow to write portable code, the ROCm ones can only be used with AMD devices. The available interfaces depend on the Fortran compiler that is used to compile the `hipfort` modules and libraries. As the interfaces make use of the `iso_c_binding` module, the minimum requirement is a Fortran compiler that supports the Fortran 2003 standard (`f2003`). These interfaces typically require to pass `type(c_ptr)` variables and the number of bytes to memory management (e.g. `hipMalloc`) and math library routines (e.g. `hipblasDGEMM`). If your compiler understands the Fortran 2008 (`f2008`) code constructs that occur in `hipfort`'s source and test files, additional interfaces are compiled into the `hipfort` modules and libraries. These directly take Fortran (array) variables and the number of elements instead of `type(c_ptr)` variables and the number of bytes, respectively. Therefore, they reduce the chance to introduce compile-time and runtime errors into your code and makes it easier to read too. > **NOTE**: If you plan to use the `f2008` interfaces, we recommend `gfortran` version `7.5.0` or newer as we have observed problems with older versions. ### Example While you could write the following using the `f2003` interfaces: ```Fortran use iso_c_binding use hipfort integer :: ierr ! error code real :: a_h(5,6) ! host array type(c_ptr) :: a_d ! device array pointer ! ierr = hipMalloc(a_d,size(a_h)*4_c_size_t) ! real has 4 bytes ! append suffix '_c_size_t' to write '4' ! as 'integer(c_size_t)' ierr = hipMemcpy(a_d,c_loc(a_h),size(a_h)*4_c_size_t,hipMemcpyHostToDevice) ``` you could express the same with the `f2008` interfaces as follows: ```Fortran use hipfort integer :: ierr ! error code real :: a_h(5,6) ! host array real,pointer :: a_d(:,:) ! device array pointer ! ierr = hipMalloc(a_d,shape(a_h)) ! or hipMalloc(a_d,[5,6]) or hipMalloc(a_d,5,6) or hipMalloc(a_d,mold=a_h) ierr = hipMemcpy(a_d,a_h,size(a_h),hipMemcpyHostToDevice) ``` The `f2008` interfaces also overload `hipMalloc` similar to the Fortran 2008 `ALLOCATE` intrinsic. So you could write the whole code as shown below: ```Fortran integer :: ierr ! error code real :: a_h(5,6) ! host array real,pointer :: a_d(:,:) ! device array pointer ! ierr = hipMalloc(a_d,source=a_h) ! take shape (incl. bounds) of a_h and perform a blocking copy to device ``` In addition to `source`, there is also `dsource` in case the source is a device array. ### Supported HIP and ROCm API The current batch of HIPFORT interfaces is derived from ROCm 4.5.0. The following tables list the supported API: * [HIP](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_hip.md) * [hipBLAS](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_hipblas.md) * [hipFFT](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_hipfft.md) * [hipRAND](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_hiprand.md) * [hipSOLVER](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_hipsolver.md) * [hipSPARSE](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_hipsparse.md) * [rocBLAS](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_rocblas.md) * [rocFFT](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_rocfft.md) * [rocRAND](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_rocrand.md) * [rocSOLVER](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_rocsolver.md) * [rocSPARSE](https://github.com/ROCm/hipfort/blob/master/docs/doxygen/input/supported_api_rocsparse.md) You may further find it convenient to directly use the search function on [HIPFORT's documentation page](https://rocm.docs.amd.com/projects/hipfort/en/latest/) to get information on the arguments of an interface ## hipfc wrapper compiler and Makefile.hipfort The hipfc wrapper compiler is deprecated and will be removed in a future release. Users are encouraged to call their Fortran or HIP compilers directly instead of relying on the hipfc wrapper. The hipfort project provides exported CMake targets that can be used for linking to the appropriate ROCm libraries. hipfort currently ships the `hipfc` wrapper compiler and a `Makefile.hipfort` that can be included in a project's build system. hipfc is located in the `bin/` subdirectory and Makefile.hipfort in share/hipfort of the repository. While both can be configured via a number of environment variables, `hipfc` also understands a greater number of command line options that you can print to the screen via `hipfc -h`. Among the environment variables, the most important are: | Variable | Description | Default | |---|---|---| | `HIP_PLATFORM` | The platform to compile for | `amd` | | `ROCM_PATH` | Path to ROCm installation | `/opt/rocm` | | `CMAKE_Fortran_COMPILER` | Fortran compiler to be used | `gfortran` | ## Examples and tests The examples, which simultaneously serve as tests, are located in the `f2003` and `f2008` subdirectories of the repo's `test/` folder. Both test collections implement the same tests but require that the used Fortran compiler supports at least the respective Fortran standard. There are further subcategories per `hip*` or `roc*` library that is tested. ### Building a single test > **NOTE**: The make targets append the linker flags for AMD devices to the `CFLAGS` variable per default. To compile for AMD devices you can simply call `make` in the test directories. Compilation typically boils down to calling `hipfc` as follows: ```shell hipfc .f03 -o ``` The `vecadd` test is the exception as the additional HIP C++ source must be supplied too: ```shell hipfc hip_implementation.cpp main.f03 -o main ``` ### Building and running all tests You can build and run the whole test collection from the `build/` folder (see [Build and test hipfort from source](#build-and-test-hipfort-from-source)) or from the `test/` folder. The instructions are given below. #### AMD devices > **NOTE**: Running all tests as below requires that all ROCm math libraries can be found at `/opt/rocm`. Specify a different ROCm location via the `ROCM_PATH` environment variable. > **NOTE**: When using older ROCm versions, you might need to manually set the environment variable `HIP_PLATFORM` to `hcc` before running the tests. ```shell cd build/ make all-tests-run ``` Alternatively: ```shell cd test/ make run_all ``` ## Copyright, License, and Disclaimer Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. [MITx11 License] 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. hipfort-7.2.4/CHANGELOG.md0000664000175000017500000000376315207260635015213 0ustar alastairalastair# Change Log for hipfort ## hipfort 0.7.1 for ROCm 7.1.0 ### Added * Support for building with CMake 4.0. ### Resolved issues * Fixed a potential integer overflow issue in `hipMalloc` interfaces. ## hipfort 0.7.0 for ROCm 7.0.0 ### Added * Added documentation clarifying how hipfort is built for the NVIDIA platform. Thanks [@fluidnumerics-joe](https://github.com/fluidnumerics-joe)! ### Changed * Updated and reorganized documentation for clarity and consistency. ## hipfort 0.6.0 for ROCm 6.4.0 ### Upcoming changes * The hipfc compiler wrapper has been deprecated and will be removed in a future release. Users are encouraged to directly invoke their Fortran or HIP compilers as appropriate for each source file. ## hipfort 0.5.1 for ROCm 6.3.2 ### Added * Support for building with LLVM Flang ### Resolved issues * Fixed the exported `hipfort::hipsparse` CMake target ## hipfort 0.5.0 for ROCm 6.3.0 ### Added * Added roctx to the hipfort interfaces ### Changed * Updated the hipsolver bindings ## hipfort 0.4-0 for ROCm 6.0.1 ### Resolved issues - Included hipfort-config.cmake in the deb and rpm packages ## hipfort 0.4-0 for ROCm 6.0.0 ### Additions - Added an exported hipfort-config.cmake with the following targets: - `hipfort::hip` - `hipfort::rocblas` - `hipfort::hipblas` - `hipfort::rocfft` - `hipfort::hipfft` - `hipfort::rocsolver` - `hipfort::hipsolver` - `hipfort::rocrand` - `hipfort::hiprand` - `hipfort::rocsparse` - `hipfort::hipsparse` ## hipfort 0.4-0 for ROCm 5.7.0 ### Additions - Added `rocm_agent_enumerator` fallback for hipfc architecture autodetection ### Changes - Updated documentation to use the Sphinx toolchain and publish to ReadTheDocs - Updated `HIP_PLATFORM` from 'nvcc' to 'nvidia' ## hipfort 0.4-0 for ROCm 5.6.0 ### Additions - Added hipfc architecture autodetection for gx1101 devices ## hipfort 0.4-0 for ROCm 5.5.0 ### Fixes - Fixed hipfc architecture autodetection for gfx90a devices that were previously unrecognized hipfort-7.2.4/docs/0000775000175000017500000000000015207260635014321 5ustar alastairalastairhipfort-7.2.4/docs/reference/0000775000175000017500000000000015207260635016257 5ustar alastairalastairhipfort-7.2.4/docs/reference/index.md0000664000175000017500000000162415207260635017713 0ustar alastairalastair # API reference This section provides technical descriptions and important information about the different hipFORT APIs and library components. - {doc}`/doxygen/html/md_input_supported_api_hip` - {doc}`/doxygen/html/md_input_supported_api_hipblas` - {doc}`/doxygen/html/md_input_supported_api_hipfft` - {doc}`/doxygen/html/md_input_supported_api_hiprand` - {doc}`/doxygen/html/md_input_supported_api_hipsolver` - {doc}`/doxygen/html/md_input_supported_api_hipsparse` - {doc}`/doxygen/html/md_input_supported_api_rocblas` - {doc}`/doxygen/html/md_input_supported_api_rocfft` - {doc}`/doxygen/html/md_input_supported_api_rocrand` - {doc}`/doxygen/html/md_input_supported_api_rocsolver` - {doc}`/doxygen/html/md_input_supported_api_rocsparse` hipfort-7.2.4/docs/conf.py0000664000175000017500000000506115207260635015622 0ustar alastairalastair# Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full # list see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html import glob import os import re import shutil import subprocess from pathlib import Path from typing import Any, Dict, List from rocm_docs import ROCmDocs # Preprocess the fortran sources with gfortran, because doxygen doesn't seem # to correctly parse them, even with preprocessing turned on (and with # upper-case file names as convention) # preprocessed_out_dir has to be kept in sync with the Doxyfile's INPUT preprocessed_out_dir = Path("doxygen", "input") try: os.mkdir(preprocessed_out_dir) except FileExistsError: pass gfortran_exe = shutil.which("gfortran") if gfortran_exe is None: raise RuntimeError("Couldn't find the fortran compiler!") for filename in glob.glob("../lib/hipfort/*.[fF]90"): path = Path(filename) # -P is to disable embedding line information subprocess.check_call( [ gfortran_exe, "-E", "-cpp", "-P", "-DUSE_FPOINTER_INTERFACES=1", "-UUSE_CUDA_NAMES", str(path), "-o", str(preprocessed_out_dir / path.name), ] ) with open('../CMakeLists.txt', encoding='utf-8') as f: match = re.search(r'.*\bhipfort VERSION\s+\"?([0-9.]+)[^0-9.]+', f.read()) if not match: raise ValueError("HIPFORT_VERSION not found!") version_number = match[1] left_nav_title = f"hipfort {version_number} Documentation" # for PDF output on Read the Docs project = "hipfort Documentation" author = "Advanced Micro Devices, Inc." copyright = "Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved." version = version_number release = version_number external_toc_path = "./sphinx/_toc.yml" docs_core = ROCmDocs(left_nav_title) docs_core.run_doxygen(doxygen_root="doxygen", doxygen_path="doxygen/xml") docs_core.enable_api_reference() docs_core.setup() external_projects_current_project = "hipfort" for sphinx_var in ROCmDocs.SPHINX_VARS: globals()[sphinx_var] = getattr(docs_core, sphinx_var) # rocm-docs-core might or might not have changed these yet (depending on version), # and we don't want to wipe their settings if they did if not "html_theme_options" in globals(): html_theme_options: Dict[str, Any] = {} if not "exclude_patterns" in globals(): exclude_patterns: List[str] = [] html_theme_options["show_navbar_depth"] = 2 exclude_patterns.append("doxygen/input") hipfort-7.2.4/docs/tutorials/0000775000175000017500000000000015207260635016347 5ustar alastairalastairhipfort-7.2.4/docs/tutorials/examples.rst0000664000175000017500000000330715207260635020722 0ustar alastairalastair.. meta:: :description: hipFORT examples and API references :keywords: hipFORT, ROCm, API, documentation, examples, tutorials **************** hipFORT examples **************** Use the following examples to express Fortran 2003 (`f2003`) interfaces: **Example 1** .. code-block:: use iso_c_binding use hipfort integer :: ierr ! error code real :: a_h(5,6) ! host array type(c_ptr) :: a_d ! device array pointer ! ierr = hipMalloc(a_d,size(a_h)*4_c_size_t) ! real has 4 bytes ! append suffix '_c_size_t' to write '4' ! as 'integer(c_size_t)' ierr = hipMemcpy(a_d,c_loc(a_h),size(a_h)*4_c_size_t,hipMemcpyHostToDevice) **Example 2** .. code-block:: use hipfort integer :: ierr ! error code real :: a_h(5,6) ! host array real,pointer :: a_d(:,:) ! device array pointer ! ierr = hipMalloc(a_d,shape(a_h)) ! or hipMalloc(a_d,[5,6]) or hipMalloc(a_d,5,6) or hipMalloc(a_d,mold=a_h) ierr = hipMemcpy(a_d,a_h,size(a_h),hipMemcpyHostToDevice) .. note:: The Fortran 2008 (`f2008`) interfaces also overload ``hipMalloc``, similar to the Fortran 2008 ``ALLOCATE`` intrinsic. For example: .. code-block:: integer :: ierr ! error code real :: a_h(5,6) ! host array real,pointer :: a_d(:,:) ! device array pointer ! ierr = hipMalloc(a_d,source=a_h) ! take shape (incl. bounds) of a_h and perform a blocking copy to device In addition to ``source``, there is also ``dsource``, which is used if the source is a device array. hipfort-7.2.4/docs/sphinx/0000775000175000017500000000000015207260635015632 5ustar alastairalastairhipfort-7.2.4/docs/sphinx/requirements.txt0000664000175000017500000001355215207260635021124 0ustar alastairalastair# # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile requirements.in # accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==0.7.16 # via sphinx asttokens==3.0.0 # via stack-data attrs==24.3.0 # via # jsonschema # jupyter-cache # referencing babel==2.15.0 # via # pydata-sphinx-theme # sphinx beautifulsoup4==4.12.3 # via pydata-sphinx-theme breathe==4.35.0 # via rocm-docs-core certifi==2024.2.2 # via requests cffi==1.16.0 # via # cryptography # pynacl charset-normalizer==3.3.2 # via requests click==8.1.7 # via # click-log # doxysphinx # jupyter-cache # sphinx-external-toc click-log==0.4.0 # via doxysphinx comm==0.2.2 # via ipykernel contourpy==1.3.1 # via matplotlib cryptography==42.0.7 # via pyjwt cycler==0.12.1 # via matplotlib debugpy==1.8.12 # via ipykernel decorator==5.1.1 # via ipython deprecated==1.2.14 # via pygithub docutils==0.21.2 # via # breathe # myst-parser # pydata-sphinx-theme # sphinx doxysphinx==3.3.12 # via rocm-docs-core exceptiongroup==1.2.2 # via ipython executing==2.1.0 # via stack-data fastjsonschema==2.19.1 # via # nbformat # rocm-docs-core fonttools==4.55.0 # via matplotlib gitdb==4.0.11 # via gitpython gitpython==3.1.43 # via rocm-docs-core greenlet==3.1.1 # via sqlalchemy idna==3.7 # via requests imagesize==1.4.1 # via sphinx importlib-metadata==8.6.1 # via # jupyter-cache # myst-nb ipykernel==6.29.5 # via myst-nb ipython==8.31.0 # via # ipykernel # myst-nb jedi==0.19.2 # via ipython jinja2==3.1.4 # via # myst-parser # sphinx jsonschema==4.23.0 # via nbformat jsonschema-specifications==2024.10.1 # via jsonschema jupyter-cache==1.0.1 # via myst-nb jupyter-client==8.6.3 # via # ipykernel # nbclient jupyter-core==5.7.2 # via # ipykernel # jupyter-client # nbclient # nbformat kiwisolver==1.4.7 # via matplotlib libsass==0.22.0 # via doxysphinx lxml==5.2.1 # via doxysphinx markdown-it-py==3.0.0 # via # mdit-py-plugins # myst-parser markupsafe==2.1.5 # via jinja2 matplotlib==3.9.2 # via doxysphinx matplotlib-inline==0.1.7 # via # ipykernel # ipython mdit-py-plugins==0.4.1 # via myst-parser mdurl==0.1.2 # via markdown-it-py mpire==2.10.2 # via doxysphinx myst-nb==1.1.2 # via rocm-docs-core myst-parser==3.0.1 # via myst-nb nbclient==0.10.2 # via # jupyter-cache # myst-nb nbformat==5.10.4 # via # jupyter-cache # myst-nb # nbclient nest-asyncio==1.6.0 # via ipykernel numpy==1.26.4 # via # contourpy # doxysphinx # matplotlib packaging==24.0 # via # ipykernel # matplotlib # sphinx parso==0.8.4 # via jedi pexpect==4.9.0 # via ipython pillow==11.0.0 # via matplotlib platformdirs==4.3.6 # via jupyter-core prompt-toolkit==3.0.50 # via ipython psutil==6.1.1 # via ipykernel ptyprocess==0.7.0 # via pexpect pure-eval==0.2.3 # via stack-data pycparser==2.22 # via cffi pydata-sphinx-theme==0.16.1 # via # rocm-docs-core # sphinx-book-theme pygithub==2.3.0 # via rocm-docs-core pygments==2.18.0 # via # accessible-pygments # ipython # mpire # pydata-sphinx-theme # sphinx pyjson5==1.6.7 # via doxysphinx pyjwt[crypto]==2.8.0 # via pygithub pynacl==1.5.0 # via pygithub pyparsing==3.2.0 # via # doxysphinx # matplotlib python-dateutil==2.9.0.post0 # via # jupyter-client # matplotlib pyyaml==6.0.1 # via # jupyter-cache # myst-nb # myst-parser # rocm-docs-core # sphinx-external-toc pyzmq==26.2.0 # via # ipykernel # jupyter-client referencing==0.36.1 # via # jsonschema # jsonschema-specifications requests==2.32.2 # via # pygithub # sphinx rocm-docs-core[api-reference]==1.27.0 # via -r requirements.in rpds-py==0.22.3 # via # jsonschema # referencing six==1.16.0 # via python-dateutil smmap==5.0.1 # via gitdb snowballstemmer==2.2.0 # via sphinx soupsieve==2.5 # via beautifulsoup4 sphinx==7.3.7 # via # breathe # myst-nb # myst-parser # pydata-sphinx-theme # rocm-docs-core # sphinx-book-theme # sphinx-copybutton # sphinx-design # sphinx-external-toc # sphinx-notfound-page sphinx-book-theme==1.1.2 # via rocm-docs-core sphinx-copybutton==0.5.2 # via rocm-docs-core sphinx-design==0.6.0 # via rocm-docs-core sphinx-external-toc==1.0.1 # via rocm-docs-core sphinx-notfound-page==1.0.2 # via rocm-docs-core sphinxcontrib-applehelp==1.0.8 # via sphinx sphinxcontrib-devhelp==1.0.6 # via sphinx sphinxcontrib-htmlhelp==2.0.5 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.7 # via sphinx sphinxcontrib-serializinghtml==1.1.10 # via sphinx sqlalchemy==2.0.37 # via jupyter-cache stack-data==0.6.3 # via ipython tabulate==0.9.0 # via jupyter-cache tomli==2.0.1 # via sphinx tornado==6.4.2 # via # ipykernel # jupyter-client tqdm==4.67.1 # via mpire traitlets==5.14.3 # via # comm # ipykernel # ipython # jupyter-client # jupyter-core # matplotlib-inline # nbclient # nbformat typing-extensions==4.11.0 # via # ipython # myst-nb # pydata-sphinx-theme # pygithub # referencing # sqlalchemy urllib3==2.2.1 # via # pygithub # requests wcwidth==0.2.13 # via prompt-toolkit wrapt==1.16.0 # via deprecated zipp==3.21.0 # via importlib-metadata hipfort-7.2.4/docs/sphinx/requirements.in0000664000175000017500000000004615207260635020705 0ustar alastairalastairrocm-docs-core[api_reference]==1.27.0 hipfort-7.2.4/docs/sphinx/.python-version0000664000175000017500000000000415207260635020631 0ustar alastairalastair3.8 hipfort-7.2.4/docs/sphinx/.gitignore0000664000175000017500000000001215207260635017613 0ustar alastairalastair/_toc.yml hipfort-7.2.4/docs/sphinx/_toc.yml.in0000664000175000017500000000127515207260635017713 0ustar alastairalastair--- defaults: numbered: false root: index subtrees: - caption: Install entries: - file: install/quick-start.rst title: Quick start installation guide - file: install/install.rst title: Detailed install - caption: How to entries: - file: how-to/using-hipfort.rst title: Use hipFORT - caption: Tutorials entries: - file: tutorials/examples.rst title: Examples - caption: API reference entries: - file: doxygen/html/index title: hipFORT API reference - file: reference/index.md title: Supported APIs - caption: About entries: - file: license.md title: License hipfort-7.2.4/docs/index.rst0000664000175000017500000000266415207260635016172 0ustar alastairalastair .. meta:: :description: hipFORT documentation and API reference library :keywords: hipFORT, ROCm, API, documentation ******************************************************************** hipFORT documentation ******************************************************************** hipFORT is a Fortran interface library for accessing GPU kernels. It exposes the HIP API and ROCm and NVIDIA accelerated libraries in Fortran with an open and portable set of standard Fortran module interfaces. The hipFORT public repository is located at ``_. .. grid:: 2 :gutter: 3 .. grid-item-card:: Install * :doc:`Quick start installation guide <./install/quick-start>` * :doc:`Detailed install <./install/install>` .. grid-item-card:: How to * :doc:`Use hipFORT <./how-to/using-hipfort>` .. grid-item-card:: Tutorials * :doc:`Tutorials <./tutorials/examples>` .. grid-item-card:: API reference * :doc:`Supported APIs <./reference/index>` * :doc:`Modules <./doxygen/html/modules>` * :doc:`Namespaces <./doxygen/html/namespaces>` * :doc:`Data types list <./doxygen/html/annotated>` * :doc:`Files <./doxygen/html/files>` To contribute to the documentation, see `Contributing to ROCm `_. You can find licensing information on the `Licensing `_ page. hipfort-7.2.4/docs/how-to/0000775000175000017500000000000015207260635015536 5ustar alastairalastairhipfort-7.2.4/docs/how-to/using-hipfort.rst0000664000175000017500000000605015207260635021067 0ustar alastairalastair.. meta:: :description: How to use hipFORT :keywords: fortran, hipFORT, hipfc, compiler, AMD, ROCm, usage guide *********************************** Using hipFORT in your application *********************************** The following topic provides instructions and tips for using hipFORT. Fortran interfaces =================== hipFORT provides interfaces to the following HIP and ROCm-only libraries: * **HIP**: * HIP runtime * hipBLAS * hipSPARSE * hipFFT * hipRAND * hipSOLVER * **ROCm-only**: * rocBLAS * rocSPARSE * rocFFT * rocRAND * rocSOLVER .. note:: hipSOLVER interfaces only work with AMD GPUs. While the HIP-based interfaces and libraries let you write portable code, the ROCm-only libraries can only be used with AMD devices. The available interfaces depend on which Fortran compiler was used to compile the hipFORT modules and libraries. The interfaces use the ``iso_c_binding`` module, so the minimum requirement is a Fortran compiler that supports the Fortran 2003 standard (`f2003`). These interfaces typically require passing ``type(c_ptr)`` variables and the number of bytes to memory management. Some examples include ``hipMalloc`` and math library routines like ``hipblasDGEMM``. If your compiler can understand the Fortran 2008 (`f2008`) code constructs in the hipFORT source and test files, additional interfaces are compiled into the hipFORT modules and libraries. These interfaces take Fortran (array) variables, the number of elements instead of ``type(c_ptr)`` variables, and the number of bytes, respectively. Therefore, they reduce the chance of introducing compile-time and runtime errors into your code and make it easier to read. .. note:: If you plan to use the `f2008` interfaces, GFortran version 7.5.0 or newer is recommended. Problems can occur with older versions. Examples -------- To see some examples for the `f2003` and `f2008` interfaces, see the :doc:`hipFORT samples <../tutorials/examples>`. Supported HIP and ROCm APIs --------------------------- The current set of hipFORT interfaces is derived from ROCm version 4.5.0. The following tables list the supported APIs: * :doc:`HIP API <../doxygen/html/md_input_supported_api_hip>` * :doc:`hipBLAS API <../doxygen/html/md_input_supported_api_hipblas>` * :doc:`hipFFT API <../doxygen/html/md_input_supported_api_hipfft>` * :doc:`hipRAND API <../doxygen/html/md_input_supported_api_hiprand>` * :doc:`hipSOLVER API <../doxygen/html/md_input_supported_api_hipsolver>` * :doc:`hipSPARSE API <../doxygen/html/md_input_supported_api_hipsparse>` * :doc:`rocBLAS API <../doxygen/html/md_input_supported_api_rocblas>` * :doc:`rocFFT API <../doxygen/html/md_input_supported_api_rocfft>` * :doc:`rocRAND API <../doxygen/html/md_input_supported_api_rocrand>` * :doc:`rocSOLVER API <../doxygen/html/md_input_supported_api_rocsolver>` * :doc:`rocSPARSE API <../doxygen/html/md_input_supported_api_rocsparse>` .. note:: Use the **Search** function from the hipFORT table of contents to get more information on the arguments for an interface. hipfort-7.2.4/docs/license.md0000664000175000017500000000027315207260635016267 0ustar alastairalastair--- myst: html_meta: "description": "hipFORT license information" "keywords": "hipfort, ROCm, API, documentation, license" --- # License ```{include} ../LICENSE ``` hipfort-7.2.4/docs/doxygen/0000775000175000017500000000000015207260635015776 5ustar alastairalastairhipfort-7.2.4/docs/doxygen/input/0000775000175000017500000000000015207260635017135 5ustar alastairalastairhipfort-7.2.4/docs/doxygen/input/supported_api_rocrand.md0000664000175000017500000001036015207260635024045 0ustar alastairalastair# rocRAND API Support \# | API Name | Variants ----|---------------|--------- 1 | [rocrand_create_generator](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__create__generator.html "Interface documentation") | C binding 2 | [rocrand_destroy_generator](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__destroy__generator.html "Interface documentation") | C binding 3 | [rocrand_generate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate.html "Interface documentation") | C binding 4 | [rocrand_generate_char](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__char.html "Interface documentation") | C binding 5 | [rocrand_generate_short](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__short.html "Interface documentation") | C binding 6 | [rocrand_generate_uniform](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__uniform.html "Interface documentation") | C binding 7 | [rocrand_generate_uniform_double](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__uniform__double.html "Interface documentation") | C binding 8 | [rocrand_generate_normal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__normal.html "Interface documentation") | C binding 9 | [rocrand_generate_normal_double](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__normal__double.html "Interface documentation") | C binding 10 | [rocrand_generate_log_normal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__log__normal.html "Interface documentation") | C binding 11 | [rocrand_generate_log_normal_double](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__log__normal__double.html "Interface documentation") | C binding 12 | [rocrand_generate_poisson](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__generate__poisson.html "Interface documentation") | C binding 13 | [rocrand_initialize_generator](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__initialize__generator.html "Interface documentation") | C binding 14 | [rocrand_set_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__set__stream.html "Interface documentation") | C binding 15 | [rocrand_set_seed](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__set__seed.html "Interface documentation") | C binding 16 | [rocrand_set_offset](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__set__offset.html "Interface documentation") | C binding 17 | [rocrand_set_quasi_random_generator_dimensions](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__set__quasi__random__generator__dimensions.html "Interface documentation") | C binding 18 | [rocrand_get_version](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__get__version.html "Interface documentation") | C binding 19 | [rocrand_create_poisson_distribution](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__create__poisson__distribution.html "Interface documentation") | C binding 20 | [rocrand_create_discrete_distribution](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__create__discrete__distribution.html "Interface documentation") | C binding 21 | [rocrand_destroy_discrete_distribution](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocrand_1_1rocrand__destroy__discrete__distribution.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/supported_api_hipsolver.md0000664000175000017500000010261715207260635024437 0ustar alastairalastair# hipSOLVER API support \# | API Name | Variants ----|---------------|--------- 1 | [hipsolverCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercreate.html "Interface documentation") | C binding 2 | [hipsolverDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdestroy.html "Interface documentation") | C binding 3 | [hipsolverSetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversetstream.html "Interface documentation") | C binding 4 | [hipsolverGetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvergetstream.html "Interface documentation") | C binding 5 | [hipsolverSorgbr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversorgbr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 6 | [hipsolverDorgbr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdorgbr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 7 | [hipsolverCungbr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercungbr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 8 | [hipsolverZungbr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzungbr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 9 | [hipsolverSorgbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversorgbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 10 | [hipsolverDorgbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdorgbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 11 | [hipsolverCungbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercungbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 12 | [hipsolverZungbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzungbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 13 | [hipsolverSorgqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversorgqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 14 | [hipsolverDorgqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdorgqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 15 | [hipsolverCungqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercungqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 16 | [hipsolverZungqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzungqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 17 | [hipsolverSorgqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversorgqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 18 | [hipsolverDorgqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdorgqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 19 | [hipsolverCungqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercungqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 20 | [hipsolverZungqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzungqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 21 | [hipsolverSorgtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversorgtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 22 | [hipsolverDorgtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdorgtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 23 | [hipsolverCungtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercungtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 24 | [hipsolverZungtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzungtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 25 | [hipsolverSorgtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversorgtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 26 | [hipsolverDorgtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdorgtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 27 | [hipsolverCungtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercungtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 28 | [hipsolverZungtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzungtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 29 | [hipsolverSormqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversormqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 30 | [hipsolverDormqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdormqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 31 | [hipsolverCunmqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercunmqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 32 | [hipsolverZunmqr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzunmqr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 33 | [hipsolverSormqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversormqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 34 | [hipsolverDormqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdormqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 35 | [hipsolverCunmqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercunmqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 36 | [hipsolverZunmqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzunmqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 37 | [hipsolverSormtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversormtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 38 | [hipsolverDormtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdormtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 39 | [hipsolverCunmtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercunmtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 40 | [hipsolverZunmtr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzunmtr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 41 | [hipsolverSormtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversormtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 42 | [hipsolverDormtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdormtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 43 | [hipsolverCunmtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercunmtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 44 | [hipsolverZunmtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzunmtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 45 | [hipsolverSgebrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgebrd__buffersize.html "Interface documentation") | C binding 46 | [hipsolverDgebrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgebrd__buffersize.html "Interface documentation") | C binding 47 | [hipsolverCgebrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgebrd__buffersize.html "Interface documentation") | C binding 48 | [hipsolverZgebrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgebrd__buffersize.html "Interface documentation") | C binding 49 | [hipsolverSgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 50 | [hipsolverDgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 51 | [hipsolverCgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 52 | [hipsolverZgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 53 | [hipsolverSgeqrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgeqrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 54 | [hipsolverDgeqrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgeqrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 55 | [hipsolverCgeqrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgeqrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 56 | [hipsolverZgeqrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgeqrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 57 | [hipsolverSgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 58 | [hipsolverDgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 59 | [hipsolverCgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 60 | [hipsolverZgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 61 | [hipsolverSSgesv_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssgesv__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 62 | [hipsolverDDgesv_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverddgesv__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 63 | [hipsolverCCgesv_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverccgesv__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 64 | [hipsolverZZgesv_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzzgesv__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 65 | [hipsolverSSgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 66 | [hipsolverDDgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverddgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 67 | [hipsolverCCgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverccgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 68 | [hipsolverZZgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzzgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 69 | [hipsolverSgetrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgetrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 70 | [hipsolverDgetrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgetrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 71 | [hipsolverCgetrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgetrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 72 | [hipsolverZgetrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgetrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 73 | [hipsolverSgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 74 | [hipsolverDgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 75 | [hipsolverCgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 76 | [hipsolverZgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 77 | [hipsolverSgetrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgetrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 78 | [hipsolverDgetrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgetrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 79 | [hipsolverCgetrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgetrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 80 | [hipsolverZgetrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgetrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 81 | [hipsolverSgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolversgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 82 | [hipsolverDgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 83 | [hipsolverCgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 84 | [hipsolverZgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 85 | [hipsolverSpotrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 86 | [hipsolverDpotrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 87 | [hipsolverCpotrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 88 | [hipsolverZpotrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 89 | [hipsolverSpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 90 | [hipsolverDpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 91 | [hipsolverCpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 92 | [hipsolverZpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 93 | [hipsolverSpotrfBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrfbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 94 | [hipsolverDpotrfBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrfbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 95 | [hipsolverCpotrfBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrfbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 96 | [hipsolverZpotrfBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrfbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 97 | [hipsolverSpotrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 98 | [hipsolverDpotrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 99 | [hipsolverCpotrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 100 | [hipsolverZpotrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 101 | [hipsolverSpotri_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotri__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 102 | [hipsolverDpotri_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotri__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 103 | [hipsolverCpotri_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotri__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 104 | [hipsolverZpotri_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotri__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 105 | [hipsolverSpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 106 | [hipsolverDpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 107 | [hipsolverCpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 108 | [hipsolverZpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 109 | [hipsolverSpotrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 110 | [hipsolverDpotrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 111 | [hipsolverCpotrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 112 | [hipsolverZpotrs_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrs__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 113 | [hipsolverSpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 114 | [hipsolverDpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 115 | [hipsolverCpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 116 | [hipsolverZpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 117 | [hipsolverSpotrsBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrsbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 118 | [hipsolverDpotrsBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrsbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 119 | [hipsolverCpotrsBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrsbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 120 | [hipsolverZpotrsBatched_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrsbatched__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 121 | [hipsolverSpotrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverspotrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 122 | [hipsolverDpotrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdpotrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 123 | [hipsolverCpotrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercpotrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 124 | [hipsolverZpotrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzpotrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 125 | [hipsolverSsyevd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssyevd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 126 | [hipsolverDsyevd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsyevd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 127 | [hipsolverCheevd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercheevd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 128 | [hipsolverZheevd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzheevd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 129 | [hipsolverSsyevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssyevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 130 | [hipsolverDsyevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsyevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 131 | [hipsolverCheevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercheevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 132 | [hipsolverZheevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzheevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 133 | [hipsolverSsygvd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssygvd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 134 | [hipsolverDsygvd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsygvd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 135 | [hipsolverChegvd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverchegvd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 136 | [hipsolverZhegvd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzhegvd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 137 | [hipsolverSsygvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssygvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 138 | [hipsolverDsygvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsygvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 139 | [hipsolverChegvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverchegvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 140 | [hipsolverZhegvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzhegvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 141 | [hipsolverSsytrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssytrd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 142 | [hipsolverDsytrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsytrd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 143 | [hipsolverChetrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverchetrd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 144 | [hipsolverZhetrd_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzhetrd__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 145 | [hipsolverSsytrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssytrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 146 | [hipsolverDsytrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsytrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 147 | [hipsolverChetrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverchetrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 148 | [hipsolverZhetrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzhetrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 149 | [hipsolverSsytrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssytrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 150 | [hipsolverDsytrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsytrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 151 | [hipsolverCsytrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercsytrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 152 | [hipsolverZsytrf_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzsytrf__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 153 | [hipsolverSsytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverssytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 154 | [hipsolverDsytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverdsytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 155 | [hipsolverCsytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolvercsytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 156 | [hipsolverZsytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsolver_1_1hipsolverzsytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 hipfort-7.2.4/docs/doxygen/input/supported_api_rocsolver.md0000664000175000017500000040061615207260635024442 0ustar alastairalastair# rocSOLVER API Support \# | API Name | Variants ----|---------------|--------- 1 | [rocsolver_create_handle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__create__handle.html "Interface documentation") | C binding 2 | [rocsolver_destroy_handle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__destroy__handle.html "Interface documentation") | C binding 3 | [rocsolver_set_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__set__stream.html "Interface documentation") | C binding 4 | [rocsolver_get_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__get__stream.html "Interface documentation") | C binding 5 | [rocsolver_set_matrix](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__set__matrix.html "Interface documentation") | C binding 6 | [rocsolver_get_matrix](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__get__matrix.html "Interface documentation") | C binding 7 | [rocsolver_get_version_string](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__get__version__string.html "Interface documentation") | C binding 8 | [rocsolver_get_version_string_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__get__version__string__size.html "Interface documentation") | C binding 9 | [rocsolver_log_begin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__begin.html "Interface documentation") | C binding 10 | [rocsolver_log_end](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__end.html "Interface documentation") | C binding 11 | [rocsolver_log_set_layer_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__set__layer__mode.html "Interface documentation") | C binding 12 | [rocsolver_log_set_max_levels](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__set__max__levels.html "Interface documentation") | C binding 13 | [rocsolver_log_restore_defaults](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__restore__defaults.html "Interface documentation") | C binding 14 | [rocsolver_log_write_profile](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__write__profile.html "Interface documentation") | C binding 15 | [rocsolver_log_flush_profile](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__log__flush__profile.html "Interface documentation") | C binding 16 | [rocsolver_clacgv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clacgv.html "Interface documentation") | C binding, rank_0, rank_1 17 | [rocsolver_zlacgv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlacgv.html "Interface documentation") | C binding, rank_0, rank_1 18 | [rocsolver_slaswp](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slaswp.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 19 | [rocsolver_dlaswp](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlaswp.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 20 | [rocsolver_claswp](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__claswp.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 21 | [rocsolver_zlaswp](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlaswp.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 22 | [rocsolver_slarfg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slarfg.html "Interface documentation") | C binding, rank_0, rank_1 23 | [rocsolver_dlarfg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlarfg.html "Interface documentation") | C binding, rank_0, rank_1 24 | [rocsolver_clarfg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clarfg.html "Interface documentation") | C binding, rank_0, rank_1 25 | [rocsolver_zlarfg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlarfg.html "Interface documentation") | C binding, rank_0, rank_1 26 | [rocsolver_slarft](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slarft.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 27 | [rocsolver_dlarft](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlarft.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 28 | [rocsolver_clarft](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clarft.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 29 | [rocsolver_zlarft](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlarft.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 30 | [rocsolver_slarf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slarf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 31 | [rocsolver_dlarf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlarf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 32 | [rocsolver_clarf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clarf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 33 | [rocsolver_zlarf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlarf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 34 | [rocsolver_slarfb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slarfb.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 35 | [rocsolver_dlarfb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlarfb.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 36 | [rocsolver_clarfb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clarfb.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 37 | [rocsolver_zlarfb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlarfb.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 38 | [rocsolver_slabrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slabrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 39 | [rocsolver_dlabrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlabrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 40 | [rocsolver_clabrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clabrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 41 | [rocsolver_zlabrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlabrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 42 | [rocsolver_slatrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slatrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 43 | [rocsolver_dlatrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlatrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 44 | [rocsolver_clatrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clatrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 45 | [rocsolver_zlatrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlatrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 46 | [rocsolver_slasyf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__slasyf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 47 | [rocsolver_dlasyf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dlasyf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 48 | [rocsolver_clasyf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__clasyf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 49 | [rocsolver_zlasyf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zlasyf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 50 | [rocsolver_sorg2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorg2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 51 | [rocsolver_dorg2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorg2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 52 | [rocsolver_cung2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cung2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 53 | [rocsolver_zung2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zung2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 54 | [rocsolver_sorgqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorgqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 55 | [rocsolver_dorgqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorgqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 56 | [rocsolver_cungqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cungqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 57 | [rocsolver_zungqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zungqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 58 | [rocsolver_sorgl2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorgl2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 59 | [rocsolver_dorgl2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorgl2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 60 | [rocsolver_cungl2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cungl2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 61 | [rocsolver_zungl2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zungl2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 62 | [rocsolver_sorglq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorglq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 63 | [rocsolver_dorglq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorglq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 64 | [rocsolver_cunglq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunglq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 65 | [rocsolver_zunglq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunglq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 66 | [rocsolver_sorg2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorg2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 67 | [rocsolver_dorg2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorg2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 68 | [rocsolver_cung2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cung2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 69 | [rocsolver_zung2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zung2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 70 | [rocsolver_sorgql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorgql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 71 | [rocsolver_dorgql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorgql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 72 | [rocsolver_cungql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cungql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 73 | [rocsolver_zungql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zungql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 74 | [rocsolver_sorgbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorgbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 75 | [rocsolver_dorgbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorgbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 76 | [rocsolver_cungbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cungbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 77 | [rocsolver_zungbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zungbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 78 | [rocsolver_sorgtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorgtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 79 | [rocsolver_dorgtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorgtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 80 | [rocsolver_cungtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cungtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 81 | [rocsolver_zungtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zungtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 82 | [rocsolver_sorm2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorm2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 83 | [rocsolver_dorm2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorm2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 84 | [rocsolver_cunm2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunm2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 85 | [rocsolver_zunm2r](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunm2r.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 86 | [rocsolver_sormqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sormqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 87 | [rocsolver_dormqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dormqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 88 | [rocsolver_cunmqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunmqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 89 | [rocsolver_zunmqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunmqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 90 | [rocsolver_sorml2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorml2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 91 | [rocsolver_dorml2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorml2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 92 | [rocsolver_cunml2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunml2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 93 | [rocsolver_zunml2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunml2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 94 | [rocsolver_sormlq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sormlq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 95 | [rocsolver_dormlq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dormlq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 96 | [rocsolver_cunmlq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunmlq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 97 | [rocsolver_zunmlq](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunmlq.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 98 | [rocsolver_sorm2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sorm2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 99 | [rocsolver_dorm2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dorm2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 100 | [rocsolver_cunm2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunm2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 101 | [rocsolver_zunm2l](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunm2l.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 102 | [rocsolver_sormql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sormql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 103 | [rocsolver_dormql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dormql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 104 | [rocsolver_cunmql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunmql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 105 | [rocsolver_zunmql](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunmql.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 106 | [rocsolver_sormbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sormbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 107 | [rocsolver_dormbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dormbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 108 | [rocsolver_cunmbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunmbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 109 | [rocsolver_zunmbr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunmbr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 110 | [rocsolver_sormtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sormtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 111 | [rocsolver_dormtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dormtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 112 | [rocsolver_cunmtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cunmtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 113 | [rocsolver_zunmtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zunmtr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 114 | [rocsolver_sbdsqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sbdsqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 115 | [rocsolver_dbdsqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dbdsqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 116 | [rocsolver_cbdsqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cbdsqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 117 | [rocsolver_zbdsqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zbdsqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 118 | [rocsolver_ssterf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssterf.html "Interface documentation") | C binding, rank_0, rank_1 119 | [rocsolver_dsterf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsterf.html "Interface documentation") | C binding, rank_0, rank_1 120 | [rocsolver_ssteqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssteqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 121 | [rocsolver_dsteqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsteqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 122 | [rocsolver_csteqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csteqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 123 | [rocsolver_zsteqr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsteqr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 124 | [rocsolver_sstedc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sstedc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 125 | [rocsolver_dstedc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dstedc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 126 | [rocsolver_cstedc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cstedc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 127 | [rocsolver_zstedc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zstedc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 128 | [rocsolver_sgetf2_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetf2__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 129 | [rocsolver_dgetf2_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetf2__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 130 | [rocsolver_cgetf2_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetf2__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 131 | [rocsolver_zgetf2_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetf2__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 132 | [rocsolver_sgetf2_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetf2__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 133 | [rocsolver_dgetf2_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetf2__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 134 | [rocsolver_cgetf2_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetf2__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 135 | [rocsolver_zgetf2_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetf2__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 136 | [rocsolver_sgetf2_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetf2__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 137 | [rocsolver_dgetf2_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetf2__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 138 | [rocsolver_cgetf2_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetf2__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 139 | [rocsolver_zgetf2_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetf2__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 140 | [rocsolver_sgetrf_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrf__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 141 | [rocsolver_dgetrf_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrf__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 142 | [rocsolver_cgetrf_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrf__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 143 | [rocsolver_zgetrf_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrf__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 144 | [rocsolver_sgetrf_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrf__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 145 | [rocsolver_dgetrf_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrf__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 146 | [rocsolver_cgetrf_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrf__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 147 | [rocsolver_zgetrf_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrf__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 148 | [rocsolver_sgetrf_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrf__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 149 | [rocsolver_dgetrf_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrf__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 150 | [rocsolver_cgetrf_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrf__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 151 | [rocsolver_zgetrf_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrf__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 152 | [rocsolver_sgetf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 153 | [rocsolver_dgetf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 154 | [rocsolver_cgetf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 155 | [rocsolver_zgetf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 156 | [rocsolver_sgetf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 157 | [rocsolver_dgetf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 158 | [rocsolver_cgetf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 159 | [rocsolver_zgetf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 160 | [rocsolver_sgetf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 161 | [rocsolver_dgetf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 162 | [rocsolver_cgetf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 163 | [rocsolver_zgetf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 164 | [rocsolver_sgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 165 | [rocsolver_dgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 166 | [rocsolver_cgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 167 | [rocsolver_zgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 168 | [rocsolver_sgetrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 169 | [rocsolver_dgetrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 170 | [rocsolver_cgetrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 171 | [rocsolver_zgetrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 172 | [rocsolver_sgetrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 173 | [rocsolver_dgetrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 174 | [rocsolver_cgetrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 175 | [rocsolver_zgetrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 176 | [rocsolver_sgeqr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 177 | [rocsolver_dgeqr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 178 | [rocsolver_cgeqr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 179 | [rocsolver_zgeqr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 180 | [rocsolver_sgeqr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 181 | [rocsolver_dgeqr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 182 | [rocsolver_cgeqr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 183 | [rocsolver_zgeqr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 184 | [rocsolver_sgeqr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 185 | [rocsolver_dgeqr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 186 | [rocsolver_cgeqr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 187 | [rocsolver_zgeqr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 188 | [rocsolver_sgerq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgerq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 189 | [rocsolver_dgerq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgerq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 190 | [rocsolver_cgerq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgerq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 191 | [rocsolver_zgerq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgerq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 192 | [rocsolver_sgerq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgerq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 193 | [rocsolver_dgerq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgerq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 194 | [rocsolver_cgerq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgerq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 195 | [rocsolver_zgerq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgerq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 196 | [rocsolver_sgerq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgerq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 197 | [rocsolver_dgerq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgerq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 198 | [rocsolver_cgerq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgerq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 199 | [rocsolver_zgerq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgerq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 200 | [rocsolver_sgeql2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeql2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 201 | [rocsolver_dgeql2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeql2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 202 | [rocsolver_cgeql2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeql2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 203 | [rocsolver_zgeql2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeql2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 204 | [rocsolver_sgeql2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeql2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 205 | [rocsolver_dgeql2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeql2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 206 | [rocsolver_cgeql2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeql2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 207 | [rocsolver_zgeql2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeql2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 208 | [rocsolver_sgeql2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeql2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 209 | [rocsolver_dgeql2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeql2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 210 | [rocsolver_cgeql2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeql2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 211 | [rocsolver_zgeql2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeql2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 212 | [rocsolver_sgelq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgelq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 213 | [rocsolver_dgelq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgelq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 214 | [rocsolver_cgelq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgelq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 215 | [rocsolver_zgelq2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgelq2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 216 | [rocsolver_sgelq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgelq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 217 | [rocsolver_dgelq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgelq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 218 | [rocsolver_cgelq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgelq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 219 | [rocsolver_zgelq2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgelq2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 220 | [rocsolver_sgelq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgelq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 221 | [rocsolver_dgelq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgelq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 222 | [rocsolver_cgelq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgelq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 223 | [rocsolver_zgelq2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgelq2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 224 | [rocsolver_sgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 225 | [rocsolver_dgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 226 | [rocsolver_cgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 227 | [rocsolver_zgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 228 | [rocsolver_sgeqrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 229 | [rocsolver_dgeqrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 230 | [rocsolver_cgeqrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 231 | [rocsolver_zgeqrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 232 | [rocsolver_sgeqrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 233 | [rocsolver_dgeqrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 234 | [rocsolver_cgeqrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 235 | [rocsolver_zgeqrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 236 | [rocsolver_sgerqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgerqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 237 | [rocsolver_dgerqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgerqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 238 | [rocsolver_cgerqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgerqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 239 | [rocsolver_zgerqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgerqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 240 | [rocsolver_sgerqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgerqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 241 | [rocsolver_dgerqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgerqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 242 | [rocsolver_cgerqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgerqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 243 | [rocsolver_zgerqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgerqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 244 | [rocsolver_sgerqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgerqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 245 | [rocsolver_dgerqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgerqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 246 | [rocsolver_cgerqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgerqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 247 | [rocsolver_zgerqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgerqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 248 | [rocsolver_sgeqlf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqlf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 249 | [rocsolver_dgeqlf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqlf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 250 | [rocsolver_cgeqlf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqlf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 251 | [rocsolver_zgeqlf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqlf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 252 | [rocsolver_sgeqlf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqlf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 253 | [rocsolver_dgeqlf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqlf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 254 | [rocsolver_cgeqlf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqlf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 255 | [rocsolver_zgeqlf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqlf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 256 | [rocsolver_sgeqlf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgeqlf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 257 | [rocsolver_dgeqlf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgeqlf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 258 | [rocsolver_cgeqlf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgeqlf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 259 | [rocsolver_zgeqlf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgeqlf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 260 | [rocsolver_sgelqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgelqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 261 | [rocsolver_dgelqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgelqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 262 | [rocsolver_cgelqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgelqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 263 | [rocsolver_zgelqf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgelqf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 264 | [rocsolver_sgelqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgelqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 265 | [rocsolver_dgelqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgelqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 266 | [rocsolver_cgelqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgelqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 267 | [rocsolver_zgelqf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgelqf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 268 | [rocsolver_sgelqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgelqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 269 | [rocsolver_dgelqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgelqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 270 | [rocsolver_cgelqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgelqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 271 | [rocsolver_zgelqf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgelqf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 272 | [rocsolver_sgebd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgebd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 273 | [rocsolver_dgebd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgebd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 274 | [rocsolver_cgebd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgebd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 275 | [rocsolver_zgebd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgebd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 276 | [rocsolver_sgebd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgebd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 277 | [rocsolver_dgebd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgebd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 278 | [rocsolver_cgebd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgebd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 279 | [rocsolver_zgebd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgebd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 280 | [rocsolver_sgebd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgebd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 281 | [rocsolver_dgebd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgebd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 282 | [rocsolver_cgebd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgebd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 283 | [rocsolver_zgebd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgebd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 284 | [rocsolver_sgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 285 | [rocsolver_dgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 286 | [rocsolver_cgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 287 | [rocsolver_zgebrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgebrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 288 | [rocsolver_sgebrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgebrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 289 | [rocsolver_dgebrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgebrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 290 | [rocsolver_cgebrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgebrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 291 | [rocsolver_zgebrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgebrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 292 | [rocsolver_sgebrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgebrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 293 | [rocsolver_dgebrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgebrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 294 | [rocsolver_cgebrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgebrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 295 | [rocsolver_zgebrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgebrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 296 | [rocsolver_sgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 297 | [rocsolver_dgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 298 | [rocsolver_cgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 299 | [rocsolver_zgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 300 | [rocsolver_sgetrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 301 | [rocsolver_dgetrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 302 | [rocsolver_cgetrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 303 | [rocsolver_zgetrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 304 | [rocsolver_sgetrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 305 | [rocsolver_dgetrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 306 | [rocsolver_cgetrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 307 | [rocsolver_zgetrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 308 | [rocsolver_sgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 309 | [rocsolver_dgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 310 | [rocsolver_cgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 311 | [rocsolver_zgesv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgesv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 312 | [rocsolver_sgesv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgesv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 313 | [rocsolver_dgesv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgesv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 314 | [rocsolver_cgesv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgesv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 315 | [rocsolver_zgesv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgesv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 316 | [rocsolver_sgesv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgesv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 317 | [rocsolver_dgesv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgesv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 318 | [rocsolver_cgesv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgesv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 319 | [rocsolver_zgesv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgesv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 320 | [rocsolver_sgetri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 321 | [rocsolver_dgetri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 322 | [rocsolver_cgetri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 323 | [rocsolver_zgetri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 324 | [rocsolver_sgetri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 325 | [rocsolver_dgetri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 326 | [rocsolver_cgetri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 327 | [rocsolver_zgetri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 328 | [rocsolver_sgetri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 329 | [rocsolver_dgetri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 330 | [rocsolver_cgetri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 331 | [rocsolver_zgetri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 332 | [rocsolver_sgetri_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 333 | [rocsolver_dgetri_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 334 | [rocsolver_cgetri_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 335 | [rocsolver_zgetri_npvt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__npvt.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 336 | [rocsolver_sgetri_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 337 | [rocsolver_dgetri_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 338 | [rocsolver_cgetri_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 339 | [rocsolver_zgetri_npvt_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__npvt__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 340 | [rocsolver_sgetri_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 341 | [rocsolver_dgetri_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 342 | [rocsolver_cgetri_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 343 | [rocsolver_zgetri_npvt_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__npvt__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 344 | [rocsolver_sgels](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgels.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 345 | [rocsolver_dgels](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgels.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 346 | [rocsolver_cgels](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgels.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 347 | [rocsolver_zgels](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgels.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 348 | [rocsolver_sgels_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgels__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 349 | [rocsolver_dgels_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgels__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 350 | [rocsolver_cgels_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgels__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 351 | [rocsolver_zgels_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgels__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 352 | [rocsolver_sgels_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgels__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 353 | [rocsolver_dgels_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgels__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 354 | [rocsolver_cgels_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgels__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 355 | [rocsolver_zgels_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgels__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 356 | [rocsolver_spotf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 357 | [rocsolver_dpotf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 358 | [rocsolver_cpotf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 359 | [rocsolver_zpotf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 360 | [rocsolver_spotf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 361 | [rocsolver_dpotf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 362 | [rocsolver_cpotf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 363 | [rocsolver_zpotf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 364 | [rocsolver_spotf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 365 | [rocsolver_dpotf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 366 | [rocsolver_cpotf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 367 | [rocsolver_zpotf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 368 | [rocsolver_spotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 369 | [rocsolver_dpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 370 | [rocsolver_cpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 371 | [rocsolver_zpotrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 372 | [rocsolver_spotrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 373 | [rocsolver_dpotrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 374 | [rocsolver_cpotrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 375 | [rocsolver_zpotrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 376 | [rocsolver_spotrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 377 | [rocsolver_dpotrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 378 | [rocsolver_cpotrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 379 | [rocsolver_zpotrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 380 | [rocsolver_spotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 381 | [rocsolver_dpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 382 | [rocsolver_cpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 383 | [rocsolver_zpotrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 384 | [rocsolver_spotrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 385 | [rocsolver_dpotrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 386 | [rocsolver_cpotrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 387 | [rocsolver_zpotrs_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotrs__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 388 | [rocsolver_spotrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 389 | [rocsolver_dpotrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 390 | [rocsolver_cpotrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 391 | [rocsolver_zpotrs_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotrs__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 392 | [rocsolver_sposv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sposv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 393 | [rocsolver_dposv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dposv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 394 | [rocsolver_cposv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cposv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 395 | [rocsolver_zposv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zposv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 396 | [rocsolver_sposv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sposv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 397 | [rocsolver_dposv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dposv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 398 | [rocsolver_cposv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cposv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 399 | [rocsolver_zposv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zposv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 400 | [rocsolver_sposv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sposv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 401 | [rocsolver_dposv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dposv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 402 | [rocsolver_cposv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cposv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 403 | [rocsolver_zposv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zposv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 404 | [rocsolver_spotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 405 | [rocsolver_dpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 406 | [rocsolver_cpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 407 | [rocsolver_zpotri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 408 | [rocsolver_spotri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 409 | [rocsolver_dpotri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 410 | [rocsolver_cpotri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 411 | [rocsolver_zpotri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 412 | [rocsolver_spotri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__spotri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 413 | [rocsolver_dpotri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dpotri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 414 | [rocsolver_cpotri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cpotri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 415 | [rocsolver_zpotri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zpotri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 416 | [rocsolver_sgesvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgesvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 417 | [rocsolver_dgesvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgesvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 418 | [rocsolver_cgesvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgesvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 419 | [rocsolver_zgesvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgesvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 420 | [rocsolver_sgesvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgesvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 421 | [rocsolver_dgesvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgesvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 422 | [rocsolver_cgesvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgesvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 423 | [rocsolver_zgesvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgesvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 424 | [rocsolver_sgesvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgesvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 425 | [rocsolver_dgesvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgesvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 426 | [rocsolver_cgesvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgesvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 427 | [rocsolver_zgesvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgesvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 428 | [rocsolver_ssytd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 429 | [rocsolver_dsytd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 430 | [rocsolver_chetd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chetd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 431 | [rocsolver_zhetd2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhetd2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 432 | [rocsolver_ssytd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 433 | [rocsolver_dsytd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 434 | [rocsolver_chetd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chetd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 435 | [rocsolver_zhetd2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhetd2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 436 | [rocsolver_ssytd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 437 | [rocsolver_dsytd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 438 | [rocsolver_chetd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chetd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 439 | [rocsolver_zhetd2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhetd2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 440 | [rocsolver_ssytrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 441 | [rocsolver_dsytrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 442 | [rocsolver_chetrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chetrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 443 | [rocsolver_zhetrd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhetrd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 444 | [rocsolver_ssytrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 445 | [rocsolver_dsytrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 446 | [rocsolver_chetrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chetrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 447 | [rocsolver_zhetrd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhetrd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 448 | [rocsolver_ssytrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 449 | [rocsolver_dsytrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 450 | [rocsolver_chetrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chetrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 451 | [rocsolver_zhetrd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhetrd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 452 | [rocsolver_ssygs2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygs2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 453 | [rocsolver_dsygs2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygs2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 454 | [rocsolver_chegs2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegs2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 455 | [rocsolver_zhegs2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegs2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 456 | [rocsolver_ssygs2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygs2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 457 | [rocsolver_dsygs2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygs2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 458 | [rocsolver_chegs2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegs2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 459 | [rocsolver_zhegs2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegs2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 460 | [rocsolver_ssygs2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygs2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 461 | [rocsolver_dsygs2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygs2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 462 | [rocsolver_chegs2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegs2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 463 | [rocsolver_zhegs2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegs2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 464 | [rocsolver_ssygst](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygst.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 465 | [rocsolver_dsygst](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygst.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 466 | [rocsolver_chegst](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegst.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 467 | [rocsolver_zhegst](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegst.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 468 | [rocsolver_ssygst_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygst__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 469 | [rocsolver_dsygst_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygst__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 470 | [rocsolver_chegst_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegst__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 471 | [rocsolver_zhegst_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegst__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 472 | [rocsolver_ssygst_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygst__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 473 | [rocsolver_dsygst_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygst__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 474 | [rocsolver_chegst_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegst__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 475 | [rocsolver_zhegst_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegst__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 476 | [rocsolver_ssyev](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssyev.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 477 | [rocsolver_dsyev](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsyev.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 478 | [rocsolver_cheev](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cheev.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 479 | [rocsolver_zheev](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zheev.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 480 | [rocsolver_ssyev_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssyev__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 481 | [rocsolver_dsyev_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsyev__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 482 | [rocsolver_cheev_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cheev__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 483 | [rocsolver_zheev_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zheev__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 484 | [rocsolver_ssyev_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssyev__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 485 | [rocsolver_dsyev_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsyev__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 486 | [rocsolver_cheev_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cheev__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 487 | [rocsolver_zheev_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zheev__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 488 | [rocsolver_ssyevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssyevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 489 | [rocsolver_dsyevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsyevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 490 | [rocsolver_cheevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cheevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 491 | [rocsolver_zheevd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zheevd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 492 | [rocsolver_ssyevd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssyevd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 493 | [rocsolver_dsyevd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsyevd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 494 | [rocsolver_cheevd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cheevd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 495 | [rocsolver_zheevd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zheevd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 496 | [rocsolver_ssyevd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssyevd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 497 | [rocsolver_dsyevd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsyevd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 498 | [rocsolver_cheevd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cheevd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 499 | [rocsolver_zheevd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zheevd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 500 | [rocsolver_ssygv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 501 | [rocsolver_dsygv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 502 | [rocsolver_chegv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 503 | [rocsolver_zhegv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 504 | [rocsolver_ssygv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 505 | [rocsolver_dsygv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 506 | [rocsolver_chegv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 507 | [rocsolver_zhegv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 508 | [rocsolver_ssygv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 509 | [rocsolver_dsygv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 510 | [rocsolver_chegv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 511 | [rocsolver_zhegv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 512 | [rocsolver_ssygvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 513 | [rocsolver_dsygvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 514 | [rocsolver_chegvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 515 | [rocsolver_zhegvd](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegvd.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 516 | [rocsolver_ssygvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 517 | [rocsolver_dsygvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 518 | [rocsolver_chegvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 519 | [rocsolver_zhegvd_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegvd__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 520 | [rocsolver_ssygvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssygvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 521 | [rocsolver_dsygvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsygvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 522 | [rocsolver_chegvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__chegvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 523 | [rocsolver_zhegvd_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zhegvd__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 524 | [rocsolver_sgetri_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 525 | [rocsolver_dgetri_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 526 | [rocsolver_cgetri_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 527 | [rocsolver_zgetri_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 528 | [rocsolver_sgetri_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 529 | [rocsolver_dgetri_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 530 | [rocsolver_cgetri_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 531 | [rocsolver_zgetri_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 532 | [rocsolver_sgetri_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 533 | [rocsolver_dgetri_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 534 | [rocsolver_cgetri_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 535 | [rocsolver_zgetri_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 536 | [rocsolver_sgetri_npvt_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__npvt__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 537 | [rocsolver_dgetri_npvt_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__npvt__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 538 | [rocsolver_cgetri_npvt_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__npvt__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 539 | [rocsolver_zgetri_npvt_outofplace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__npvt__outofplace.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 540 | [rocsolver_sgetri_npvt_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__npvt__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 541 | [rocsolver_dgetri_npvt_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__npvt__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 542 | [rocsolver_cgetri_npvt_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__npvt__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 543 | [rocsolver_zgetri_npvt_outofplace_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__npvt__outofplace__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 544 | [rocsolver_sgetri_npvt_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__sgetri__npvt__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 545 | [rocsolver_dgetri_npvt_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dgetri__npvt__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 546 | [rocsolver_cgetri_npvt_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__cgetri__npvt__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 547 | [rocsolver_zgetri_npvt_outofplace_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zgetri__npvt__outofplace__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 548 | [rocsolver_strtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__strtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 549 | [rocsolver_dtrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dtrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 550 | [rocsolver_ctrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ctrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 551 | [rocsolver_ztrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ztrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 552 | [rocsolver_strtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__strtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 553 | [rocsolver_dtrtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dtrtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 554 | [rocsolver_ctrtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ctrtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 555 | [rocsolver_ztrtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ztrtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 556 | [rocsolver_strtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__strtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 557 | [rocsolver_dtrtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dtrtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 558 | [rocsolver_ctrtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ctrtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 559 | [rocsolver_ztrtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ztrtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 560 | [rocsolver_ssytf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 561 | [rocsolver_dsytf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 562 | [rocsolver_csytf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csytf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 563 | [rocsolver_zsytf2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsytf2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 564 | [rocsolver_ssytf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 565 | [rocsolver_dsytf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 566 | [rocsolver_csytf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csytf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 567 | [rocsolver_zsytf2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsytf2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 568 | [rocsolver_ssytf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 569 | [rocsolver_dsytf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 570 | [rocsolver_csytf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csytf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 571 | [rocsolver_zsytf2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsytf2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 572 | [rocsolver_ssytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 573 | [rocsolver_dsytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 574 | [rocsolver_csytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 575 | [rocsolver_zsytrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsytrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 576 | [rocsolver_ssytrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 577 | [rocsolver_dsytrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 578 | [rocsolver_csytrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csytrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 579 | [rocsolver_zsytrf_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsytrf__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 580 | [rocsolver_ssytrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__ssytrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 581 | [rocsolver_dsytrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__dsytrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 582 | [rocsolver_csytrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__csytrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 583 | [rocsolver_zsytrf_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsolver_1_1rocsolver__zsytrf__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 hipfort-7.2.4/docs/doxygen/input/supported_api_rocfft.md0000664000175000017500000001222715207260635023704 0ustar alastairalastair# rocFFT API Support \# | API Name | Variants ----|---------------|--------- 1 | [rocfft_setup](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__setup.html "Interface documentation") | C binding 2 | [rocfft_cleanup](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__cleanup.html "Interface documentation") | C binding 3 | [rocfft_plan_create](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__create.html "Interface documentation") | C binding, rank_0, rank_1 4 | [rocfft_execute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execute.html "Interface documentation") | C binding 5 | [rocfft_plan_destroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__destroy.html "Interface documentation") | C binding 6 | [rocfft_plan_description_set_scale_float](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__description__set__scale__float.html "Interface documentation") | C binding 7 | [rocfft_plan_description_set_scale_double](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__description__set__scale__double.html "Interface documentation") | C binding 8 | [rocfft_plan_description_set_data_layout](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__description__set__data__layout.html "Interface documentation") | C binding, rank_0, rank_1 9 | [rocfft_get_version_string](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__get__version__string.html "Interface documentation") | C binding 10 | [rocfft_plan_description_set_devices](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__description__set__devices.html "Interface documentation") | C binding 11 | [rocfft_plan_get_work_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__get__work__buffer__size.html "Interface documentation") | C binding 12 | [rocfft_plan_get_print](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__get__print.html "Interface documentation") | C binding 13 | [rocfft_plan_description_create](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__description__create.html "Interface documentation") | C binding 14 | [rocfft_plan_description_destroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__plan__description__destroy.html "Interface documentation") | C binding 15 | [rocfft_execution_info_create](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__create.html "Interface documentation") | C binding 16 | [rocfft_execution_info_destroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__destroy.html "Interface documentation") | C binding 17 | [rocfft_execution_info_set_work_buffer](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__set__work__buffer.html "Interface documentation") | C binding 18 | [rocfft_execution_info_set_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__set__mode.html "Interface documentation") | C binding 19 | [rocfft_execution_info_set_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__set__stream.html "Interface documentation") | C binding 20 | [rocfft_execution_info_set_load_callback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__set__load__callback.html "Interface documentation") | C binding 21 | [rocfft_execution_info_set_store_callback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__set__store__callback.html "Interface documentation") | C binding 22 | [rocfft_execution_info_get_events](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__execution__info__get__events.html "Interface documentation") | C binding 23 | [rocfft_cache_serialize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__cache__serialize.html "Interface documentation") | C binding 24 | [rocfft_cache_buffer_free](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__cache__buffer__free.html "Interface documentation") | C binding 25 | [rocfft_cache_deserialize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocfft_1_1rocfft__cache__deserialize.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/supported_api_rocblas.md0000664000175000017500000036666715207260635024072 0ustar alastairalastair# rocBLAS API Support \# | API Name | Variants ----|---------------|--------- 1 | [rocblas_set_vector](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__set__vector.html "Interface documentation") | C binding 2 | [rocblas_get_vector](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__get__vector.html "Interface documentation") | C binding 3 | [rocblas_set_matrix](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__set__matrix.html "Interface documentation") | C binding 4 | [rocblas_get_matrix](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__get__matrix.html "Interface documentation") | C binding 5 | [rocblas_set_vector_async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__set__vector__async.html "Interface documentation") | C binding 6 | [rocblas_get_vector_async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__get__vector__async.html "Interface documentation") | C binding 7 | [rocblas_set_matrix_async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__set__matrix__async.html "Interface documentation") | C binding 8 | [rocblas_get_matrix_async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas__auxiliary_1_1rocblas__get__matrix__async.html "Interface documentation") | C binding 1 | [rocblas_sscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sscal.html "Interface documentation") | C binding 2 | [rocblas_dscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dscal.html "Interface documentation") | C binding 3 | [rocblas_cscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cscal.html "Interface documentation") | C binding, rank_0, rank_1 4 | [rocblas_zscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zscal.html "Interface documentation") | C binding, rank_0, rank_1 5 | [rocblas_csscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csscal.html "Interface documentation") | C binding, rank_0, rank_1 6 | [rocblas_zdscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdscal.html "Interface documentation") | C binding, rank_0, rank_1 7 | [rocblas_sscal_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sscal__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 8 | [rocblas_dscal_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dscal__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 9 | [rocblas_cscal_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cscal__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 10 | [rocblas_zscal_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zscal__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 11 | [rocblas_csscal_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csscal__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 12 | [rocblas_zdscal_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdscal__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 13 | [rocblas_sscal_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sscal__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 14 | [rocblas_dscal_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dscal__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 15 | [rocblas_cscal_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cscal__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 16 | [rocblas_zscal_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zscal__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 17 | [rocblas_csscal_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csscal__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 18 | [rocblas_zdscal_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdscal__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 19 | [rocblas_scopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scopy.html "Interface documentation") | C binding, rank_0, rank_1 20 | [rocblas_dcopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dcopy.html "Interface documentation") | C binding, rank_0, rank_1 21 | [rocblas_ccopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ccopy.html "Interface documentation") | C binding, rank_0, rank_1 22 | [rocblas_zcopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zcopy.html "Interface documentation") | C binding, rank_0, rank_1 23 | [rocblas_scopy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scopy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 24 | [rocblas_dcopy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dcopy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 25 | [rocblas_ccopy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ccopy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 26 | [rocblas_zcopy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zcopy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 27 | [rocblas_scopy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scopy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 28 | [rocblas_dcopy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dcopy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 29 | [rocblas_ccopy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ccopy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 30 | [rocblas_zcopy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zcopy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 31 | [rocblas_sdot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sdot.html "Interface documentation") | C binding, rank_0, rank_1 32 | [rocblas_ddot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ddot.html "Interface documentation") | C binding, rank_0, rank_1 33 | [rocblas_hdot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hdot.html "Interface documentation") | C binding 34 | [rocblas_bfdot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__bfdot.html "Interface documentation") | C binding 35 | [rocblas_cdotu](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdotu.html "Interface documentation") | C binding, rank_0, rank_1 36 | [rocblas_zdotu](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdotu.html "Interface documentation") | C binding, rank_0, rank_1 37 | [rocblas_cdotc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdotc.html "Interface documentation") | C binding, rank_0, rank_1 38 | [rocblas_zdotc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdotc.html "Interface documentation") | C binding, rank_0, rank_1 39 | [rocblas_sdot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sdot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 40 | [rocblas_ddot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ddot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 41 | [rocblas_hdot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hdot__batched.html "Interface documentation") | C binding 42 | [rocblas_bfdot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__bfdot__batched.html "Interface documentation") | C binding 43 | [rocblas_cdotu_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdotu__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 44 | [rocblas_zdotu_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdotu__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 45 | [rocblas_cdotc_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdotc__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 46 | [rocblas_zdotc_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdotc__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 47 | [rocblas_sdot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sdot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 48 | [rocblas_ddot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ddot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 49 | [rocblas_hdot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hdot__strided__batched.html "Interface documentation") | C binding 50 | [rocblas_bfdot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__bfdot__strided__batched.html "Interface documentation") | C binding 51 | [rocblas_cdotu_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdotu__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 52 | [rocblas_zdotu_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdotu__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 53 | [rocblas_cdotc_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdotc__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 54 | [rocblas_zdotc_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdotc__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 55 | [rocblas_sswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sswap.html "Interface documentation") | C binding 56 | [rocblas_dswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dswap.html "Interface documentation") | C binding 57 | [rocblas_cswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cswap.html "Interface documentation") | C binding, rank_0, rank_1 58 | [rocblas_zswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zswap.html "Interface documentation") | C binding, rank_0, rank_1 59 | [rocblas_sswap_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sswap__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 60 | [rocblas_dswap_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dswap__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 61 | [rocblas_cswap_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cswap__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 62 | [rocblas_zswap_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zswap__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 63 | [rocblas_sswap_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sswap__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 64 | [rocblas_dswap_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dswap__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 65 | [rocblas_cswap_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cswap__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 66 | [rocblas_zswap_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zswap__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 67 | [rocblas_saxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__saxpy.html "Interface documentation") | C binding, rank_0, rank_1 68 | [rocblas_daxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__daxpy.html "Interface documentation") | C binding, rank_0, rank_1 69 | [rocblas_haxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__haxpy.html "Interface documentation") | C binding 70 | [rocblas_caxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__caxpy.html "Interface documentation") | C binding, rank_0, rank_1 71 | [rocblas_zaxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zaxpy.html "Interface documentation") | C binding, rank_0, rank_1 72 | [rocblas_haxpy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__haxpy__batched.html "Interface documentation") | C binding 73 | [rocblas_saxpy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__saxpy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 74 | [rocblas_daxpy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__daxpy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 75 | [rocblas_caxpy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__caxpy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 76 | [rocblas_zaxpy_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zaxpy__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 77 | [rocblas_haxpy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__haxpy__strided__batched.html "Interface documentation") | C binding 78 | [rocblas_saxpy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__saxpy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 79 | [rocblas_daxpy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__daxpy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 80 | [rocblas_caxpy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__caxpy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 81 | [rocblas_zaxpy_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zaxpy__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 82 | [rocblas_sasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sasum.html "Interface documentation") | C binding 83 | [rocblas_dasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dasum.html "Interface documentation") | C binding 84 | [rocblas_scasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scasum.html "Interface documentation") | C binding, rank_0, rank_1 85 | [rocblas_dzasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dzasum.html "Interface documentation") | C binding, rank_0, rank_1 86 | [rocblas_sasum_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sasum__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 87 | [rocblas_dasum_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dasum__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 88 | [rocblas_scasum_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scasum__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 89 | [rocblas_dzasum_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dzasum__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 90 | [rocblas_sasum_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sasum__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 91 | [rocblas_dasum_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dasum__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 92 | [rocblas_scasum_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scasum__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 93 | [rocblas_dzasum_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dzasum__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 94 | [rocblas_snrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__snrm2.html "Interface documentation") | C binding 95 | [rocblas_dnrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dnrm2.html "Interface documentation") | C binding 96 | [rocblas_scnrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scnrm2.html "Interface documentation") | C binding, rank_0, rank_1 97 | [rocblas_dznrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dznrm2.html "Interface documentation") | C binding, rank_0, rank_1 98 | [rocblas_snrm2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__snrm2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 99 | [rocblas_dnrm2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dnrm2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 100 | [rocblas_scnrm2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scnrm2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 101 | [rocblas_dznrm2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dznrm2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 102 | [rocblas_snrm2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__snrm2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 103 | [rocblas_dnrm2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dnrm2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 104 | [rocblas_scnrm2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scnrm2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 105 | [rocblas_dznrm2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dznrm2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 106 | [rocblas_isamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__isamax.html "Interface documentation") | C binding 107 | [rocblas_idamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__idamax.html "Interface documentation") | C binding 108 | [rocblas_icamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__icamax.html "Interface documentation") | C binding, rank_0, rank_1 109 | [rocblas_izamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__izamax.html "Interface documentation") | C binding, rank_0, rank_1 110 | [rocblas_isamax_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__isamax__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 111 | [rocblas_idamax_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__idamax__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 112 | [rocblas_icamax_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__icamax__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 113 | [rocblas_izamax_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__izamax__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 114 | [rocblas_isamax_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__isamax__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 115 | [rocblas_idamax_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__idamax__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 116 | [rocblas_icamax_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__icamax__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 117 | [rocblas_izamax_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__izamax__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 118 | [rocblas_isamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__isamin.html "Interface documentation") | C binding 119 | [rocblas_idamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__idamin.html "Interface documentation") | C binding 120 | [rocblas_icamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__icamin.html "Interface documentation") | C binding, rank_0, rank_1 121 | [rocblas_izamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__izamin.html "Interface documentation") | C binding, rank_0, rank_1 122 | [rocblas_isamin_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__isamin__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 123 | [rocblas_idamin_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__idamin__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 124 | [rocblas_icamin_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__icamin__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 125 | [rocblas_izamin_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__izamin__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 126 | [rocblas_isamin_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__isamin__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 127 | [rocblas_idamin_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__idamin__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 128 | [rocblas_icamin_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__icamin__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 129 | [rocblas_izamin_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__izamin__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 130 | [rocblas_srot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srot.html "Interface documentation") | C binding, rank_0, rank_1 131 | [rocblas_drot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drot.html "Interface documentation") | C binding, rank_0, rank_1 132 | [rocblas_crot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__crot.html "Interface documentation") | C binding, rank_0, rank_1 133 | [rocblas_csrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csrot.html "Interface documentation") | C binding, rank_0, rank_1 134 | [rocblas_zrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zrot.html "Interface documentation") | C binding, rank_0, rank_1 135 | [rocblas_zdrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdrot.html "Interface documentation") | C binding, rank_0, rank_1 136 | [rocblas_srot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 137 | [rocblas_drot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 138 | [rocblas_crot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__crot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 139 | [rocblas_csrot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csrot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 140 | [rocblas_zrot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zrot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 141 | [rocblas_zdrot_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdrot__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 142 | [rocblas_srot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 143 | [rocblas_drot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 144 | [rocblas_crot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__crot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 145 | [rocblas_csrot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csrot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 146 | [rocblas_zrot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zrot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 147 | [rocblas_zdrot_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdrot__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 148 | [rocblas_srotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotg.html "Interface documentation") | C binding 149 | [rocblas_drotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotg.html "Interface documentation") | C binding 150 | [rocblas_crotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__crotg.html "Interface documentation") | C binding 151 | [rocblas_zrotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zrotg.html "Interface documentation") | C binding 152 | [rocblas_srotg_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotg__batched.html "Interface documentation") | C binding 153 | [rocblas_drotg_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotg__batched.html "Interface documentation") | C binding 154 | [rocblas_crotg_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__crotg__batched.html "Interface documentation") | C binding 155 | [rocblas_zrotg_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zrotg__batched.html "Interface documentation") | C binding 156 | [rocblas_srotg_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotg__strided__batched.html "Interface documentation") | C binding 157 | [rocblas_drotg_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotg__strided__batched.html "Interface documentation") | C binding 158 | [rocblas_crotg_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__crotg__strided__batched.html "Interface documentation") | C binding 159 | [rocblas_zrotg_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zrotg__strided__batched.html "Interface documentation") | C binding 160 | [rocblas_srotm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotm.html "Interface documentation") | C binding, rank_0, rank_1 161 | [rocblas_drotm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotm.html "Interface documentation") | C binding, rank_0, rank_1 162 | [rocblas_srotm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 163 | [rocblas_drotm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 164 | [rocblas_srotm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotm__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 165 | [rocblas_drotm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotm__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 166 | [rocblas_srotmg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotmg.html "Interface documentation") | C binding 167 | [rocblas_drotmg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotmg.html "Interface documentation") | C binding 168 | [rocblas_srotmg_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotmg__batched.html "Interface documentation") | C binding 169 | [rocblas_drotmg_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotmg__batched.html "Interface documentation") | C binding 170 | [rocblas_srotmg_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__srotmg__strided__batched.html "Interface documentation") | C binding 171 | [rocblas_drotmg_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__drotmg__strided__batched.html "Interface documentation") | C binding 172 | [rocblas_sgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 173 | [rocblas_dgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 174 | [rocblas_cgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 175 | [rocblas_zgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 176 | [rocblas_sgbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 177 | [rocblas_dgbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 178 | [rocblas_cgbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 179 | [rocblas_zgbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 180 | [rocblas_sgbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 181 | [rocblas_dgbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 182 | [rocblas_cgbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 183 | [rocblas_zgbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 184 | [rocblas_sgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 185 | [rocblas_dgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 186 | [rocblas_cgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 187 | [rocblas_zgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 188 | [rocblas_sgemv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 189 | [rocblas_dgemv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 190 | [rocblas_cgemv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgemv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 191 | [rocblas_zgemv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgemv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 192 | [rocblas_sgemv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 193 | [rocblas_dgemv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 194 | [rocblas_cgemv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgemv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 195 | [rocblas_zgemv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgemv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 196 | [rocblas_chbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 197 | [rocblas_zhbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 198 | [rocblas_chbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 199 | [rocblas_zhbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 200 | [rocblas_chbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 201 | [rocblas_zhbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 202 | [rocblas_chemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 203 | [rocblas_zhemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 204 | [rocblas_chemv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chemv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 205 | [rocblas_zhemv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhemv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 206 | [rocblas_chemv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chemv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 207 | [rocblas_zhemv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhemv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 208 | [rocblas_cher](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 209 | [rocblas_zher](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 210 | [rocblas_cher_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 211 | [rocblas_zher_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 212 | [rocblas_cher_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 213 | [rocblas_zher_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 214 | [rocblas_cher2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 215 | [rocblas_zher2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 216 | [rocblas_cher2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 217 | [rocblas_zher2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 218 | [rocblas_cher2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 219 | [rocblas_zher2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 220 | [rocblas_chpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpmv.html "Interface documentation") | C binding, rank_0, rank_1 221 | [rocblas_zhpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpmv.html "Interface documentation") | C binding, rank_0, rank_1 222 | [rocblas_chpmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 223 | [rocblas_zhpmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 224 | [rocblas_chpmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpmv__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 225 | [rocblas_zhpmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpmv__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 226 | [rocblas_chpr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpr.html "Interface documentation") | C binding, rank_0, rank_1 227 | [rocblas_zhpr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpr.html "Interface documentation") | C binding, rank_0, rank_1 228 | [rocblas_chpr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 229 | [rocblas_zhpr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 230 | [rocblas_chpr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpr__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 231 | [rocblas_zhpr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpr__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 232 | [rocblas_chpr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpr2.html "Interface documentation") | C binding, rank_0, rank_1 233 | [rocblas_zhpr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpr2.html "Interface documentation") | C binding, rank_0, rank_1 234 | [rocblas_chpr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 235 | [rocblas_zhpr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 236 | [rocblas_chpr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chpr2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 237 | [rocblas_zhpr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhpr2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 238 | [rocblas_strmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 239 | [rocblas_dtrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 240 | [rocblas_ctrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 241 | [rocblas_ztrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 242 | [rocblas_strmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 243 | [rocblas_dtrmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 244 | [rocblas_ctrmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 245 | [rocblas_ztrmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 246 | [rocblas_stpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stpmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 247 | [rocblas_dtpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtpmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 248 | [rocblas_ctpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctpmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 249 | [rocblas_ztpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztpmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 250 | [rocblas_stpmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stpmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 251 | [rocblas_dtpmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtpmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 252 | [rocblas_ctpmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctpmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 253 | [rocblas_ztpmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztpmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 254 | [rocblas_stbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 255 | [rocblas_dtbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 256 | [rocblas_ctbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 257 | [rocblas_ztbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 258 | [rocblas_stbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 259 | [rocblas_dtbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 260 | [rocblas_ctbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 261 | [rocblas_ztbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 262 | [rocblas_stbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 263 | [rocblas_dtbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 264 | [rocblas_ctbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 265 | [rocblas_ztbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 266 | [rocblas_stbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 267 | [rocblas_dtbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 268 | [rocblas_ctbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 269 | [rocblas_ztbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 270 | [rocblas_stbsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stbsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 271 | [rocblas_dtbsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtbsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 272 | [rocblas_ctbsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctbsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 273 | [rocblas_ztbsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztbsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 274 | [rocblas_stbsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stbsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 275 | [rocblas_dtbsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtbsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 276 | [rocblas_ctbsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctbsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 277 | [rocblas_ztbsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztbsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 278 | [rocblas_strsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 279 | [rocblas_dtrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 280 | [rocblas_ctrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 281 | [rocblas_ztrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 282 | [rocblas_strsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 283 | [rocblas_dtrsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 284 | [rocblas_ctrsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 285 | [rocblas_ztrsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 286 | [rocblas_strsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 287 | [rocblas_dtrsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 288 | [rocblas_ctrsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 289 | [rocblas_ztrsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrsv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 290 | [rocblas_stpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stpsv.html "Interface documentation") | C binding, rank_0, rank_1 291 | [rocblas_dtpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtpsv.html "Interface documentation") | C binding, rank_0, rank_1 292 | [rocblas_ctpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctpsv.html "Interface documentation") | C binding, rank_0, rank_1 293 | [rocblas_ztpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztpsv.html "Interface documentation") | C binding, rank_0, rank_1 294 | [rocblas_stpsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stpsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 295 | [rocblas_dtpsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtpsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 296 | [rocblas_ctpsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctpsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 297 | [rocblas_ztpsv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztpsv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 298 | [rocblas_stpsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stpsv__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 299 | [rocblas_dtpsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtpsv__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 300 | [rocblas_ctpsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctpsv__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 301 | [rocblas_ztpsv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztpsv__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 302 | [rocblas_ssymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 303 | [rocblas_dsymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 304 | [rocblas_csymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 305 | [rocblas_zsymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 306 | [rocblas_ssymv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssymv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 307 | [rocblas_dsymv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsymv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 308 | [rocblas_csymv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csymv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 309 | [rocblas_zsymv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsymv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 310 | [rocblas_ssymv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssymv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 311 | [rocblas_dsymv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsymv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 312 | [rocblas_csymv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csymv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 313 | [rocblas_zsymv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsymv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 314 | [rocblas_sspmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 315 | [rocblas_dspmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 316 | [rocblas_sspmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 317 | [rocblas_dspmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 318 | [rocblas_sspmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 319 | [rocblas_dspmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 320 | [rocblas_ssbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 321 | [rocblas_dsbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 322 | [rocblas_dsbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 323 | [rocblas_ssbmv_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssbmv__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 324 | [rocblas_ssbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 325 | [rocblas_dsbmv_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsbmv__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 326 | [rocblas_sger](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sger.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 327 | [rocblas_dger](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dger.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 328 | [rocblas_cgeru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgeru.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 329 | [rocblas_zgeru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgeru.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 330 | [rocblas_cgerc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgerc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 331 | [rocblas_zgerc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgerc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 332 | [rocblas_sger_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sger__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 333 | [rocblas_dger_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dger__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 334 | [rocblas_cgeru_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgeru__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 335 | [rocblas_zgeru_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgeru__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 336 | [rocblas_cgerc_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgerc__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 337 | [rocblas_zgerc_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgerc__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 338 | [rocblas_sger_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sger__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 339 | [rocblas_dger_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dger__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 340 | [rocblas_cgeru_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgeru__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 341 | [rocblas_zgeru_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgeru__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 342 | [rocblas_cgerc_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgerc__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 343 | [rocblas_zgerc_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgerc__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 344 | [rocblas_sspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspr.html "Interface documentation") | C binding, rank_0, rank_1 345 | [rocblas_dspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspr.html "Interface documentation") | C binding, rank_0, rank_1 346 | [rocblas_cspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cspr.html "Interface documentation") | C binding, rank_0, rank_1 347 | [rocblas_zspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zspr.html "Interface documentation") | C binding, rank_0, rank_1 348 | [rocblas_sspr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 349 | [rocblas_dspr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 350 | [rocblas_cspr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cspr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 351 | [rocblas_zspr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zspr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 352 | [rocblas_sspr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspr__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 353 | [rocblas_dspr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspr__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 354 | [rocblas_cspr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cspr__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 355 | [rocblas_zspr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zspr__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 356 | [rocblas_sspr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspr2.html "Interface documentation") | C binding, rank_0, rank_1 357 | [rocblas_dspr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspr2.html "Interface documentation") | C binding, rank_0, rank_1 358 | [rocblas_sspr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 359 | [rocblas_dspr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 360 | [rocblas_sspr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sspr2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 361 | [rocblas_dspr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dspr2__strided__batched.html "Interface documentation") | C binding, rank_0, rank_1 362 | [rocblas_ssyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 363 | [rocblas_dsyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 364 | [rocblas_csyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 365 | [rocblas_zsyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 366 | [rocblas_ssyr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 367 | [rocblas_dsyr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 368 | [rocblas_csyr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 369 | [rocblas_zsyr_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 370 | [rocblas_ssyr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 371 | [rocblas_dsyr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 372 | [rocblas_csyr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 373 | [rocblas_zsyr_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 374 | [rocblas_ssyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 375 | [rocblas_dsyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 376 | [rocblas_csyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 377 | [rocblas_zsyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 378 | [rocblas_ssyr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 379 | [rocblas_dsyr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 380 | [rocblas_csyr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 381 | [rocblas_zsyr2_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr2__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 382 | [rocblas_ssyr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 383 | [rocblas_dsyr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 384 | [rocblas_csyr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 385 | [rocblas_zsyr2_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr2__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 386 | [rocblas_chemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 387 | [rocblas_zhemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 388 | [rocblas_chemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chemm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 389 | [rocblas_zhemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhemm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 390 | [rocblas_chemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__chemm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 391 | [rocblas_zhemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zhemm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 392 | [rocblas_cherk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cherk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 393 | [rocblas_zherk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zherk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 394 | [rocblas_cherk_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cherk__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 395 | [rocblas_zherk_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zherk__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 396 | [rocblas_cherk_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cherk__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 397 | [rocblas_zherk_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zherk__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 398 | [rocblas_cher2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 399 | [rocblas_zher2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 400 | [rocblas_cher2k_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher2k__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 401 | [rocblas_zher2k_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher2k__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 402 | [rocblas_cher2k_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cher2k__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 403 | [rocblas_zher2k_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zher2k__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 404 | [rocblas_cherkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cherkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 405 | [rocblas_zherkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zherkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 406 | [rocblas_cherkx_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cherkx__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 407 | [rocblas_zherkx_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zherkx__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 408 | [rocblas_cherkx_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cherkx__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 409 | [rocblas_zherkx_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zherkx__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 410 | [rocblas_ssymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 411 | [rocblas_dsymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 412 | [rocblas_csymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 413 | [rocblas_zsymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 414 | [rocblas_ssymm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssymm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 415 | [rocblas_dsymm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsymm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 416 | [rocblas_csymm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csymm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 417 | [rocblas_zsymm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsymm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 418 | [rocblas_ssymm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssymm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 419 | [rocblas_dsymm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsymm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 420 | [rocblas_csymm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csymm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 421 | [rocblas_zsymm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsymm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 422 | [rocblas_ssyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 423 | [rocblas_dsyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 424 | [rocblas_csyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 425 | [rocblas_zsyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 426 | [rocblas_ssyrk_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyrk__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 427 | [rocblas_dsyrk_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyrk__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 428 | [rocblas_csyrk_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyrk__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 429 | [rocblas_zsyrk_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyrk__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 430 | [rocblas_ssyrk_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyrk__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 431 | [rocblas_dsyrk_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyrk__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 432 | [rocblas_csyrk_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyrk__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 433 | [rocblas_zsyrk_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyrk__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 434 | [rocblas_ssyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 435 | [rocblas_dsyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 436 | [rocblas_csyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 437 | [rocblas_zsyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 438 | [rocblas_ssyr2k_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr2k__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 439 | [rocblas_dsyr2k_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr2k__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 440 | [rocblas_csyr2k_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr2k__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 441 | [rocblas_zsyr2k_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr2k__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 442 | [rocblas_ssyr2k_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyr2k__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 443 | [rocblas_dsyr2k_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyr2k__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 444 | [rocblas_csyr2k_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyr2k__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 445 | [rocblas_zsyr2k_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyr2k__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 446 | [rocblas_ssyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 447 | [rocblas_dsyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 448 | [rocblas_csyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 449 | [rocblas_zsyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 450 | [rocblas_ssyrkx_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyrkx__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 451 | [rocblas_dsyrkx_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyrkx__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 452 | [rocblas_csyrkx_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyrkx__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 453 | [rocblas_zsyrkx_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyrkx__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 454 | [rocblas_ssyrkx_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ssyrkx__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 455 | [rocblas_dsyrkx_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dsyrkx__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 456 | [rocblas_csyrkx_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__csyrkx__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 457 | [rocblas_zsyrkx_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zsyrkx__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 458 | [rocblas_strmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 459 | [rocblas_dtrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 460 | [rocblas_ctrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 461 | [rocblas_ztrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 462 | [rocblas_strmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strmm__batched.html "Interface documentation") | C binding 463 | [rocblas_dtrmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrmm__batched.html "Interface documentation") | C binding 464 | [rocblas_ctrmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrmm__batched.html "Interface documentation") | C binding 465 | [rocblas_ztrmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrmm__batched.html "Interface documentation") | C binding 466 | [rocblas_strmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strmm__strided__batched.html "Interface documentation") | C binding 467 | [rocblas_dtrmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrmm__strided__batched.html "Interface documentation") | C binding 468 | [rocblas_ctrmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrmm__strided__batched.html "Interface documentation") | C binding 469 | [rocblas_ztrmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrmm__strided__batched.html "Interface documentation") | C binding 482 | [rocblas_strtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 483 | [rocblas_dtrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 484 | [rocblas_ctrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 485 | [rocblas_ztrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 486 | [rocblas_strtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 487 | [rocblas_dtrtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 488 | [rocblas_ctrtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 489 | [rocblas_ztrtri_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrtri__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 490 | [rocblas_strtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 491 | [rocblas_dtrtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 492 | [rocblas_ctrtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 493 | [rocblas_ztrtri_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrtri__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 494 | [rocblas_strsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 495 | [rocblas_dtrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 496 | [rocblas_ctrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 497 | [rocblas_ztrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 498 | [rocblas_strsm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strsm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 499 | [rocblas_dtrsm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrsm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 500 | [rocblas_ctrsm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrsm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 501 | [rocblas_ztrsm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrsm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 502 | [rocblas_strsm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__strsm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 503 | [rocblas_dtrsm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dtrsm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 504 | [rocblas_ctrsm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ctrsm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 505 | [rocblas_ztrsm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ztrsm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 506 | [rocblas_sgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 507 | [rocblas_dgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 508 | [rocblas_hgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hgemm.html "Interface documentation") | C binding 509 | [rocblas_cgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 510 | [rocblas_zgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 511 | [rocblas_sgemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 512 | [rocblas_dgemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 513 | [rocblas_hgemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hgemm__batched.html "Interface documentation") | C binding 514 | [rocblas_cgemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgemm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 515 | [rocblas_zgemm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgemm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 516 | [rocblas_sgemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 517 | [rocblas_dgemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 518 | [rocblas_hgemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hgemm__strided__batched.html "Interface documentation") | C binding 519 | [rocblas_hgemm_kernel_name](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__hgemm__kernel__name.html "Interface documentation") | C binding 520 | [rocblas_sgemm_kernel_name](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgemm__kernel__name.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 521 | [rocblas_dgemm_kernel_name](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgemm__kernel__name.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 522 | [rocblas_cgemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgemm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 523 | [rocblas_zgemm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgemm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 524 | [rocblas_sdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sdgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 525 | [rocblas_ddgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ddgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 526 | [rocblas_cdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 527 | [rocblas_zdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 528 | [rocblas_sdgmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sdgmm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 529 | [rocblas_ddgmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ddgmm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 530 | [rocblas_cdgmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdgmm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 531 | [rocblas_zdgmm_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdgmm__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 532 | [rocblas_sdgmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sdgmm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 533 | [rocblas_ddgmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__ddgmm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 534 | [rocblas_cdgmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cdgmm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 535 | [rocblas_zdgmm_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zdgmm__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 536 | [rocblas_sgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 537 | [rocblas_dgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 538 | [rocblas_cgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 539 | [rocblas_zgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 540 | [rocblas_sgeam_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgeam__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 541 | [rocblas_dgeam_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgeam__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 542 | [rocblas_cgeam_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgeam__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 543 | [rocblas_zgeam_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgeam__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 544 | [rocblas_sgeam_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__sgeam__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 545 | [rocblas_dgeam_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dgeam__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 546 | [rocblas_cgeam_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__cgeam__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 547 | [rocblas_zgeam_strided_batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__zgeam__strided__batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 548 | [rocblas_gemm_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__gemm__ex.html "Interface documentation") | C binding 549 | [rocblas_gemm_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__gemm__batched__ex.html "Interface documentation") | C binding 550 | [rocblas_gemm_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__gemm__strided__batched__ex.html "Interface documentation") | C binding 551 | [rocblas_gemm_ext2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__gemm__ext2.html "Interface documentation") | C binding 552 | [rocblas_trsm_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__trsm__ex.html "Interface documentation") | C binding 553 | [rocblas_trsm_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__trsm__batched__ex.html "Interface documentation") | C binding 554 | [rocblas_trsm_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__trsm__strided__batched__ex.html "Interface documentation") | C binding 555 | [rocblas_axpy_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__axpy__ex.html "Interface documentation") | C binding 556 | [rocblas_axpy_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__axpy__batched__ex.html "Interface documentation") | C binding 557 | [rocblas_axpy_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__axpy__strided__batched__ex.html "Interface documentation") | C binding 558 | [rocblas_dot_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dot__ex.html "Interface documentation") | C binding 559 | [rocblas_dotc_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dotc__ex.html "Interface documentation") | C binding 560 | [rocblas_dot_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dot__batched__ex.html "Interface documentation") | C binding 561 | [rocblas_dotc_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dotc__batched__ex.html "Interface documentation") | C binding 562 | [rocblas_dot_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dot__strided__batched__ex.html "Interface documentation") | C binding 563 | [rocblas_dotc_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__dotc__strided__batched__ex.html "Interface documentation") | C binding 564 | [rocblas_nrm2_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__nrm2__ex.html "Interface documentation") | C binding 565 | [rocblas_nrm2_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__nrm2__batched__ex.html "Interface documentation") | C binding 566 | [rocblas_nrm2_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__nrm2__strided__batched__ex.html "Interface documentation") | C binding 567 | [rocblas_rot_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__rot__ex.html "Interface documentation") | C binding 568 | [rocblas_rot_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__rot__batched__ex.html "Interface documentation") | C binding 569 | [rocblas_rot_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__rot__strided__batched__ex.html "Interface documentation") | C binding 570 | [rocblas_scal_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scal__ex.html "Interface documentation") | C binding 571 | [rocblas_scal_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scal__batched__ex.html "Interface documentation") | C binding 572 | [rocblas_scal_strided_batched_ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__scal__strided__batched__ex.html "Interface documentation") | C binding 573 | [rocblas_get_version_string](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__version__string.html "Interface documentation") | C binding 574 | [rocblas_get_version_string_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__version__string__size.html "Interface documentation") | C binding 575 | [rocblas_start_device_memory_size_query](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__start__device__memory__size__query.html "Interface documentation") | C binding 576 | [rocblas_stop_device_memory_size_query](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__stop__device__memory__size__query.html "Interface documentation") | C binding 577 | [rocblas_device_malloc_ptr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__device__malloc__ptr.html "Interface documentation") | C binding 578 | [rocblas_device_malloc_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__device__malloc__get.html "Interface documentation") | C binding 579 | [rocblas_device_malloc_free](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__device__malloc__free.html "Interface documentation") | C binding 580 | [rocblas_get_device_memory_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__device__memory__size.html "Interface documentation") | C binding 581 | [rocblas_set_device_memory_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__device__memory__size.html "Interface documentation") | C binding 582 | [rocblas_set_workspace](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__workspace.html "Interface documentation") | C binding 583 | [rocblas_create_handle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__create__handle.html "Interface documentation") | C binding 584 | [rocblas_destroy_handle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__destroy__handle.html "Interface documentation") | C binding 585 | [rocblas_set_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__stream.html "Interface documentation") | C binding 586 | [rocblas_get_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__stream.html "Interface documentation") | C binding 587 | [rocblas_set_pointer_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__pointer__mode.html "Interface documentation") | C binding 588 | [rocblas_get_pointer_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__pointer__mode.html "Interface documentation") | C binding 589 | [rocblas_set_atomics_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__atomics__mode.html "Interface documentation") | C binding 590 | [rocblas_get_atomics_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__atomics__mode.html "Interface documentation") | C binding 591 | [rocblas_query_int8_layout_flag](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__query__int8__layout__flag.html "Interface documentation") | C binding 592 | [rocblas_set_start_stop_events](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__start__stop__events.html "Interface documentation") | C binding 593 | [rocblas_set_solution_fitness_query](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__solution__fitness__query.html "Interface documentation") | C binding 594 | [rocblas_set_performance_metric](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__set__performance__metric.html "Interface documentation") | C binding 595 | [rocblas_get_performance_metric](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocblas_1_1rocblas__get__performance__metric.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/mainpage.md0000664000175000017500000000023415207260635021237 0ustar alastairalastair# HIPFORT API Reference {#mainpage} This is the full HIPFORT API Reference. The API is organized into [modules](namespaces.html) based on the wrapped API. hipfort-7.2.4/docs/doxygen/input/supported_api_rocsparse.md0000664000175000017500000027723515207260635024436 0ustar alastairalastair# rocSPARSE API Support \# | API Name | Variants ----|---------------|--------- 1 | [rocsparse_create_handle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__handle.html "Interface documentation") | C binding 2 | [rocsparse_destroy_handle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__handle.html "Interface documentation") | C binding 3 | [rocsparse_set_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__set__stream.html "Interface documentation") | C binding 4 | [rocsparse_get_stream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__get__stream.html "Interface documentation") | C binding 5 | [rocsparse_set_pointer_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__set__pointer__mode.html "Interface documentation") | C binding 6 | [rocsparse_get_pointer_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__get__pointer__mode.html "Interface documentation") | C binding 7 | [rocsparse_get_version](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__get__version.html "Interface documentation") | C binding 8 | [rocsparse_get_git_rev](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__get__git__rev.html "Interface documentation") | C binding 9 | [rocsparse_create_mat_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__mat__descr.html "Interface documentation") | C binding 10 | [rocsparse_copy_mat_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__copy__mat__descr.html "Interface documentation") | C binding 11 | [rocsparse_destroy_mat_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__mat__descr.html "Interface documentation") | C binding 12 | [rocsparse_set_mat_index_base](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__set__mat__index__base.html "Interface documentation") | C binding 13 | [rocsparse_set_mat_type](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__set__mat__type.html "Interface documentation") | C binding 14 | [rocsparse_set_mat_fill_mode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__set__mat__fill__mode.html "Interface documentation") | C binding 15 | [rocsparse_set_mat_diag_type](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__set__mat__diag__type.html "Interface documentation") | C binding 16 | [rocsparse_create_hyb_mat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__hyb__mat.html "Interface documentation") | C binding 17 | [rocsparse_destroy_hyb_mat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__hyb__mat.html "Interface documentation") | C binding 18 | [rocsparse_create_mat_info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__mat__info.html "Interface documentation") | C binding 19 | [rocsparse_destroy_mat_info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__mat__info.html "Interface documentation") | C binding 20 | [rocsparse_create_color_info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__color__info.html "Interface documentation") | C binding 21 | [rocsparse_destroy_color_info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__color__info.html "Interface documentation") | C binding 22 | [rocsparse_create_spvec_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__spvec__descr.html "Interface documentation") | C binding 23 | [rocsparse_destroy_spvec_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__spvec__descr.html "Interface documentation") | C binding 24 | [rocsparse_spvec_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spvec__get.html "Interface documentation") | C binding 25 | [rocsparse_spvec_get_index_base](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spvec__get__index__base.html "Interface documentation") | C binding 26 | [rocsparse_spvec_get_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spvec__get__values.html "Interface documentation") | C binding 27 | [rocsparse_spvec_set_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spvec__set__values.html "Interface documentation") | C binding 28 | [rocsparse_create_coo_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__coo__descr.html "Interface documentation") | C binding 29 | [rocsparse_create_coo_aos_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__coo__aos__descr.html "Interface documentation") | C binding 30 | [rocsparse_create_csr_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__csr__descr.html "Interface documentation") | C binding 31 | [rocsparse_create_csc_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__csc__descr.html "Interface documentation") | C binding 32 | [rocsparse_create_ell_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__ell__descr.html "Interface documentation") | C binding 33 | [rocsparse_create_bell_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__bell__descr.html "Interface documentation") | C binding 34 | [rocsparse_destroy_spmat_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__spmat__descr.html "Interface documentation") | C binding 35 | [rocsparse_coo_aos_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coo__aos__get.html "Interface documentation") | C binding 36 | [rocsparse_coo_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coo__get.html "Interface documentation") | C binding 37 | [rocsparse_csr_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr__get.html "Interface documentation") | C binding 38 | [rocsparse_ell_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ell__get.html "Interface documentation") | C binding 39 | [rocsparse_bell_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bell__get.html "Interface documentation") | C binding 40 | [rocsparse_coo_set_pointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coo__set__pointers.html "Interface documentation") | C binding 41 | [rocsparse_coo_aos_set_pointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coo__aos__set__pointers.html "Interface documentation") | C binding 42 | [rocsparse_csr_set_pointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr__set__pointers.html "Interface documentation") | C binding 43 | [rocsparse_csc_set_pointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csc__set__pointers.html "Interface documentation") | C binding 44 | [rocsparse_ell_set_pointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ell__set__pointers.html "Interface documentation") | C binding 45 | [rocsparse_spmat_get_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__get__size.html "Interface documentation") | C binding 46 | [rocsparse_spmat_get_format](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__get__format.html "Interface documentation") | C binding 47 | [rocsparse_spmat_get_index_base](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__get__index__base.html "Interface documentation") | C binding 48 | [rocsparse_spmat_get_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__get__values.html "Interface documentation") | C binding 49 | [rocsparse_spmat_set_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__set__values.html "Interface documentation") | C binding 50 | [rocsparse_spmat_get_attribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__get__attribute.html "Interface documentation") | C binding 51 | [rocsparse_spmat_set_attribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmat__set__attribute.html "Interface documentation") | C binding 52 | [rocsparse_create_dnvec_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__dnvec__descr.html "Interface documentation") | C binding 53 | [rocsparse_destroy_dnvec_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__dnvec__descr.html "Interface documentation") | C binding 54 | [rocsparse_dnvec_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnvec__get.html "Interface documentation") | C binding 55 | [rocsparse_dnvec_get_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnvec__get__values.html "Interface documentation") | C binding 56 | [rocsparse_dnvec_set_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnvec__set__values.html "Interface documentation") | C binding 57 | [rocsparse_create_dnmat_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__dnmat__descr.html "Interface documentation") | C binding 58 | [rocsparse_destroy_dnmat_descr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__destroy__dnmat__descr.html "Interface documentation") | C binding 59 | [rocsparse_dnmat_get](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnmat__get.html "Interface documentation") | C binding 60 | [rocsparse_dnmat_get_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnmat__get__values.html "Interface documentation") | C binding 61 | [rocsparse_dnmat_set_values](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnmat__set__values.html "Interface documentation") | C binding 62 | [rocsparse_saxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__saxpyi.html "Interface documentation") | C binding, rank_0, rank_1 63 | [rocsparse_daxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__daxpyi.html "Interface documentation") | C binding, rank_0, rank_1 64 | [rocsparse_caxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__caxpyi.html "Interface documentation") | C binding, rank_0, rank_1 65 | [rocsparse_zaxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zaxpyi.html "Interface documentation") | C binding, rank_0, rank_1 66 | [rocsparse_sdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sdoti.html "Interface documentation") | C binding, rank_0, rank_1 67 | [rocsparse_ddoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ddoti.html "Interface documentation") | C binding, rank_0, rank_1 68 | [rocsparse_cdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cdoti.html "Interface documentation") | C binding, rank_0, rank_1 69 | [rocsparse_zdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zdoti.html "Interface documentation") | C binding, rank_0, rank_1 70 | [rocsparse_cdotci](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cdotci.html "Interface documentation") | C binding, rank_0, rank_1 71 | [rocsparse_zdotci](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zdotci.html "Interface documentation") | C binding, rank_0, rank_1 72 | [rocsparse_sgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgthr.html "Interface documentation") | C binding, rank_0, rank_1 73 | [rocsparse_dgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgthr.html "Interface documentation") | C binding, rank_0, rank_1 74 | [rocsparse_cgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgthr.html "Interface documentation") | C binding, rank_0, rank_1 75 | [rocsparse_zgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgthr.html "Interface documentation") | C binding, rank_0, rank_1 76 | [rocsparse_sgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgthrz.html "Interface documentation") | C binding, rank_0, rank_1 77 | [rocsparse_dgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgthrz.html "Interface documentation") | C binding, rank_0, rank_1 78 | [rocsparse_cgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgthrz.html "Interface documentation") | C binding, rank_0, rank_1 79 | [rocsparse_zgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgthrz.html "Interface documentation") | C binding, rank_0, rank_1 80 | [rocsparse_sroti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sroti.html "Interface documentation") | C binding, rank_0, rank_1 81 | [rocsparse_droti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__droti.html "Interface documentation") | C binding, rank_0, rank_1 82 | [rocsparse_ssctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ssctr.html "Interface documentation") | C binding, rank_0, rank_1 83 | [rocsparse_dsctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dsctr.html "Interface documentation") | C binding, rank_0, rank_1 84 | [rocsparse_csctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csctr.html "Interface documentation") | C binding, rank_0, rank_1 85 | [rocsparse_zsctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zsctr.html "Interface documentation") | C binding, rank_0, rank_1 86 | [rocsparse_isctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__isctr.html "Interface documentation") | C binding, rank_0, rank_1 87 | [rocsparse_sbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 88 | [rocsparse_dbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 89 | [rocsparse_cbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 90 | [rocsparse_zbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 91 | [rocsparse_sbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 92 | [rocsparse_dbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 93 | [rocsparse_cbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 94 | [rocsparse_zbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 95 | [rocsparse_bsrsv_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsrsv__zero__pivot.html "Interface documentation") | C binding 96 | [rocsparse_sbsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 97 | [rocsparse_dbsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 98 | [rocsparse_cbsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 99 | [rocsparse_zbsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 100 | [rocsparse_sbsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 101 | [rocsparse_dbsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 102 | [rocsparse_cbsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 103 | [rocsparse_zbsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 104 | [rocsparse_bsrsv_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsrsv__clear.html "Interface documentation") | C binding 105 | [rocsparse_sbsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 106 | [rocsparse_dbsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 107 | [rocsparse_cbsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 108 | [rocsparse_zbsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 109 | [rocsparse_scoomv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scoomv.html "Interface documentation") | C binding, rank_0, rank_1 110 | [rocsparse_dcoomv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcoomv.html "Interface documentation") | C binding, rank_0, rank_1 111 | [rocsparse_ccoomv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccoomv.html "Interface documentation") | C binding, rank_0, rank_1 112 | [rocsparse_zcoomv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcoomv.html "Interface documentation") | C binding, rank_0, rank_1 113 | [rocsparse_scsrmv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrmv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 114 | [rocsparse_dcsrmv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrmv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 115 | [rocsparse_ccsrmv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrmv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 116 | [rocsparse_zcsrmv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrmv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 117 | [rocsparse_csrmv_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrmv__clear.html "Interface documentation") | C binding 118 | [rocsparse_scsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrmv.html "Interface documentation") | C binding, rank_0, rank_1 119 | [rocsparse_dcsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrmv.html "Interface documentation") | C binding, rank_0, rank_1 120 | [rocsparse_ccsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrmv.html "Interface documentation") | C binding, rank_0, rank_1 121 | [rocsparse_zcsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrmv.html "Interface documentation") | C binding, rank_0, rank_1 122 | [rocsparse_csrsv_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrsv__zero__pivot.html "Interface documentation") | C binding 123 | [rocsparse_scsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 124 | [rocsparse_dcsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 125 | [rocsparse_ccsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 126 | [rocsparse_zcsrsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrsv__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 127 | [rocsparse_scsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 128 | [rocsparse_dcsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 129 | [rocsparse_ccsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 130 | [rocsparse_zcsrsv_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrsv__analysis.html "Interface documentation") | C binding, rank_0, rank_1 131 | [rocsparse_csrsv_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrsv__clear.html "Interface documentation") | C binding 132 | [rocsparse_scsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 133 | [rocsparse_dcsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 134 | [rocsparse_ccsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 135 | [rocsparse_zcsrsv_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrsv__solve.html "Interface documentation") | C binding, rank_0, rank_1 136 | [rocsparse_sellmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sellmv.html "Interface documentation") | C binding, rank_0, rank_1 137 | [rocsparse_dellmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dellmv.html "Interface documentation") | C binding, rank_0, rank_1 138 | [rocsparse_cellmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cellmv.html "Interface documentation") | C binding, rank_0, rank_1 139 | [rocsparse_zellmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zellmv.html "Interface documentation") | C binding, rank_0, rank_1 140 | [rocsparse_shybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__shybmv.html "Interface documentation") | C binding, rank_0, rank_1 141 | [rocsparse_dhybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dhybmv.html "Interface documentation") | C binding, rank_0, rank_1 142 | [rocsparse_chybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__chybmv.html "Interface documentation") | C binding, rank_0, rank_1 143 | [rocsparse_zhybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zhybmv.html "Interface documentation") | C binding, rank_0, rank_1 144 | [rocsparse_sgebsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsrmv.html "Interface documentation") | C binding, rank_0, rank_1 145 | [rocsparse_dgebsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsrmv.html "Interface documentation") | C binding, rank_0, rank_1 146 | [rocsparse_cgebsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsrmv.html "Interface documentation") | C binding, rank_0, rank_1 147 | [rocsparse_zgebsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsrmv.html "Interface documentation") | C binding, rank_0, rank_1 148 | [rocsparse_sgemvi_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgemvi__buffer__size.html "Interface documentation") | C binding 149 | [rocsparse_dgemvi_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgemvi__buffer__size.html "Interface documentation") | C binding 150 | [rocsparse_cgemvi_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgemvi__buffer__size.html "Interface documentation") | C binding 151 | [rocsparse_zgemvi_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgemvi__buffer__size.html "Interface documentation") | C binding 152 | [rocsparse_sgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 153 | [rocsparse_dgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 154 | [rocsparse_cgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 155 | [rocsparse_zgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 156 | [rocsparse_sbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 157 | [rocsparse_dbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 158 | [rocsparse_cbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 159 | [rocsparse_zbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 160 | [rocsparse_sgebsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 161 | [rocsparse_dgebsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 162 | [rocsparse_cgebsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 163 | [rocsparse_zgebsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 164 | [rocsparse_scsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 165 | [rocsparse_dcsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 166 | [rocsparse_ccsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 167 | [rocsparse_zcsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 168 | [rocsparse_csrsm_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrsm__zero__pivot.html "Interface documentation") | C binding 169 | [rocsparse_scsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrsm__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 170 | [rocsparse_dcsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrsm__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 171 | [rocsparse_ccsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrsm__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 172 | [rocsparse_zcsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrsm__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 173 | [rocsparse_scsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrsm__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 174 | [rocsparse_dcsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrsm__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 175 | [rocsparse_ccsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrsm__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 176 | [rocsparse_zcsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrsm__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 177 | [rocsparse_csrsm_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrsm__clear.html "Interface documentation") | C binding 178 | [rocsparse_scsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 179 | [rocsparse_dcsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 180 | [rocsparse_ccsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 181 | [rocsparse_zcsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 182 | [rocsparse_bsrsm_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsrsm__zero__pivot.html "Interface documentation") | C binding 183 | [rocsparse_sbsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrsm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 184 | [rocsparse_dbsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrsm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 185 | [rocsparse_cbsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrsm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 186 | [rocsparse_zbsrsm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrsm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 187 | [rocsparse_sbsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrsm__analysis.html "Interface documentation") | C binding, rank_0, rank_1 188 | [rocsparse_dbsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrsm__analysis.html "Interface documentation") | C binding, rank_0, rank_1 189 | [rocsparse_cbsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrsm__analysis.html "Interface documentation") | C binding, rank_0, rank_1 190 | [rocsparse_zbsrsm_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrsm__analysis.html "Interface documentation") | C binding, rank_0, rank_1 191 | [rocsparse_bsrsm_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsrsm__clear.html "Interface documentation") | C binding 192 | [rocsparse_sbsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 193 | [rocsparse_dbsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 194 | [rocsparse_cbsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 195 | [rocsparse_zbsrsm_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrsm__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 196 | [rocsparse_sgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 197 | [rocsparse_dgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 198 | [rocsparse_cgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 199 | [rocsparse_zgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 200 | [rocsparse_csrgeam_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrgeam__nnz.html "Interface documentation") | C binding, rank_0, rank_1 201 | [rocsparse_scsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 202 | [rocsparse_dcsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 203 | [rocsparse_ccsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 204 | [rocsparse_zcsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 205 | [rocsparse_scsrgemm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrgemm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 206 | [rocsparse_dcsrgemm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrgemm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 207 | [rocsparse_ccsrgemm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrgemm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 208 | [rocsparse_zcsrgemm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrgemm__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 209 | [rocsparse_csrgemm_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrgemm__nnz.html "Interface documentation") | C binding, rank_0, rank_1 210 | [rocsparse_scsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 211 | [rocsparse_dcsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 212 | [rocsparse_ccsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 213 | [rocsparse_zcsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 214 | [rocsparse_bsric0_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsric0__zero__pivot.html "Interface documentation") | C binding 215 | [rocsparse_sbsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 216 | [rocsparse_dbsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 217 | [rocsparse_cbsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 218 | [rocsparse_zbsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 219 | [rocsparse_sbsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 220 | [rocsparse_dbsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 221 | [rocsparse_cbsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 222 | [rocsparse_zbsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 223 | [rocsparse_bsric0_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsric0__clear.html "Interface documentation") | C binding 224 | [rocsparse_sbsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsric0.html "Interface documentation") | C binding, rank_0, rank_1 225 | [rocsparse_dbsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsric0.html "Interface documentation") | C binding, rank_0, rank_1 226 | [rocsparse_cbsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsric0.html "Interface documentation") | C binding, rank_0, rank_1 227 | [rocsparse_zbsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsric0.html "Interface documentation") | C binding, rank_0, rank_1 228 | [rocsparse_bsrilu0_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsrilu0__zero__pivot.html "Interface documentation") | C binding 229 | [rocsparse_sbsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrilu0__numeric__boost.html "Interface documentation") | C binding 230 | [rocsparse_dbsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrilu0__numeric__boost.html "Interface documentation") | C binding 231 | [rocsparse_cbsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrilu0__numeric__boost.html "Interface documentation") | C binding 232 | [rocsparse_zbsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrilu0__numeric__boost.html "Interface documentation") | C binding 233 | [rocsparse_dsbsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dsbsrilu0__numeric__boost.html "Interface documentation") | C binding 234 | [rocsparse_dcbsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcbsrilu0__numeric__boost.html "Interface documentation") | C binding 235 | [rocsparse_sbsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 236 | [rocsparse_dbsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 237 | [rocsparse_cbsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 238 | [rocsparse_zbsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 239 | [rocsparse_sbsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 240 | [rocsparse_dbsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 241 | [rocsparse_cbsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 242 | [rocsparse_zbsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 243 | [rocsparse_bsrilu0_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__bsrilu0__clear.html "Interface documentation") | C binding 244 | [rocsparse_sbsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 245 | [rocsparse_dbsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 246 | [rocsparse_cbsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 247 | [rocsparse_zbsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 248 | [rocsparse_csric0_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csric0__zero__pivot.html "Interface documentation") | C binding 249 | [rocsparse_scsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 250 | [rocsparse_dcsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 251 | [rocsparse_ccsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 252 | [rocsparse_zcsric0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsric0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 253 | [rocsparse_scsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 254 | [rocsparse_dcsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 255 | [rocsparse_ccsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 256 | [rocsparse_zcsric0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsric0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 257 | [rocsparse_csric0_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csric0__clear.html "Interface documentation") | C binding 258 | [rocsparse_scsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsric0.html "Interface documentation") | C binding, rank_0, rank_1 259 | [rocsparse_dcsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsric0.html "Interface documentation") | C binding, rank_0, rank_1 260 | [rocsparse_ccsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsric0.html "Interface documentation") | C binding, rank_0, rank_1 261 | [rocsparse_zcsric0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsric0.html "Interface documentation") | C binding, rank_0, rank_1 262 | [rocsparse_csrilu0_zero_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrilu0__zero__pivot.html "Interface documentation") | C binding 263 | [rocsparse_scsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrilu0__numeric__boost.html "Interface documentation") | C binding 264 | [rocsparse_dcsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrilu0__numeric__boost.html "Interface documentation") | C binding 265 | [rocsparse_ccsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrilu0__numeric__boost.html "Interface documentation") | C binding 266 | [rocsparse_zcsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrilu0__numeric__boost.html "Interface documentation") | C binding 267 | [rocsparse_dscsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dscsrilu0__numeric__boost.html "Interface documentation") | C binding 268 | [rocsparse_dccsrilu0_numeric_boost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dccsrilu0__numeric__boost.html "Interface documentation") | C binding 269 | [rocsparse_scsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 270 | [rocsparse_dcsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 271 | [rocsparse_ccsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 272 | [rocsparse_zcsrilu0_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrilu0__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 273 | [rocsparse_scsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 274 | [rocsparse_dcsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 275 | [rocsparse_ccsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 276 | [rocsparse_zcsrilu0_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrilu0__analysis.html "Interface documentation") | C binding, rank_0, rank_1 277 | [rocsparse_csrilu0_clear](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrilu0__clear.html "Interface documentation") | C binding 278 | [rocsparse_scsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 279 | [rocsparse_dcsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 280 | [rocsparse_ccsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 281 | [rocsparse_zcsrilu0](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrilu0.html "Interface documentation") | C binding, rank_0, rank_1 282 | [rocsparse_sgtsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgtsv__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 283 | [rocsparse_dgtsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgtsv__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 284 | [rocsparse_cgtsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgtsv__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 285 | [rocsparse_zgtsv_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgtsv__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 286 | [rocsparse_sgtsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgtsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 287 | [rocsparse_dgtsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgtsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 288 | [rocsparse_cgtsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgtsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 289 | [rocsparse_zgtsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgtsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 290 | [rocsparse_sgtsv_no_pivot_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgtsv__no__pivot__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 291 | [rocsparse_dgtsv_no_pivot_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgtsv__no__pivot__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 292 | [rocsparse_cgtsv_no_pivot_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgtsv__no__pivot__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 293 | [rocsparse_zgtsv_no_pivot_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgtsv__no__pivot__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 294 | [rocsparse_sgtsv_no_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgtsv__no__pivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 295 | [rocsparse_dgtsv_no_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgtsv__no__pivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 296 | [rocsparse_cgtsv_no_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgtsv__no__pivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 297 | [rocsparse_zgtsv_no_pivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgtsv__no__pivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 298 | [rocsparse_sgtsv_no_pivot_strided_batch_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgtsv__no__pivot__strided__batch__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 299 | [rocsparse_dgtsv_no_pivot_strided_batch_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgtsv__no__pivot__strided__batch__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 300 | [rocsparse_cgtsv_no_pivot_strided_batch_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgtsv__no__pivot__strided__batch__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 301 | [rocsparse_zgtsv_no_pivot_strided_batch_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgtsv__no__pivot__strided__batch__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 302 | [rocsparse_sgtsv_no_pivot_strided_batch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgtsv__no__pivot__strided__batch.html "Interface documentation") | C binding, rank_0, rank_1 303 | [rocsparse_dgtsv_no_pivot_strided_batch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgtsv__no__pivot__strided__batch.html "Interface documentation") | C binding, rank_0, rank_1 304 | [rocsparse_cgtsv_no_pivot_strided_batch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgtsv__no__pivot__strided__batch.html "Interface documentation") | C binding, rank_0, rank_1 305 | [rocsparse_zgtsv_no_pivot_strided_batch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgtsv__no__pivot__strided__batch.html "Interface documentation") | C binding, rank_0, rank_1 306 | [rocsparse_snnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__snnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 307 | [rocsparse_dnnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 308 | [rocsparse_cnnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cnnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 309 | [rocsparse_znnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__znnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 310 | [rocsparse_sdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sdense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 311 | [rocsparse_ddense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ddense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 312 | [rocsparse_cdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cdense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 313 | [rocsparse_zdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zdense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 314 | [rocsparse_sprune_dense2csr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__dense2csr__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 315 | [rocsparse_dprune_dense2csr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__dense2csr__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 316 | [rocsparse_sprune_dense2csr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__dense2csr__nnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 317 | [rocsparse_dprune_dense2csr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__dense2csr__nnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 318 | [rocsparse_sprune_dense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__dense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 319 | [rocsparse_dprune_dense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__dense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 320 | [rocsparse_sprune_dense2csr_by_percentage_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__dense2csr__by__percentage__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 321 | [rocsparse_dprune_dense2csr_by_percentage_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__dense2csr__by__percentage__buffer__size.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 322 | [rocsparse_sprune_dense2csr_nnz_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__dense2csr__nnz__by__percentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 323 | [rocsparse_dprune_dense2csr_nnz_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__dense2csr__nnz__by__percentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 324 | [rocsparse_sprune_dense2csr_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__dense2csr__by__percentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 325 | [rocsparse_dprune_dense2csr_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__dense2csr__by__percentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 326 | [rocsparse_sdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sdense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 327 | [rocsparse_ddense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ddense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 328 | [rocsparse_cdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cdense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 329 | [rocsparse_zdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zdense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 330 | [rocsparse_sdense2coo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sdense2coo.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 331 | [rocsparse_ddense2coo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ddense2coo.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 332 | [rocsparse_cdense2coo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cdense2coo.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 333 | [rocsparse_zdense2coo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zdense2coo.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 334 | [rocsparse_scsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 335 | [rocsparse_dcsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 336 | [rocsparse_ccsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 337 | [rocsparse_zcsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 338 | [rocsparse_scsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 339 | [rocsparse_dcsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 340 | [rocsparse_ccsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 341 | [rocsparse_zcsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 342 | [rocsparse_scoo2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scoo2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 343 | [rocsparse_dcoo2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcoo2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 344 | [rocsparse_ccoo2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccoo2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 345 | [rocsparse_zcoo2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcoo2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 346 | [rocsparse_snnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__snnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 347 | [rocsparse_dnnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dnnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 348 | [rocsparse_cnnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cnnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 349 | [rocsparse_znnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__znnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 350 | [rocsparse_csr2coo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr2coo.html "Interface documentation") | C binding, rank_0, rank_1 351 | [rocsparse_csr2csc_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr2csc__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 352 | [rocsparse_scsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 353 | [rocsparse_dcsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 354 | [rocsparse_ccsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 355 | [rocsparse_zcsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 356 | [rocsparse_sgebsr2gebsc_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsr2gebsc__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 357 | [rocsparse_dgebsr2gebsc_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsr2gebsc__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 358 | [rocsparse_cgebsr2gebsc_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsr2gebsc__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 359 | [rocsparse_zgebsr2gebsc_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsr2gebsc__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 360 | [rocsparse_sgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsr2gebsc.html "Interface documentation") | C binding, rank_0, rank_1 361 | [rocsparse_dgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsr2gebsc.html "Interface documentation") | C binding, rank_0, rank_1 362 | [rocsparse_cgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsr2gebsc.html "Interface documentation") | C binding, rank_0, rank_1 363 | [rocsparse_zgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsr2gebsc.html "Interface documentation") | C binding, rank_0, rank_1 364 | [rocsparse_csr2ell_width](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr2ell__width.html "Interface documentation") | C binding, rank_0, rank_1 365 | [rocsparse_scsr2ell](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2ell.html "Interface documentation") | C binding, rank_0, rank_1 366 | [rocsparse_dcsr2ell](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2ell.html "Interface documentation") | C binding, rank_0, rank_1 367 | [rocsparse_ccsr2ell](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2ell.html "Interface documentation") | C binding, rank_0, rank_1 368 | [rocsparse_zcsr2ell](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2ell.html "Interface documentation") | C binding, rank_0, rank_1 369 | [rocsparse_scsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 370 | [rocsparse_dcsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 371 | [rocsparse_ccsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 372 | [rocsparse_zcsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 373 | [rocsparse_csr2bsr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr2bsr__nnz.html "Interface documentation") | C binding, rank_0, rank_1 374 | [rocsparse_scsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 375 | [rocsparse_dcsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 376 | [rocsparse_ccsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 377 | [rocsparse_zcsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 378 | [rocsparse_scsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2gebsr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 379 | [rocsparse_dcsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2gebsr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 380 | [rocsparse_ccsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2gebsr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 381 | [rocsparse_zcsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2gebsr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 382 | [rocsparse_csr2gebsr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csr2gebsr__nnz.html "Interface documentation") | C binding, rank_0, rank_1 383 | [rocsparse_scsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 384 | [rocsparse_dcsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 385 | [rocsparse_ccsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 386 | [rocsparse_zcsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 387 | [rocsparse_scsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 388 | [rocsparse_dcsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 389 | [rocsparse_ccsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 390 | [rocsparse_zcsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 391 | [rocsparse_sprune_csr2csr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__csr2csr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 392 | [rocsparse_dprune_csr2csr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__csr2csr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 393 | [rocsparse_sprune_csr2csr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__csr2csr__nnz.html "Interface documentation") | C binding, rank_0, rank_1 394 | [rocsparse_dprune_csr2csr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__csr2csr__nnz.html "Interface documentation") | C binding, rank_0, rank_1 395 | [rocsparse_sprune_csr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__csr2csr.html "Interface documentation") | C binding, rank_0, rank_1 396 | [rocsparse_dprune_csr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__csr2csr.html "Interface documentation") | C binding, rank_0, rank_1 397 | [rocsparse_sprune_csr2csr_by_percentage_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__csr2csr__by__percentage__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 398 | [rocsparse_dprune_csr2csr_by_percentage_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__csr2csr__by__percentage__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 399 | [rocsparse_sprune_csr2csr_nnz_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__csr2csr__nnz__by__percentage.html "Interface documentation") | C binding, rank_0, rank_1 400 | [rocsparse_dprune_csr2csr_nnz_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__csr2csr__nnz__by__percentage.html "Interface documentation") | C binding, rank_0, rank_1 401 | [rocsparse_sprune_csr2csr_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sprune__csr2csr__by__percentage.html "Interface documentation") | C binding, rank_0, rank_1 402 | [rocsparse_dprune_csr2csr_by_percentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dprune__csr2csr__by__percentage.html "Interface documentation") | C binding, rank_0, rank_1 403 | [rocsparse_coo2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coo2csr.html "Interface documentation") | C binding, rank_0, rank_1 404 | [rocsparse_ell2csr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ell2csr__nnz.html "Interface documentation") | C binding, rank_0, rank_1 405 | [rocsparse_sell2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sell2csr.html "Interface documentation") | C binding, rank_0, rank_1 406 | [rocsparse_dell2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dell2csr.html "Interface documentation") | C binding, rank_0, rank_1 407 | [rocsparse_cell2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cell2csr.html "Interface documentation") | C binding, rank_0, rank_1 408 | [rocsparse_zell2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zell2csr.html "Interface documentation") | C binding, rank_0, rank_1 409 | [rocsparse_hyb2csr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__hyb2csr__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 410 | [rocsparse_shyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__shyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 411 | [rocsparse_dhyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dhyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 412 | [rocsparse_chyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__chyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 413 | [rocsparse_zhyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zhyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 414 | [rocsparse_create_identity_permutation](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__create__identity__permutation.html "Interface documentation") | C binding, rank_0, rank_1 415 | [rocsparse_csrsort_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrsort__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 416 | [rocsparse_csrsort](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__csrsort.html "Interface documentation") | C binding, rank_0, rank_1 417 | [rocsparse_cscsort_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cscsort__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 418 | [rocsparse_cscsort](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cscsort.html "Interface documentation") | C binding, rank_0, rank_1 419 | [rocsparse_coosort_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coosort__buffer__size.html "Interface documentation") | C binding, rank_0, rank_1 420 | [rocsparse_coosort_by_row](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coosort__by__row.html "Interface documentation") | C binding, rank_0, rank_1 421 | [rocsparse_coosort_by_column](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__coosort__by__column.html "Interface documentation") | C binding, rank_0, rank_1 422 | [rocsparse_sbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 423 | [rocsparse_dbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 424 | [rocsparse_cbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 425 | [rocsparse_zbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 426 | [rocsparse_sgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 427 | [rocsparse_dgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 428 | [rocsparse_cgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 429 | [rocsparse_zgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 430 | [rocsparse_sgebsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsr2gebsr__buffer__size.html "Interface documentation") | C binding 431 | [rocsparse_dgebsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsr2gebsr__buffer__size.html "Interface documentation") | C binding 432 | [rocsparse_cgebsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsr2gebsr__buffer__size.html "Interface documentation") | C binding 433 | [rocsparse_zgebsr2gebsr_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsr2gebsr__buffer__size.html "Interface documentation") | C binding 434 | [rocsparse_gebsr2gebsr_nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__gebsr2gebsr__nnz.html "Interface documentation") | C binding 435 | [rocsparse_sgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sgebsr2gebsr.html "Interface documentation") | C binding 436 | [rocsparse_dgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dgebsr2gebsr.html "Interface documentation") | C binding 437 | [rocsparse_cgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__cgebsr2gebsr.html "Interface documentation") | C binding 438 | [rocsparse_zgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zgebsr2gebsr.html "Interface documentation") | C binding 439 | [rocsparse_axpby](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__axpby.html "Interface documentation") | C binding 440 | [rocsparse_gather](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__gather.html "Interface documentation") | C binding 441 | [rocsparse_scatter](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scatter.html "Interface documentation") | C binding 442 | [rocsparse_rot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__rot.html "Interface documentation") | C binding 443 | [rocsparse_sparse_to_dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sparse__to__dense.html "Interface documentation") | C binding 444 | [rocsparse_dense_to_sparse](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dense__to__sparse.html "Interface documentation") | C binding 445 | [rocsparse_spvv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spvv.html "Interface documentation") | C binding 446 | [rocsparse_spmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmv.html "Interface documentation") | C binding 447 | [rocsparse_spsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spsv.html "Interface documentation") | C binding 448 | [rocsparse_spsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spsm.html "Interface documentation") | C binding 449 | [rocsparse_spmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spmm.html "Interface documentation") | C binding 450 | [rocsparse_spgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__spgemm.html "Interface documentation") | C binding 451 | [rocsparse_sddmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sddmm.html "Interface documentation") | C binding 452 | [rocsparse_sddmm_buffer_size](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sddmm__buffer__size.html "Interface documentation") | C binding 453 | [rocsparse_sddmm_preprocess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__sddmm__preprocess.html "Interface documentation") | C binding 454 | [rocsparse_scsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__scsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 455 | [rocsparse_dcsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__dcsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 456 | [rocsparse_ccsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__ccsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 457 | [rocsparse_zcsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__rocsparse_1_1rocsparse__zcsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 hipfort-7.2.4/docs/doxygen/input/supported_api_hipblas.md0000664000175000017500000037035315207260635024052 0ustar alastairalastair# hipBLAS API support \# | API Name | Variants ----|---------------|--------- 1 | [hipblasSetVector](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblassetvector.html "Interface documentation") | C binding 2 | [hipblasGetVector](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblasgetvector.html "Interface documentation") | C binding 3 | [hipblasSetMatrix](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblassetmatrix.html "Interface documentation") | C binding 4 | [hipblasGetMatrix](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblasgetmatrix.html "Interface documentation") | C binding 5 | [hipblasSetVectorAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblassetvectorasync.html "Interface documentation") | C binding 6 | [hipblasGetVectorAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblasgetvectorasync.html "Interface documentation") | C binding 7 | [hipblasSetMatrixAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblassetmatrixasync.html "Interface documentation") | C binding 8 | [hipblasGetMatrixAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas__auxiliary_1_1hipblasgetmatrixasync.html "Interface documentation") | C binding 1 | [hipblasCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascreate.html "Interface documentation") | C binding 2 | [hipblasDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdestroy.html "Interface documentation") | C binding 3 | [hipblasSetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassetstream.html "Interface documentation") | C binding 4 | [hipblasGetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasgetstream.html "Interface documentation") | C binding 5 | [hipblasSetPointerMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassetpointermode.html "Interface documentation") | C binding 6 | [hipblasGetPointerMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasgetpointermode.html "Interface documentation") | C binding 7 | [hipblasSetAtomicsMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassetatomicsmode.html "Interface documentation") | C binding 8 | [hipblasGetAtomicsMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasgetatomicsmode.html "Interface documentation") | C binding 9 | [hipblasIsamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasisamax.html "Interface documentation") | C binding, rank_0, rank_1 10 | [hipblasIdamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasidamax.html "Interface documentation") | C binding, rank_0, rank_1 11 | [hipblasIcamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasicamax.html "Interface documentation") | C binding, rank_0, rank_1 12 | [hipblasIzamax](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasizamax.html "Interface documentation") | C binding, rank_0, rank_1 13 | [hipblasIsamaxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasisamaxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 14 | [hipblasIdamaxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasidamaxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 15 | [hipblasIcamaxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasicamaxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 16 | [hipblasIzamaxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasizamaxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 17 | [hipblasIsamaxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasisamaxstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 18 | [hipblasIdamaxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasidamaxstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 19 | [hipblasIcamaxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasicamaxstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 20 | [hipblasIzamaxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasizamaxstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 21 | [hipblasIsamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasisamin.html "Interface documentation") | C binding, rank_0, rank_1 22 | [hipblasIdamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasidamin.html "Interface documentation") | C binding, rank_0, rank_1 23 | [hipblasIcamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasicamin.html "Interface documentation") | C binding, rank_0, rank_1 24 | [hipblasIzamin](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasizamin.html "Interface documentation") | C binding, rank_0, rank_1 25 | [hipblasIsaminBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasisaminbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 26 | [hipblasIdaminBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasidaminbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 27 | [hipblasIcaminBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasicaminbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 28 | [hipblasIzaminBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasizaminbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 29 | [hipblasIsaminStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasisaminstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 30 | [hipblasIdaminStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasidaminstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 31 | [hipblasIcaminStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasicaminstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 32 | [hipblasIzaminStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasizaminstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 33 | [hipblasSasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassasum.html "Interface documentation") | C binding, rank_0, rank_1 34 | [hipblasDasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdasum.html "Interface documentation") | C binding, rank_0, rank_1 35 | [hipblasScasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscasum.html "Interface documentation") | C binding, rank_0, rank_1 36 | [hipblasDzasum](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdzasum.html "Interface documentation") | C binding, rank_0, rank_1 37 | [hipblasSasumBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassasumbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 38 | [hipblasDasumBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdasumbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 39 | [hipblasScasumBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscasumbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 40 | [hipblasDzasumBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdzasumbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 41 | [hipblasSasumStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassasumstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 42 | [hipblasDasumStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdasumstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 43 | [hipblasScasumStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscasumstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 44 | [hipblasDzasumStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdzasumstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 45 | [hipblasSaxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassaxpy.html "Interface documentation") | C binding, rank_0, rank_1 46 | [hipblasDaxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdaxpy.html "Interface documentation") | C binding, rank_0, rank_1 47 | [hipblasCaxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascaxpy.html "Interface documentation") | C binding, rank_0, rank_1 48 | [hipblasZaxpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszaxpy.html "Interface documentation") | C binding, rank_0, rank_1 49 | [hipblasSaxpyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassaxpybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 50 | [hipblasDaxpyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdaxpybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 51 | [hipblasCaxpyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascaxpybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 52 | [hipblasZaxpyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszaxpybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 53 | [hipblasSaxpyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassaxpystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 54 | [hipblasDaxpyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdaxpystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 55 | [hipblasCaxpyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascaxpystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 56 | [hipblasZaxpyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszaxpystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 57 | [hipblasScopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscopy.html "Interface documentation") | C binding, rank_0, rank_1 58 | [hipblasDcopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdcopy.html "Interface documentation") | C binding, rank_0, rank_1 59 | [hipblasCcopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasccopy.html "Interface documentation") | C binding, rank_0, rank_1 60 | [hipblasZcopy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszcopy.html "Interface documentation") | C binding, rank_0, rank_1 61 | [hipblasScopyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscopybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 62 | [hipblasDcopyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdcopybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 63 | [hipblasCcopyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasccopybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 64 | [hipblasZcopyBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszcopybatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 65 | [hipblasScopyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscopystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 66 | [hipblasDcopyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdcopystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 67 | [hipblasCcopyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasccopystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 68 | [hipblasZcopyStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszcopystridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 69 | [hipblasSdot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassdot.html "Interface documentation") | C binding, rank_0, rank_1 70 | [hipblasDdot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasddot.html "Interface documentation") | C binding, rank_0, rank_1 71 | [hipblasCdotc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdotc.html "Interface documentation") | C binding, rank_0, rank_1 72 | [hipblasCdotu](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdotu.html "Interface documentation") | C binding, rank_0, rank_1 73 | [hipblasZdotc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdotc.html "Interface documentation") | C binding, rank_0, rank_1 74 | [hipblasZdotu](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdotu.html "Interface documentation") | C binding, rank_0, rank_1 75 | [hipblasSdotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassdotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 76 | [hipblasDdotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasddotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 77 | [hipblasCdotcBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdotcbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 78 | [hipblasCdotuBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdotubatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 79 | [hipblasZdotcBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdotcbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 80 | [hipblasZdotuBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdotubatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 81 | [hipblasSdotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassdotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 82 | [hipblasDdotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasddotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 83 | [hipblasCdotcStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdotcstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 84 | [hipblasCdotuStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdotustridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 85 | [hipblasZdotcStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdotcstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 86 | [hipblasZdotuStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdotustridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 87 | [hipblasSnrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassnrm2.html "Interface documentation") | C binding, rank_0, rank_1 88 | [hipblasDnrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdnrm2.html "Interface documentation") | C binding, rank_0, rank_1 89 | [hipblasScnrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscnrm2.html "Interface documentation") | C binding, rank_0, rank_1 90 | [hipblasDznrm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdznrm2.html "Interface documentation") | C binding, rank_0, rank_1 91 | [hipblasSnrm2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassnrm2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 92 | [hipblasDnrm2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdnrm2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 93 | [hipblasScnrm2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscnrm2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 94 | [hipblasDznrm2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdznrm2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 95 | [hipblasSnrm2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassnrm2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 96 | [hipblasDnrm2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdnrm2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 97 | [hipblasScnrm2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscnrm2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 98 | [hipblasDznrm2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdznrm2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 99 | [hipblasSrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrot.html "Interface documentation") | C binding, rank_0, rank_1 100 | [hipblasDrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrot.html "Interface documentation") | C binding, rank_0, rank_1 101 | [hipblasCrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascrot.html "Interface documentation") | C binding, rank_0, rank_1 102 | [hipblasCsrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsrot.html "Interface documentation") | C binding, rank_0, rank_1 103 | [hipblasZrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszrot.html "Interface documentation") | C binding, rank_0, rank_1 104 | [hipblasZdrot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdrot.html "Interface documentation") | C binding, rank_0, rank_1 105 | [hipblasSrotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 106 | [hipblasDrotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 107 | [hipblasCrotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascrotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 108 | [hipblasCsrotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsrotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 109 | [hipblasZrotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszrotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 110 | [hipblasZdrotBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdrotbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 111 | [hipblasSrotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 112 | [hipblasDrotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 113 | [hipblasCrotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascrotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 114 | [hipblasCsrotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsrotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 115 | [hipblasZrotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszrotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 116 | [hipblasZdrotStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdrotstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 117 | [hipblasSrotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotg.html "Interface documentation") | C binding 118 | [hipblasDrotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotg.html "Interface documentation") | C binding 119 | [hipblasCrotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascrotg.html "Interface documentation") | C binding 120 | [hipblasZrotg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszrotg.html "Interface documentation") | C binding 121 | [hipblasSrotgBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotgbatched.html "Interface documentation") | C binding 122 | [hipblasDrotgBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotgbatched.html "Interface documentation") | C binding 123 | [hipblasCrotgBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascrotgbatched.html "Interface documentation") | C binding 124 | [hipblasZrotgBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszrotgbatched.html "Interface documentation") | C binding 125 | [hipblasSrotgStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotgstridedbatched.html "Interface documentation") | C binding 126 | [hipblasDrotgStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotgstridedbatched.html "Interface documentation") | C binding 127 | [hipblasCrotgStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascrotgstridedbatched.html "Interface documentation") | C binding 128 | [hipblasZrotgStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszrotgstridedbatched.html "Interface documentation") | C binding 129 | [hipblasSrotm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotm.html "Interface documentation") | C binding, rank_0, rank_1 130 | [hipblasDrotm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotm.html "Interface documentation") | C binding, rank_0, rank_1 131 | [hipblasSrotmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 132 | [hipblasDrotmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 133 | [hipblasSrotmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotmstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 134 | [hipblasDrotmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotmstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 135 | [hipblasSrotmg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotmg.html "Interface documentation") | C binding 136 | [hipblasDrotmg](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotmg.html "Interface documentation") | C binding 137 | [hipblasSrotmgBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotmgbatched.html "Interface documentation") | C binding 138 | [hipblasDrotmgBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotmgbatched.html "Interface documentation") | C binding 139 | [hipblasSrotmgStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassrotmgstridedbatched.html "Interface documentation") | C binding 140 | [hipblasDrotmgStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdrotmgstridedbatched.html "Interface documentation") | C binding 141 | [hipblasSscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassscal.html "Interface documentation") | C binding, rank_0, rank_1 142 | [hipblasDscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdscal.html "Interface documentation") | C binding, rank_0, rank_1 143 | [hipblasCscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascscal.html "Interface documentation") | C binding, rank_0, rank_1 144 | [hipblasCsscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsscal.html "Interface documentation") | C binding, rank_0, rank_1 145 | [hipblasZscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszscal.html "Interface documentation") | C binding, rank_0, rank_1 146 | [hipblasZdscal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdscal.html "Interface documentation") | C binding, rank_0, rank_1 147 | [hipblasSscalBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassscalbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 148 | [hipblasDscalBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdscalbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 149 | [hipblasCscalBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascscalbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 150 | [hipblasZscalBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszscalbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 151 | [hipblasCsscalBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsscalbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 152 | [hipblasZdscalBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdscalbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 153 | [hipblasSscalStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassscalstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 154 | [hipblasDscalStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdscalstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 155 | [hipblasCscalStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascscalstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 156 | [hipblasZscalStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszscalstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 157 | [hipblasCsscalStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsscalstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 158 | [hipblasZdscalStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdscalstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 159 | [hipblasSswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassswap.html "Interface documentation") | C binding, rank_0, rank_1 160 | [hipblasDswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdswap.html "Interface documentation") | C binding, rank_0, rank_1 161 | [hipblasCswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascswap.html "Interface documentation") | C binding, rank_0, rank_1 162 | [hipblasZswap](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszswap.html "Interface documentation") | C binding, rank_0, rank_1 163 | [hipblasSswapBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassswapbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 164 | [hipblasDswapBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdswapbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 165 | [hipblasCswapBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascswapbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 166 | [hipblasZswapBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszswapbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 167 | [hipblasSswapStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassswapstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 168 | [hipblasDswapStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdswapstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 169 | [hipblasCswapStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascswapstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 170 | [hipblasZswapStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszswapstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 171 | [hipblasSgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 172 | [hipblasDgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 173 | [hipblasCgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 174 | [hipblasZgbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 175 | [hipblasSgbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 176 | [hipblasDgbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 177 | [hipblasCgbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 178 | [hipblasZgbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 179 | [hipblasSgbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 180 | [hipblasDgbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 181 | [hipblasCgbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 182 | [hipblasZgbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 183 | [hipblasSgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 184 | [hipblasDgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 185 | [hipblasCgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 186 | [hipblasZgemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 187 | [hipblasSgemvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgemvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 188 | [hipblasDgemvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgemvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 189 | [hipblasCgemvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgemvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 190 | [hipblasZgemvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgemvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 191 | [hipblasSgemvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgemvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 192 | [hipblasDgemvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgemvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 193 | [hipblasCgemvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgemvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 194 | [hipblasZgemvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgemvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 195 | [hipblasSger](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassger.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 196 | [hipblasDger](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdger.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 197 | [hipblasCgeru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeru.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 198 | [hipblasCgerc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgerc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 199 | [hipblasZgeru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeru.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 200 | [hipblasZgerc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgerc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 201 | [hipblasSgerBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgerbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 202 | [hipblasDgerBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgerbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 203 | [hipblasCgeruBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgerubatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 204 | [hipblasCgercBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgercbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 205 | [hipblasZgeruBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgerubatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 206 | [hipblasZgercBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgercbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 207 | [hipblasSgerStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgerstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 208 | [hipblasDgerStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgerstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 209 | [hipblasCgeruStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgerustridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 210 | [hipblasCgercStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgercstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 211 | [hipblasZgeruStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgerustridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 212 | [hipblasZgercStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgercstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 213 | [hipblasChbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 214 | [hipblasZhbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 215 | [hipblasChbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 216 | [hipblasZhbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 217 | [hipblasChbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 218 | [hipblasZhbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 219 | [hipblasChemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 220 | [hipblasZhemv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhemv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 221 | [hipblasChemvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschemvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 222 | [hipblasZhemvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhemvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 223 | [hipblasChemvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschemvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 224 | [hipblasZhemvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhemvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 225 | [hipblasCher](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 226 | [hipblasZher](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 227 | [hipblasCherBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 228 | [hipblasZherBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 229 | [hipblasCherStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 230 | [hipblasZherStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 231 | [hipblasCher2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 232 | [hipblasZher2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 233 | [hipblasCher2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 234 | [hipblasZher2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 235 | [hipblasCher2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher2stridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 236 | [hipblasZher2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher2stridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 237 | [hipblasChpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpmv.html "Interface documentation") | C binding, rank_0, rank_1 238 | [hipblasZhpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpmv.html "Interface documentation") | C binding, rank_0, rank_1 239 | [hipblasChpmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 240 | [hipblasZhpmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 241 | [hipblasChpmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 242 | [hipblasZhpmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 243 | [hipblasChpr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpr.html "Interface documentation") | C binding, rank_0, rank_1 244 | [hipblasZhpr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpr.html "Interface documentation") | C binding, rank_0, rank_1 245 | [hipblasChprBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschprbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 246 | [hipblasZhprBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhprbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 247 | [hipblasChprStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschprstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 248 | [hipblasZhprStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhprstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 249 | [hipblasChpr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpr2.html "Interface documentation") | C binding, rank_0, rank_1 250 | [hipblasZhpr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpr2.html "Interface documentation") | C binding, rank_0, rank_1 251 | [hipblasChpr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 252 | [hipblasZhpr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 253 | [hipblasChpr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschpr2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 254 | [hipblasZhpr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhpr2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 255 | [hipblasSsbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 256 | [hipblasDsbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 257 | [hipblasSsbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 258 | [hipblasDsbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 259 | [hipblasSsbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 260 | [hipblasDsbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 261 | [hipblasSspmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspmv.html "Interface documentation") | C binding, rank_0, rank_1 262 | [hipblasDspmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspmv.html "Interface documentation") | C binding, rank_0, rank_1 263 | [hipblasSspmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 264 | [hipblasDspmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 265 | [hipblasSspmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 266 | [hipblasDspmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 267 | [hipblasSspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspr.html "Interface documentation") | C binding, rank_0, rank_1 268 | [hipblasDspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspr.html "Interface documentation") | C binding, rank_0, rank_1 269 | [hipblasCspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascspr.html "Interface documentation") | C binding, rank_0, rank_1 270 | [hipblasZspr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszspr.html "Interface documentation") | C binding, rank_0, rank_1 271 | [hipblasSsprBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssprbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 272 | [hipblasDsprBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsprbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 273 | [hipblasCsprBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsprbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 274 | [hipblasZsprBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsprbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 275 | [hipblasSsprStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssprstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 276 | [hipblasDsprStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsprstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 277 | [hipblasCsprStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsprstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 278 | [hipblasZsprStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsprstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 279 | [hipblasSspr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspr2.html "Interface documentation") | C binding, rank_0, rank_1 280 | [hipblasDspr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspr2.html "Interface documentation") | C binding, rank_0, rank_1 281 | [hipblasSspr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 282 | [hipblasDspr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 283 | [hipblasSspr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassspr2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 284 | [hipblasDspr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdspr2stridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 285 | [hipblasSsymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 286 | [hipblasDsymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 287 | [hipblasCsymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 288 | [hipblasZsymv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsymv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 289 | [hipblasSsymvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssymvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 290 | [hipblasDsymvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsymvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 291 | [hipblasCsymvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsymvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 292 | [hipblasZsymvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsymvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 293 | [hipblasSsymvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssymvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 294 | [hipblasDsymvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsymvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 295 | [hipblasCsymvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsymvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 296 | [hipblasZsymvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsymvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 297 | [hipblasSsyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 298 | [hipblasDsyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 299 | [hipblasCsyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 300 | [hipblasZsyr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 301 | [hipblasSsyrBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 302 | [hipblasDsyrBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 303 | [hipblasCsyrBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 304 | [hipblasZsyrBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 305 | [hipblasSsyrStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 306 | [hipblasDsyrStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 307 | [hipblasCsyrStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 308 | [hipblasZsyrStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 309 | [hipblasSsyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 310 | [hipblasDsyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 311 | [hipblasCsyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 312 | [hipblasZsyr2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 313 | [hipblasSsyr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 314 | [hipblasDsyr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 315 | [hipblasCsyr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 316 | [hipblasZsyr2Batched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr2batched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 317 | [hipblasSsyr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr2stridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 318 | [hipblasDsyr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr2stridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 319 | [hipblasCsyr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr2stridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 320 | [hipblasZsyr2StridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr2stridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 321 | [hipblasStbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 322 | [hipblasDtbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 323 | [hipblasCtbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 324 | [hipblasZtbmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztbmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 325 | [hipblasStbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 326 | [hipblasDtbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 327 | [hipblasCtbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 328 | [hipblasZtbmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztbmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 329 | [hipblasStbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 330 | [hipblasDtbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 331 | [hipblasCtbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 332 | [hipblasZtbmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztbmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 333 | [hipblasStbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 334 | [hipblasDtbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 335 | [hipblasCtbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 336 | [hipblasZtbsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztbsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 337 | [hipblasStbsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstbsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 338 | [hipblasDtbsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtbsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 339 | [hipblasCtbsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctbsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 340 | [hipblasZtbsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztbsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 341 | [hipblasStbsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstbsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 342 | [hipblasDtbsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtbsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 343 | [hipblasCtbsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctbsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 344 | [hipblasZtbsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztbsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 345 | [hipblasStpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstpmv.html "Interface documentation") | C binding, rank_0, rank_1 346 | [hipblasDtpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtpmv.html "Interface documentation") | C binding, rank_0, rank_1 347 | [hipblasCtpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctpmv.html "Interface documentation") | C binding, rank_0, rank_1 348 | [hipblasZtpmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztpmv.html "Interface documentation") | C binding, rank_0, rank_1 349 | [hipblasStpmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstpmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 350 | [hipblasDtpmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtpmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 351 | [hipblasCtpmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctpmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 352 | [hipblasZtpmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztpmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 353 | [hipblasStpmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstpmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 354 | [hipblasDtpmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtpmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 355 | [hipblasCtpmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctpmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 356 | [hipblasZtpmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztpmvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 357 | [hipblasStpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstpsv.html "Interface documentation") | C binding, rank_0, rank_1 358 | [hipblasDtpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtpsv.html "Interface documentation") | C binding, rank_0, rank_1 359 | [hipblasCtpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctpsv.html "Interface documentation") | C binding, rank_0, rank_1 360 | [hipblasZtpsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztpsv.html "Interface documentation") | C binding, rank_0, rank_1 361 | [hipblasStpsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstpsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 362 | [hipblasDtpsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtpsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 363 | [hipblasCtpsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctpsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 364 | [hipblasZtpsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztpsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 365 | [hipblasStpsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstpsvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 366 | [hipblasDtpsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtpsvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 367 | [hipblasCtpsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctpsvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 368 | [hipblasZtpsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztpsvstridedbatched.html "Interface documentation") | C binding, rank_0, rank_1 369 | [hipblasStrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 370 | [hipblasDtrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 371 | [hipblasCtrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 372 | [hipblasZtrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrmv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 373 | [hipblasStrmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 374 | [hipblasDtrmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 375 | [hipblasCtrmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 376 | [hipblasZtrmvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrmvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 377 | [hipblasStrmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 378 | [hipblasDtrmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 379 | [hipblasCtrmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 380 | [hipblasZtrmvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrmvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 381 | [hipblasStrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 382 | [hipblasDtrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 383 | [hipblasCtrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 384 | [hipblasZtrsv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrsv.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 385 | [hipblasStrsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 386 | [hipblasDtrsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 387 | [hipblasCtrsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 388 | [hipblasZtrsvBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrsvbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 389 | [hipblasStrsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 390 | [hipblasDtrsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 391 | [hipblasCtrsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 392 | [hipblasZtrsvStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrsvstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 393 | [hipblasSgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 394 | [hipblasDgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 395 | [hipblasCgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 396 | [hipblasZgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 397 | [hipblasSgemmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgemmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 398 | [hipblasDgemmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgemmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 399 | [hipblasCgemmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgemmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 400 | [hipblasZgemmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgemmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 401 | [hipblasSgemmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgemmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 402 | [hipblasDgemmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgemmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 403 | [hipblasCgemmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgemmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 404 | [hipblasZgemmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgemmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 405 | [hipblasCherk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 406 | [hipblasZherk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 407 | [hipblasCherkBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherkbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 408 | [hipblasZherkBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherkbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 409 | [hipblasCherkStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherkstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 410 | [hipblasZherkStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherkstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 411 | [hipblasCherkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 412 | [hipblasZherkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 413 | [hipblasCherkxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherkxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 414 | [hipblasZherkxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherkxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 415 | [hipblasCherkxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascherkxstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 416 | [hipblasZherkxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszherkxstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 417 | [hipblasCher2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 418 | [hipblasZher2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 419 | [hipblasCher2kBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher2kbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 420 | [hipblasZher2kBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher2kbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 421 | [hipblasCher2kStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascher2kstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 422 | [hipblasZher2kStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszher2kstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 423 | [hipblasSsymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 424 | [hipblasDsymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 425 | [hipblasCsymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 426 | [hipblasZsymm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsymm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 427 | [hipblasSsymmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssymmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 428 | [hipblasDsymmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsymmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 429 | [hipblasCsymmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsymmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 430 | [hipblasZsymmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsymmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 431 | [hipblasSsymmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssymmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 432 | [hipblasDsymmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsymmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 433 | [hipblasCsymmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsymmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 434 | [hipblasZsymmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsymmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 435 | [hipblasSsyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 436 | [hipblasDsyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 437 | [hipblasCsyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 438 | [hipblasZsyrk](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrk.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 439 | [hipblasSsyrkBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrkbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 440 | [hipblasDsyrkBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrkbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 441 | [hipblasCsyrkBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrkbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 442 | [hipblasZsyrkBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrkbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 443 | [hipblasSsyrkStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrkstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 444 | [hipblasDsyrkStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrkstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 445 | [hipblasCsyrkStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrkstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 446 | [hipblasZsyrkStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrkstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 447 | [hipblasSsyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 448 | [hipblasDsyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 449 | [hipblasCsyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 450 | [hipblasZsyr2k](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr2k.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 451 | [hipblasSsyr2kBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr2kbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 452 | [hipblasDsyr2kBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr2kbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 453 | [hipblasCsyr2kBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr2kbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 454 | [hipblasZsyr2kBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr2kbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 455 | [hipblasSsyr2kStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyr2kstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 456 | [hipblasDsyr2kStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyr2kstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 457 | [hipblasCsyr2kStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyr2kstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 458 | [hipblasZsyr2kStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyr2kstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 459 | [hipblasSsyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 460 | [hipblasDsyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 461 | [hipblasCsyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 462 | [hipblasZsyrkx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrkx.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 463 | [hipblasSsyrkxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrkxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 464 | [hipblasDsyrkxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrkxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 465 | [hipblasCsyrkxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrkxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 466 | [hipblasZsyrkxBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrkxbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 467 | [hipblasSsyrkxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasssyrkxstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 468 | [hipblasDsyrkxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdsyrkxstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 469 | [hipblasCsyrkxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascsyrkxstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 470 | [hipblasZsyrkxStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszsyrkxstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 471 | [hipblasSgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 472 | [hipblasDgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 473 | [hipblasCgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 474 | [hipblasZgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeam.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 475 | [hipblasSgeamBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgeambatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 476 | [hipblasDgeamBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgeambatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 477 | [hipblasCgeamBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeambatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 478 | [hipblasZgeamBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeambatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 479 | [hipblasSgeamStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgeamstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 480 | [hipblasDgeamStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgeamstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 481 | [hipblasCgeamStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeamstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 482 | [hipblasZgeamStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeamstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 483 | [hipblasChemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 484 | [hipblasZhemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhemm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 485 | [hipblasChemmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschemmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 486 | [hipblasZhemmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhemmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 487 | [hipblasChemmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaschemmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 488 | [hipblasZhemmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszhemmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 489 | [hipblasStrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 490 | [hipblasDtrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 491 | [hipblasCtrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 492 | [hipblasZtrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 493 | [hipblasStrmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 494 | [hipblasDtrmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 495 | [hipblasCtrmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 496 | [hipblasZtrmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 497 | [hipblasStrmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 498 | [hipblasDtrmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 499 | [hipblasCtrmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 500 | [hipblasZtrmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 501 | [hipblasStrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 502 | [hipblasDtrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 503 | [hipblasCtrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 504 | [hipblasZtrsm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrsm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 505 | [hipblasStrsmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrsmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 506 | [hipblasDtrsmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrsmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 507 | [hipblasCtrsmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrsmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 508 | [hipblasZtrsmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrsmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 509 | [hipblasStrsmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrsmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 510 | [hipblasDtrsmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrsmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 511 | [hipblasCtrsmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrsmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 512 | [hipblasZtrsmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrsmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 513 | [hipblasStrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 514 | [hipblasDtrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 515 | [hipblasCtrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 516 | [hipblasZtrtri](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrtri.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 517 | [hipblasStrtriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrtribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 518 | [hipblasDtrtriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrtribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 519 | [hipblasCtrtriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrtribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 520 | [hipblasZtrtriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrtribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 521 | [hipblasStrtriStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasstrtristridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 522 | [hipblasDtrtriStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdtrtristridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 523 | [hipblasCtrtriStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasctrtristridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 524 | [hipblasZtrtriStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasztrtristridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 525 | [hipblasSdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassdgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 526 | [hipblasDdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasddgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 527 | [hipblasCdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 528 | [hipblasZdgmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdgmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 529 | [hipblasSdgmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassdgmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 530 | [hipblasDdgmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasddgmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 531 | [hipblasCdgmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdgmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 532 | [hipblasZdgmmBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdgmmbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 533 | [hipblasSdgmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassdgmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 534 | [hipblasDdgmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasddgmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 535 | [hipblasCdgmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascdgmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 536 | [hipblasZdgmmStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszdgmmstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 537 | [hipblasSgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 538 | [hipblasDgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 539 | [hipblasCgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 540 | [hipblasZgetrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 541 | [hipblasSgetrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 542 | [hipblasDgetrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 543 | [hipblasCgetrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 544 | [hipblasZgetrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 545 | [hipblasSgetrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 546 | [hipblasDgetrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 547 | [hipblasCgetrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 548 | [hipblasZgetrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 549 | [hipblasSgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 550 | [hipblasDgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 551 | [hipblasCgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 552 | [hipblasZgetrs](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetrs.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 553 | [hipblasSgetrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 554 | [hipblasDgetrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 555 | [hipblasCgetrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 556 | [hipblasZgetrsBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetrsbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 557 | [hipblasSgetrsStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetrsstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 558 | [hipblasDgetrsStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetrsstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 559 | [hipblasCgetrsStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetrsstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 560 | [hipblasZgetrsStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetrsstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 561 | [hipblasSgetriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgetribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 562 | [hipblasDgetriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgetribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 563 | [hipblasCgetriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgetribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 564 | [hipblasZgetriBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgetribatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 565 | [hipblasSgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 566 | [hipblasDgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 567 | [hipblasCgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 568 | [hipblasZgeqrf](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeqrf.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 569 | [hipblasSgeqrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgeqrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 570 | [hipblasDgeqrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgeqrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 571 | [hipblasCgeqrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeqrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 572 | [hipblasZgeqrfBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeqrfbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 573 | [hipblasSgeqrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblassgeqrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 574 | [hipblasDgeqrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdgeqrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 575 | [hipblasCgeqrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblascgeqrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 576 | [hipblasZgeqrfStridedBatched](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblaszgeqrfstridedbatched.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 577 | [hipblasGemmEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasgemmex.html "Interface documentation") | C binding 578 | [hipblasGemmBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasgemmbatchedex.html "Interface documentation") | C binding 579 | [hipblasGemmStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasgemmstridedbatchedex.html "Interface documentation") | C binding 580 | [hipblasTrsmEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblastrsmex.html "Interface documentation") | C binding 581 | [hipblasTrsmBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblastrsmbatchedex.html "Interface documentation") | C binding 582 | [hipblasTrsmStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblastrsmstridedbatchedex.html "Interface documentation") | C binding 583 | [hipblasAxpyEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasaxpyex.html "Interface documentation") | C binding 584 | [hipblasAxpyBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasaxpybatchedex.html "Interface documentation") | C binding 585 | [hipblasAxpyStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasaxpystridedbatchedex.html "Interface documentation") | C binding 586 | [hipblasDotEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdotex.html "Interface documentation") | C binding 587 | [hipblasDotcEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdotcex.html "Interface documentation") | C binding 588 | [hipblasDotBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdotbatchedex.html "Interface documentation") | C binding 589 | [hipblasDotcBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdotcbatchedex.html "Interface documentation") | C binding 590 | [hipblasDotStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdotstridedbatchedex.html "Interface documentation") | C binding 591 | [hipblasDotcStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasdotcstridedbatchedex.html "Interface documentation") | C binding 592 | [hipblasNrm2Ex](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasnrm2ex.html "Interface documentation") | C binding 593 | [hipblasNrm2BatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasnrm2batchedex.html "Interface documentation") | C binding 594 | [hipblasNrm2StridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasnrm2stridedbatchedex.html "Interface documentation") | C binding 595 | [hipblasRotEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasrotex.html "Interface documentation") | C binding 596 | [hipblasRotBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasrotbatchedex.html "Interface documentation") | C binding 597 | [hipblasRotStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasrotstridedbatchedex.html "Interface documentation") | C binding 598 | [hipblasScalEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscalex.html "Interface documentation") | C binding 599 | [hipblasScalBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscalbatchedex.html "Interface documentation") | C binding 600 | [hipblasScalStridedBatchedEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipblas_1_1hipblasscalstridedbatchedex.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/supported_api_hipfft.md0000664000175000017500000001406315207260635023701 0ustar alastairalastair# hipFFT API Support \# | API Name | Variants ----|---------------|--------- 1 | [hipfftPlan1d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftplan1d.html "Interface documentation") | C binding 2 | [hipfftPlan2d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftplan2d.html "Interface documentation") | C binding 3 | [hipfftPlan3d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftplan3d.html "Interface documentation") | C binding 4 | [hipfftPlanMany](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftplanmany.html "Interface documentation") | C binding, rank_0, rank_1 5 | [hipfftCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftcreate.html "Interface documentation") | C binding 6 | [hipfftMakePlan1d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftmakeplan1d.html "Interface documentation") | C binding, rank_0, rank_1 7 | [hipfftMakePlan2d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftmakeplan2d.html "Interface documentation") | C binding, rank_0, rank_1 8 | [hipfftMakePlan3d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftmakeplan3d.html "Interface documentation") | C binding, rank_0, rank_1 9 | [hipfftMakePlanMany](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftmakeplanmany.html "Interface documentation") | C binding, rank_0, rank_1 10 | [hipfftMakePlanMany64](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftmakeplanmany64.html "Interface documentation") | C binding, rank_0, rank_1 11 | [hipfftEstimate1d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftestimate1d.html "Interface documentation") | C binding, rank_0, rank_1 12 | [hipfftEstimate2d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftestimate2d.html "Interface documentation") | C binding, rank_0, rank_1 13 | [hipfftEstimate3d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftestimate3d.html "Interface documentation") | C binding, rank_0, rank_1 14 | [hipfftEstimateMany](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftestimatemany.html "Interface documentation") | C binding, rank_0, rank_1 15 | [hipfftGetSize1d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetsize1d.html "Interface documentation") | C binding, rank_0, rank_1 16 | [hipfftGetSize2d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetsize2d.html "Interface documentation") | C binding, rank_0, rank_1 17 | [hipfftGetSize3d](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetsize3d.html "Interface documentation") | C binding, rank_0, rank_1 18 | [hipfftGetSizeMany](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetsizemany.html "Interface documentation") | C binding, rank_0, rank_1 19 | [hipfftGetSizeMany64](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetsizemany64.html "Interface documentation") | C binding, rank_0, rank_1 20 | [hipfftGetSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetsize.html "Interface documentation") | C binding, rank_0, rank_1 21 | [hipfftSetAutoAllocation](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftsetautoallocation.html "Interface documentation") | C binding 22 | [hipfftSetWorkArea](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftsetworkarea.html "Interface documentation") | C binding 23 | [hipfftExecC2C](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftexecc2c.html "Interface documentation") | C binding, rank_0, rank_1, rank_2, rank_3 24 | [hipfftExecR2C](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftexecr2c.html "Interface documentation") | C binding, rank_0, rank_1, rank_2, rank_3 25 | [hipfftExecC2R](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftexecc2r.html "Interface documentation") | C binding, rank_0, rank_1, rank_2, rank_3 26 | [hipfftExecZ2Z](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftexecz2z.html "Interface documentation") | C binding, rank_0, rank_1, rank_2, rank_3 27 | [hipfftExecD2Z](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftexecd2z.html "Interface documentation") | C binding, rank_0, rank_1, rank_2, rank_3 28 | [hipfftExecZ2D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftexecz2d.html "Interface documentation") | C binding, rank_0, rank_1, rank_2, rank_3 29 | [hipfftSetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftsetstream.html "Interface documentation") | C binding 30 | [hipfftDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftdestroy.html "Interface documentation") | C binding 31 | [hipfftGetVersion](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetversion.html "Interface documentation") | C binding 32 | [hipfftGetProperty](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipfft_1_1hipfftgetproperty.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/.gitignore0000664000175000017500000000006015207260635021121 0ustar alastairalastair# Pre-processed fortran sources *.f *.f90 *.F90 hipfort-7.2.4/docs/doxygen/input/supported_api_hipsparse.md0000664000175000017500000031341115207260635024416 0ustar alastairalastair# hipSPARSE API support \# | API Name | Variants ----|---------------|--------- 1 | [hipsparseCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreate.html "Interface documentation") | C binding 2 | [hipsparseDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroy.html "Interface documentation") | C binding 3 | [hipsparseGetVersion](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsegetversion.html "Interface documentation") | C binding 4 | [hipsparseGetGitRevision](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsegetgitrevision.html "Interface documentation") | C binding 5 | [hipsparseSetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesetstream.html "Interface documentation") | C binding 6 | [hipsparseGetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsegetstream.html "Interface documentation") | C binding 7 | [hipsparseSetPointerMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesetpointermode.html "Interface documentation") | C binding 8 | [hipsparseGetPointerMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsegetpointermode.html "Interface documentation") | C binding 9 | [hipsparseCreateMatDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatematdescr.html "Interface documentation") | C binding 10 | [hipsparseDestroyMatDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroymatdescr.html "Interface documentation") | C binding 11 | [hipsparseCopyMatDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecopymatdescr.html "Interface documentation") | C binding 12 | [hipsparseSetMatType](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesetmattype.html "Interface documentation") | C binding 13 | [hipsparseSetMatFillMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesetmatfillmode.html "Interface documentation") | C binding 14 | [hipsparseSetMatDiagType](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesetmatdiagtype.html "Interface documentation") | C binding 15 | [hipsparseSetMatIndexBase](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesetmatindexbase.html "Interface documentation") | C binding 16 | [hipsparseCreateHybMat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatehybmat.html "Interface documentation") | C binding 17 | [hipsparseDestroyHybMat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroyhybmat.html "Interface documentation") | C binding 18 | [hipsparseCreateBsrsv2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatebsrsv2info.html "Interface documentation") | C binding 19 | [hipsparseDestroyBsrsv2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroybsrsv2info.html "Interface documentation") | C binding 20 | [hipsparseCreateBsrsm2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatebsrsm2info.html "Interface documentation") | C binding 21 | [hipsparseDestroyBsrsm2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroybsrsm2info.html "Interface documentation") | C binding 22 | [hipsparseCreateBsrilu02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatebsrilu02info.html "Interface documentation") | C binding 23 | [hipsparseDestroyBsrilu02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroybsrilu02info.html "Interface documentation") | C binding 24 | [hipsparseCreateBsric02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatebsric02info.html "Interface documentation") | C binding 25 | [hipsparseDestroyBsric02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroybsric02info.html "Interface documentation") | C binding 26 | [hipsparseCreateCsrsv2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsrsv2info.html "Interface documentation") | C binding 27 | [hipsparseDestroyCsrsv2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycsrsv2info.html "Interface documentation") | C binding 28 | [hipsparseCreateCsrsm2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsrsm2info.html "Interface documentation") | C binding 29 | [hipsparseDestroyCsrsm2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycsrsm2info.html "Interface documentation") | C binding 30 | [hipsparseCreateCsrilu02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsrilu02info.html "Interface documentation") | C binding 31 | [hipsparseDestroyCsrilu02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycsrilu02info.html "Interface documentation") | C binding 32 | [hipsparseCreateCsric02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsric02info.html "Interface documentation") | C binding 33 | [hipsparseDestroyCsric02Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycsric02info.html "Interface documentation") | C binding 34 | [hipsparseCreateCsru2csrInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsru2csrinfo.html "Interface documentation") | C binding 35 | [hipsparseDestroyCsru2csrInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycsru2csrinfo.html "Interface documentation") | C binding 36 | [hipsparseCreateColorInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecolorinfo.html "Interface documentation") | C binding 37 | [hipsparseDestroyColorInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycolorinfo.html "Interface documentation") | C binding 38 | [hipsparseCreateCsrgemm2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsrgemm2info.html "Interface documentation") | C binding 39 | [hipsparseDestroyCsrgemm2Info](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroycsrgemm2info.html "Interface documentation") | C binding 40 | [hipsparseCreatePruneInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatepruneinfo.html "Interface documentation") | C binding 41 | [hipsparseDestroyPruneInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroypruneinfo.html "Interface documentation") | C binding 42 | [hipsparseSaxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesaxpyi.html "Interface documentation") | C binding, rank_0, rank_1 43 | [hipsparseDaxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedaxpyi.html "Interface documentation") | C binding, rank_0, rank_1 44 | [hipsparseCaxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecaxpyi.html "Interface documentation") | C binding, rank_0, rank_1 45 | [hipsparseZaxpyi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezaxpyi.html "Interface documentation") | C binding, rank_0, rank_1 46 | [hipsparseSdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesdoti.html "Interface documentation") | C binding, rank_0, rank_1 47 | [hipsparseDdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseddoti.html "Interface documentation") | C binding, rank_0, rank_1 48 | [hipsparseCdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecdoti.html "Interface documentation") | C binding, rank_0, rank_1 49 | [hipsparseZdoti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezdoti.html "Interface documentation") | C binding, rank_0, rank_1 50 | [hipsparseCdotci](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecdotci.html "Interface documentation") | C binding, rank_0, rank_1 51 | [hipsparseZdotci](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezdotci.html "Interface documentation") | C binding, rank_0, rank_1 52 | [hipsparseSgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgthr.html "Interface documentation") | C binding, rank_0, rank_1 53 | [hipsparseDgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgthr.html "Interface documentation") | C binding, rank_0, rank_1 54 | [hipsparseCgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgthr.html "Interface documentation") | C binding, rank_0, rank_1 55 | [hipsparseZgthr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgthr.html "Interface documentation") | C binding, rank_0, rank_1 56 | [hipsparseSgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgthrz.html "Interface documentation") | C binding, rank_0, rank_1 57 | [hipsparseDgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgthrz.html "Interface documentation") | C binding, rank_0, rank_1 58 | [hipsparseCgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgthrz.html "Interface documentation") | C binding, rank_0, rank_1 59 | [hipsparseZgthrz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgthrz.html "Interface documentation") | C binding, rank_0, rank_1 60 | [hipsparseSroti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesroti.html "Interface documentation") | C binding, rank_0, rank_1 61 | [hipsparseDroti](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedroti.html "Interface documentation") | C binding, rank_0, rank_1 62 | [hipsparseSsctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsessctr.html "Interface documentation") | C binding, rank_0, rank_1 63 | [hipsparseDsctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedsctr.html "Interface documentation") | C binding, rank_0, rank_1 64 | [hipsparseCsctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecsctr.html "Interface documentation") | C binding, rank_0, rank_1 65 | [hipsparseZsctr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezsctr.html "Interface documentation") | C binding, rank_0, rank_1 66 | [hipsparseScsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrmv.html "Interface documentation") | C binding, rank_0, rank_1 67 | [hipsparseDcsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrmv.html "Interface documentation") | C binding, rank_0, rank_1 68 | [hipsparseCcsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrmv.html "Interface documentation") | C binding, rank_0, rank_1 69 | [hipsparseZcsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrmv.html "Interface documentation") | C binding, rank_0, rank_1 70 | [hipsparseXcsrsv2_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrsv2__zeropivot.html "Interface documentation") | C binding 71 | [hipsparseScsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 72 | [hipsparseDcsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 73 | [hipsparseCcsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 74 | [hipsparseZcsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 75 | [hipsparseScsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 76 | [hipsparseDcsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 77 | [hipsparseCcsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 78 | [hipsparseZcsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 79 | [hipsparseScsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 80 | [hipsparseDcsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 81 | [hipsparseCcsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 82 | [hipsparseZcsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 83 | [hipsparseScsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 84 | [hipsparseDcsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 85 | [hipsparseCcsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 86 | [hipsparseZcsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 87 | [hipsparseShybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseshybmv.html "Interface documentation") | C binding, rank_0, rank_1 88 | [hipsparseDhybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedhybmv.html "Interface documentation") | C binding, rank_0, rank_1 89 | [hipsparseChybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsechybmv.html "Interface documentation") | C binding, rank_0, rank_1 90 | [hipsparseZhybmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezhybmv.html "Interface documentation") | C binding, rank_0, rank_1 91 | [hipsparseSbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 92 | [hipsparseDbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 93 | [hipsparseCbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 94 | [hipsparseZbsrmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrmv.html "Interface documentation") | C binding, rank_0, rank_1 95 | [hipsparseSbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 96 | [hipsparseDbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 97 | [hipsparseCbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 98 | [hipsparseZbsrxmv](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrxmv.html "Interface documentation") | C binding, rank_0, rank_1 99 | [hipsparseXbsrsv2_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexbsrsv2__zeropivot.html "Interface documentation") | C binding 100 | [hipsparseSbsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 101 | [hipsparseDbsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 102 | [hipsparseCbsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 103 | [hipsparseZbsrsv2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsv2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 104 | [hipsparseSbsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 105 | [hipsparseDbsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 106 | [hipsparseCbsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 107 | [hipsparseZbsrsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsv2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 108 | [hipsparseSbsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 109 | [hipsparseDbsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 110 | [hipsparseCbsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 111 | [hipsparseZbsrsv2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsv2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 112 | [hipsparseSbsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 113 | [hipsparseDbsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 114 | [hipsparseCbsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 115 | [hipsparseZbsrsv2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsv2__solve.html "Interface documentation") | C binding, rank_0, rank_1 116 | [hipsparseSgemvi_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgemvi__buffersize.html "Interface documentation") | C binding 117 | [hipsparseDgemvi_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgemvi__buffersize.html "Interface documentation") | C binding 118 | [hipsparseCgemvi_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgemvi__buffersize.html "Interface documentation") | C binding 119 | [hipsparseZgemvi_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgemvi__buffersize.html "Interface documentation") | C binding 120 | [hipsparseSgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 121 | [hipsparseDgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 122 | [hipsparseCgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 123 | [hipsparseZgemvi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgemvi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 124 | [hipsparseSbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 125 | [hipsparseDbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 126 | [hipsparseCbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 127 | [hipsparseZbsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 128 | [hipsparseScsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 129 | [hipsparseDcsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 130 | [hipsparseCcsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 131 | [hipsparseZcsrmm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrmm.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 132 | [hipsparseScsrmm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrmm2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 133 | [hipsparseDcsrmm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrmm2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 134 | [hipsparseCcsrmm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrmm2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 135 | [hipsparseZcsrmm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrmm2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 136 | [hipsparseXbsrsm2_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexbsrsm2__zeropivot.html "Interface documentation") | C binding 137 | [hipsparseSbsrsm2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsm2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 138 | [hipsparseDbsrsm2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsm2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 139 | [hipsparseCbsrsm2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsm2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 140 | [hipsparseZbsrsm2_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsm2__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 141 | [hipsparseSbsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsm2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 142 | [hipsparseDbsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsm2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 143 | [hipsparseCbsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsm2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 144 | [hipsparseZbsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsm2__analysis.html "Interface documentation") | C binding, rank_0, rank_1 145 | [hipsparseSbsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 146 | [hipsparseDbsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 147 | [hipsparseCbsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 148 | [hipsparseZbsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 149 | [hipsparseXcsrsm2_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrsm2__zeropivot.html "Interface documentation") | C binding 150 | [hipsparseScsrsm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsm2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 151 | [hipsparseDcsrsm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsm2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 152 | [hipsparseCcsrsm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsm2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 153 | [hipsparseZcsrsm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsm2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 154 | [hipsparseScsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsm2__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 155 | [hipsparseDcsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsm2__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 156 | [hipsparseCcsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsm2__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 157 | [hipsparseZcsrsm2_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsm2__analysis.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 158 | [hipsparseScsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 159 | [hipsparseDcsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 160 | [hipsparseCcsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 161 | [hipsparseZcsrsm2_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrsm2__solve.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 162 | [hipsparseSgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 163 | [hipsparseDgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 164 | [hipsparseCgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 165 | [hipsparseZgemmi](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgemmi.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 166 | [hipsparseXcsrgeamNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrgeamnnz.html "Interface documentation") | C binding, rank_0, rank_1 167 | [hipsparseScsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 168 | [hipsparseDcsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 169 | [hipsparseCcsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 170 | [hipsparseZcsrgeam](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrgeam.html "Interface documentation") | C binding, rank_0, rank_1 171 | [hipsparseScsrgeam2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrgeam2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 172 | [hipsparseDcsrgeam2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrgeam2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 173 | [hipsparseCcsrgeam2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrgeam2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 174 | [hipsparseZcsrgeam2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrgeam2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 175 | [hipsparseXcsrgeam2Nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrgeam2nnz.html "Interface documentation") | C binding, rank_0, rank_1 176 | [hipsparseScsrgeam2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrgeam2.html "Interface documentation") | C binding, rank_0, rank_1 177 | [hipsparseDcsrgeam2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrgeam2.html "Interface documentation") | C binding, rank_0, rank_1 178 | [hipsparseCcsrgeam2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrgeam2.html "Interface documentation") | C binding, rank_0, rank_1 179 | [hipsparseZcsrgeam2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrgeam2.html "Interface documentation") | C binding, rank_0, rank_1 180 | [hipsparseXcsrgemmNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrgemmnnz.html "Interface documentation") | C binding, rank_0, rank_1 181 | [hipsparseScsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 182 | [hipsparseDcsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 183 | [hipsparseCcsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 184 | [hipsparseZcsrgemm](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrgemm.html "Interface documentation") | C binding, rank_0, rank_1 185 | [hipsparseScsrgemm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrgemm2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 186 | [hipsparseDcsrgemm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrgemm2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 187 | [hipsparseCcsrgemm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrgemm2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 188 | [hipsparseZcsrgemm2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrgemm2__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 189 | [hipsparseXcsrgemm2Nnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrgemm2nnz.html "Interface documentation") | C binding, rank_0, rank_1 190 | [hipsparseScsrgemm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrgemm2.html "Interface documentation") | C binding, rank_0, rank_1 191 | [hipsparseDcsrgemm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrgemm2.html "Interface documentation") | C binding, rank_0, rank_1 192 | [hipsparseCcsrgemm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrgemm2.html "Interface documentation") | C binding, rank_0, rank_1 193 | [hipsparseZcsrgemm2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrgemm2.html "Interface documentation") | C binding, rank_0, rank_1 194 | [hipsparseXbsrilu02_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexbsrilu02__zeropivot.html "Interface documentation") | C binding 195 | [hipsparseSbsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrilu02__numericboost.html "Interface documentation") | C binding 196 | [hipsparseDbsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrilu02__numericboost.html "Interface documentation") | C binding 197 | [hipsparseCbsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrilu02__numericboost.html "Interface documentation") | C binding 198 | [hipsparseZbsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrilu02__numericboost.html "Interface documentation") | C binding 199 | [hipsparseSbsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 200 | [hipsparseDbsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 201 | [hipsparseCbsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 202 | [hipsparseZbsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 203 | [hipsparseSbsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 204 | [hipsparseDbsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 205 | [hipsparseCbsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 206 | [hipsparseZbsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 207 | [hipsparseSbsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 208 | [hipsparseDbsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 209 | [hipsparseCbsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 210 | [hipsparseZbsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 211 | [hipsparseXcsrilu02_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrilu02__zeropivot.html "Interface documentation") | C binding 212 | [hipsparseScsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrilu02__numericboost.html "Interface documentation") | C binding 213 | [hipsparseDcsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrilu02__numericboost.html "Interface documentation") | C binding 214 | [hipsparseCcsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrilu02__numericboost.html "Interface documentation") | C binding 215 | [hipsparseZcsrilu02_numericBoost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrilu02__numericboost.html "Interface documentation") | C binding 216 | [hipsparseScsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 217 | [hipsparseDcsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 218 | [hipsparseCcsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 219 | [hipsparseZcsrilu02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrilu02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 220 | [hipsparseScsrilu02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrilu02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 221 | [hipsparseDcsrilu02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrilu02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 222 | [hipsparseCcsrilu02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrilu02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 223 | [hipsparseZcsrilu02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrilu02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 224 | [hipsparseScsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 225 | [hipsparseDcsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 226 | [hipsparseCcsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 227 | [hipsparseZcsrilu02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrilu02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 228 | [hipsparseScsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 229 | [hipsparseDcsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 230 | [hipsparseCcsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 231 | [hipsparseZcsrilu02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrilu02.html "Interface documentation") | C binding, rank_0, rank_1 232 | [hipsparseXbsric02_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexbsric02__zeropivot.html "Interface documentation") | C binding 233 | [hipsparseSbsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 234 | [hipsparseDbsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 235 | [hipsparseCbsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 236 | [hipsparseZbsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 237 | [hipsparseSbsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 238 | [hipsparseDbsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 239 | [hipsparseCbsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 240 | [hipsparseZbsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 241 | [hipsparseSbsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsric02.html "Interface documentation") | C binding, rank_0, rank_1 242 | [hipsparseDbsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsric02.html "Interface documentation") | C binding, rank_0, rank_1 243 | [hipsparseCbsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsric02.html "Interface documentation") | C binding, rank_0, rank_1 244 | [hipsparseZbsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsric02.html "Interface documentation") | C binding, rank_0, rank_1 245 | [hipsparseXcsric02_zeroPivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsric02__zeropivot.html "Interface documentation") | C binding 246 | [hipsparseScsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 247 | [hipsparseDcsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 248 | [hipsparseCcsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 249 | [hipsparseZcsric02_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsric02__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 250 | [hipsparseScsric02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsric02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 251 | [hipsparseDcsric02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsric02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 252 | [hipsparseCcsric02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsric02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 253 | [hipsparseZcsric02_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsric02__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 254 | [hipsparseScsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 255 | [hipsparseDcsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 256 | [hipsparseCcsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 257 | [hipsparseZcsric02_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsric02__analysis.html "Interface documentation") | C binding, rank_0, rank_1 258 | [hipsparseScsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsric02.html "Interface documentation") | C binding, rank_0, rank_1 259 | [hipsparseDcsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsric02.html "Interface documentation") | C binding, rank_0, rank_1 260 | [hipsparseCcsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsric02.html "Interface documentation") | C binding, rank_0, rank_1 261 | [hipsparseZcsric02](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsric02.html "Interface documentation") | C binding, rank_0, rank_1 262 | [hipsparseSgtsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgtsv2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 263 | [hipsparseDgtsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgtsv2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 264 | [hipsparseCgtsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgtsv2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 265 | [hipsparseZgtsv2_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgtsv2__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 266 | [hipsparseSgtsv2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgtsv2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 267 | [hipsparseDgtsv2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgtsv2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 268 | [hipsparseCgtsv2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgtsv2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 269 | [hipsparseZgtsv2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgtsv2.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 270 | [hipsparseSgtsv2_nopivot_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgtsv2__nopivot__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 271 | [hipsparseDgtsv2_nopivot_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgtsv2__nopivot__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 272 | [hipsparseCgtsv2_nopivot_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgtsv2__nopivot__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 273 | [hipsparseZgtsv2_nopivot_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgtsv2__nopivot__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 274 | [hipsparseSgtsv2_nopivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgtsv2__nopivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 275 | [hipsparseDgtsv2_nopivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgtsv2__nopivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 276 | [hipsparseCgtsv2_nopivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgtsv2__nopivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 277 | [hipsparseZgtsv2_nopivot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgtsv2__nopivot.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 278 | [hipsparseSgtsv2StridedBatch_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgtsv2stridedbatch__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 279 | [hipsparseDgtsv2StridedBatch_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgtsv2stridedbatch__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 280 | [hipsparseCgtsv2StridedBatch_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgtsv2stridedbatch__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 281 | [hipsparseZgtsv2StridedBatch_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgtsv2stridedbatch__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 282 | [hipsparseSgtsv2StridedBatch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgtsv2stridedbatch.html "Interface documentation") | C binding, rank_0, rank_1 283 | [hipsparseDgtsv2StridedBatch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgtsv2stridedbatch.html "Interface documentation") | C binding, rank_0, rank_1 284 | [hipsparseCgtsv2StridedBatch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgtsv2stridedbatch.html "Interface documentation") | C binding, rank_0, rank_1 285 | [hipsparseZgtsv2StridedBatch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgtsv2stridedbatch.html "Interface documentation") | C binding, rank_0, rank_1 286 | [hipsparseSnnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesnnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 287 | [hipsparseDnnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 288 | [hipsparseCnnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecnnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 289 | [hipsparseZnnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseznnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 290 | [hipsparseSdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesdense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 291 | [hipsparseDdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseddense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 292 | [hipsparseCdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecdense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 293 | [hipsparseZdense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezdense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 294 | [hipsparseSpruneDense2csr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 295 | [hipsparseDpruneDense2csr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csr__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 296 | [hipsparseSpruneDense2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csr__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 297 | [hipsparseDpruneDense2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csr__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 298 | [hipsparseSpruneDense2csrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csrnnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 299 | [hipsparseDpruneDense2csrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csrnnz.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 300 | [hipsparseSpruneDense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 301 | [hipsparseDpruneDense2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csr.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 302 | [hipsparseSpruneDense2csrByPercentage_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csrbypercentage__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 303 | [hipsparseDpruneDense2csrByPercentage_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csrbypercentage__buffersize.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 304 | [hipsparseSpruneDense2csrByPercentage_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csrbypercentage__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 305 | [hipsparseDpruneDense2csrByPercentage_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csrbypercentage__buffersizeext.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 306 | [hipsparseSpruneDense2csrNnzByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csrnnzbypercentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 307 | [hipsparseDpruneDense2csrNnzByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csrnnzbypercentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 308 | [hipsparseSpruneDense2csrByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunedense2csrbypercentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 309 | [hipsparseDpruneDense2csrByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunedense2csrbypercentage.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 310 | [hipsparseSdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesdense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 311 | [hipsparseDdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseddense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 312 | [hipsparseCdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecdense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 313 | [hipsparseZdense2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezdense2csc.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 314 | [hipsparseScsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 315 | [hipsparseDcsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 316 | [hipsparseCcsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 317 | [hipsparseZcsr2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 318 | [hipsparseScsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 319 | [hipsparseDcsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 320 | [hipsparseCcsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 321 | [hipsparseZcsc2dense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsc2dense.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 322 | [hipsparseXcsr2bsrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsr2bsrnnz.html "Interface documentation") | C binding, rank_0, rank_1 323 | [hipsparseSnnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesnnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 324 | [hipsparseDnnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 325 | [hipsparseCnnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecnnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 326 | [hipsparseZnnz_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseznnz__compress.html "Interface documentation") | C binding, rank_0, rank_1 327 | [hipsparseXcsr2coo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsr2coo.html "Interface documentation") | C binding, rank_0, rank_1 328 | [hipsparseScsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 329 | [hipsparseDcsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 330 | [hipsparseCcsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 331 | [hipsparseZcsr2csc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2csc.html "Interface documentation") | C binding, rank_0, rank_1 332 | [hipsparseScsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 333 | [hipsparseDcsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 334 | [hipsparseCcsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 335 | [hipsparseZcsr2hyb](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2hyb.html "Interface documentation") | C binding, rank_0, rank_1 336 | [hipsparseSgebsr2gebsc_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgebsr2gebsc__buffersize.html "Interface documentation") | C binding 337 | [hipsparseDgebsr2gebsc_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgebsr2gebsc__buffersize.html "Interface documentation") | C binding 338 | [hipsparseCgebsr2gebsc_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgebsr2gebsc__buffersize.html "Interface documentation") | C binding 339 | [hipsparseZgebsr2gebsc_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgebsr2gebsc__buffersize.html "Interface documentation") | C binding 340 | [hipsparseSgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgebsr2gebsc.html "Interface documentation") | C binding 341 | [hipsparseDgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgebsr2gebsc.html "Interface documentation") | C binding 342 | [hipsparseCgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgebsr2gebsc.html "Interface documentation") | C binding 343 | [hipsparseZgebsr2gebsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgebsr2gebsc.html "Interface documentation") | C binding 344 | [hipsparseScsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 345 | [hipsparseDcsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 346 | [hipsparseCcsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 347 | [hipsparseZcsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 348 | [hipsparseXcsr2gebsrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsr2gebsrnnz.html "Interface documentation") | C binding, rank_0, rank_1 349 | [hipsparseScsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 350 | [hipsparseDcsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 351 | [hipsparseCcsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 352 | [hipsparseZcsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 353 | [hipsparseScsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 354 | [hipsparseDcsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 355 | [hipsparseCcsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 356 | [hipsparseZcsr2bsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2bsr.html "Interface documentation") | C binding, rank_0, rank_1 357 | [hipsparseSbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 358 | [hipsparseDbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 359 | [hipsparseCbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 360 | [hipsparseZbsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezbsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 361 | [hipsparseSgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 362 | [hipsparseDgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 363 | [hipsparseCgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 364 | [hipsparseZgebsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgebsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 365 | [hipsparseScsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 366 | [hipsparseDcsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 367 | [hipsparseCcsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 368 | [hipsparseZcsr2csr_compress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2csr__compress.html "Interface documentation") | C binding, rank_0, rank_1 369 | [hipsparseSpruneCsr2csr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 370 | [hipsparseDpruneCsr2csr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 371 | [hipsparseSpruneCsr2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csr__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 372 | [hipsparseDpruneCsr2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csr__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 373 | [hipsparseSpruneCsr2csrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csrnnz.html "Interface documentation") | C binding, rank_0, rank_1 374 | [hipsparseDpruneCsr2csrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csrnnz.html "Interface documentation") | C binding, rank_0, rank_1 375 | [hipsparseSpruneCsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 376 | [hipsparseDpruneCsr2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csr.html "Interface documentation") | C binding, rank_0, rank_1 377 | [hipsparseSpruneCsr2csrByPercentage_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csrbypercentage__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 378 | [hipsparseDpruneCsr2csrByPercentage_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csrbypercentage__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 379 | [hipsparseSpruneCsr2csrByPercentage_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csrbypercentage__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 380 | [hipsparseDpruneCsr2csrByPercentage_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csrbypercentage__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 381 | [hipsparseSpruneCsr2csrNnzByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csrnnzbypercentage.html "Interface documentation") | C binding, rank_0, rank_1 382 | [hipsparseDpruneCsr2csrNnzByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csrnnzbypercentage.html "Interface documentation") | C binding, rank_0, rank_1 383 | [hipsparseSpruneCsr2csrByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesprunecsr2csrbypercentage.html "Interface documentation") | C binding, rank_0, rank_1 384 | [hipsparseDpruneCsr2csrByPercentage](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedprunecsr2csrbypercentage.html "Interface documentation") | C binding, rank_0, rank_1 385 | [hipsparseShyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseshyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 386 | [hipsparseDhyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedhyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 387 | [hipsparseChyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsechyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 388 | [hipsparseZhyb2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezhyb2csr.html "Interface documentation") | C binding, rank_0, rank_1 389 | [hipsparseXcoo2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcoo2csr.html "Interface documentation") | C binding, rank_0, rank_1 390 | [hipsparseCreateIdentityPermutation](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreateidentitypermutation.html "Interface documentation") | C binding, rank_0, rank_1 391 | [hipsparseXcsrsort_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrsort__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 392 | [hipsparseXcsrsort](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcsrsort.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 393 | [hipsparseXcscsort_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcscsort__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 394 | [hipsparseXcscsort](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcscsort.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 395 | [hipsparseXcoosort_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcoosort__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 396 | [hipsparseXcoosortByRow](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcoosortbyrow.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 397 | [hipsparseXcoosortByColumn](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexcoosortbycolumn.html "Interface documentation") | C binding, full_rank, rank_0, rank_1 398 | [hipsparseSgebsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgebsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 399 | [hipsparseDgebsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgebsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 400 | [hipsparseCgebsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgebsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 401 | [hipsparseZgebsr2gebsr_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgebsr2gebsr__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 402 | [hipsparseXgebsr2gebsrNnz](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsexgebsr2gebsrnnz.html "Interface documentation") | C binding, rank_0, rank_1 403 | [hipsparseSgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesgebsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 404 | [hipsparseDgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedgebsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 405 | [hipsparseCgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecgebsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 406 | [hipsparseZgebsr2gebsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezgebsr2gebsr.html "Interface documentation") | C binding, rank_0, rank_1 407 | [hipsparseScsru2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsru2csr__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 408 | [hipsparseDcsru2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsru2csr__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 409 | [hipsparseCcsru2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsru2csr__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 410 | [hipsparseZcsru2csr_bufferSizeExt](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsru2csr__buffersizeext.html "Interface documentation") | C binding, rank_0, rank_1 411 | [hipsparseScsru2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsru2csr.html "Interface documentation") | C binding, rank_0, rank_1 412 | [hipsparseDcsru2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsru2csr.html "Interface documentation") | C binding, rank_0, rank_1 413 | [hipsparseCcsru2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsru2csr.html "Interface documentation") | C binding, rank_0, rank_1 414 | [hipsparseZcsru2csr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsru2csr.html "Interface documentation") | C binding, rank_0, rank_1 415 | [hipsparseScsr2csru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsr2csru.html "Interface documentation") | C binding, rank_0, rank_1 416 | [hipsparseDcsr2csru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsr2csru.html "Interface documentation") | C binding, rank_0, rank_1 417 | [hipsparseCcsr2csru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsr2csru.html "Interface documentation") | C binding, rank_0, rank_1 418 | [hipsparseZcsr2csru](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsr2csru.html "Interface documentation") | C binding, rank_0, rank_1 419 | [hipsparseScsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 420 | [hipsparseDcsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedcsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 421 | [hipsparseCcsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseccsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 422 | [hipsparseZcsrcolor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsezcsrcolor.html "Interface documentation") | C binding, rank_0, rank_1 423 | [hipsparseCreateSpVec](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatespvec.html "Interface documentation") | C binding 424 | [hipsparseDestroySpVec](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroyspvec.html "Interface documentation") | C binding 425 | [hipsparseSpVecGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespvecget.html "Interface documentation") | C binding 426 | [hipsparseSpVecGetIndexBase](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespvecgetindexbase.html "Interface documentation") | C binding 427 | [hipsparseSpVecGetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespvecgetvalues.html "Interface documentation") | C binding 428 | [hipsparseSpVecSetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespvecsetvalues.html "Interface documentation") | C binding 429 | [hipsparseCreateCoo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecoo.html "Interface documentation") | C binding 430 | [hipsparseCreateCooAoS](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecooaos.html "Interface documentation") | C binding 431 | [hipsparseCreateCsr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsr.html "Interface documentation") | C binding 432 | [hipsparseCreateCsc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatecsc.html "Interface documentation") | C binding 433 | [hipsparseCreateBlockedEll](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreateblockedell.html "Interface documentation") | C binding 434 | [hipsparseDestroySpMat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroyspmat.html "Interface documentation") | C binding 435 | [hipsparseCooGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecooget.html "Interface documentation") | C binding 436 | [hipsparseCooAoSGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecooaosget.html "Interface documentation") | C binding 437 | [hipsparseCsrGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecsrget.html "Interface documentation") | C binding 438 | [hipsparseBlockedEllGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseblockedellget.html "Interface documentation") | C binding 439 | [hipsparseCsrSetPointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecsrsetpointers.html "Interface documentation") | C binding 440 | [hipsparseCscSetPointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecscsetpointers.html "Interface documentation") | C binding 441 | [hipsparseCooSetPointers](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecoosetpointers.html "Interface documentation") | C binding 442 | [hipsparseSpMatGetSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatgetsize.html "Interface documentation") | C binding 443 | [hipsparseSpMatGetFormat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatgetformat.html "Interface documentation") | C binding 444 | [hipsparseSpMatGetIndexBase](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatgetindexbase.html "Interface documentation") | C binding 445 | [hipsparseSpMatGetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatgetvalues.html "Interface documentation") | C binding 446 | [hipsparseSpMatSetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatsetvalues.html "Interface documentation") | C binding 447 | [hipsparseCreateDnVec](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatednvec.html "Interface documentation") | C binding 448 | [hipsparseDestroyDnVec](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroydnvec.html "Interface documentation") | C binding 449 | [hipsparseDnVecGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednvecget.html "Interface documentation") | C binding 450 | [hipsparseDnVecGetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednvecgetvalues.html "Interface documentation") | C binding 451 | [hipsparseDnVecSetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednvecsetvalues.html "Interface documentation") | C binding 452 | [hipsparseCreateDnMat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsecreatednmat.html "Interface documentation") | C binding 453 | [hipsparseDestroyDnMat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedestroydnmat.html "Interface documentation") | C binding 454 | [hipsparseDnMatGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednmatget.html "Interface documentation") | C binding 455 | [hipsparseDnMatGetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednmatgetvalues.html "Interface documentation") | C binding 456 | [hipsparseDnMatSetValues](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsednmatsetvalues.html "Interface documentation") | C binding 457 | [hipsparseSpMatGetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatgetattribute.html "Interface documentation") | C binding 458 | [hipsparseSpMatSetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmatsetattribute.html "Interface documentation") | C binding 459 | [hipsparseAxpby](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparseaxpby.html "Interface documentation") | C binding 460 | [hipsparseGather](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsegather.html "Interface documentation") | C binding 461 | [hipsparseScatter](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsescatter.html "Interface documentation") | C binding 462 | [hipsparseRot](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparserot.html "Interface documentation") | C binding 463 | [hipsparseSparseToDense_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesparsetodense__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 464 | [hipsparseSparseToDense](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesparsetodense.html "Interface documentation") | C binding 465 | [hipsparseDenseToSparse_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedensetosparse__buffersize.html "Interface documentation") | C binding, rank_0, rank_1 466 | [hipsparseDenseToSparse_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedensetosparse__analysis.html "Interface documentation") | C binding 467 | [hipsparseDenseToSparse_convert](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsedensetosparse__convert.html "Interface documentation") | C binding 468 | [hipsparseSpVV_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespvv__buffersize.html "Interface documentation") | C binding 469 | [hipsparseSpVV](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespvv.html "Interface documentation") | C binding 470 | [hipsparseSpMV_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmv__buffersize.html "Interface documentation") | C binding 471 | [hipsparseSpMV](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmv.html "Interface documentation") | C binding 472 | [hipsparseSpMM_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmm__buffersize.html "Interface documentation") | C binding 473 | [hipsparseSpMM_preprocess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmm__preprocess.html "Interface documentation") | C binding 474 | [hipsparseSpMM](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespmm.html "Interface documentation") | C binding 475 | [hipsparseSpGEMM_createDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespgemm__createdescr.html "Interface documentation") | C binding 476 | [hipsparseSpGEMM_destroyDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespgemm__destroydescr.html "Interface documentation") | C binding 477 | [hipsparseSpGEMM_workEstimation](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespgemm__workestimation.html "Interface documentation") | C binding 478 | [hipsparseSpGEMM_compute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespgemm__compute.html "Interface documentation") | C binding 479 | [hipsparseSpGEMM_copy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespgemm__copy.html "Interface documentation") | C binding 480 | [hipsparseSDDMM](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesddmm.html "Interface documentation") | C binding 481 | [hipsparseSDDMM_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesddmm__buffersize.html "Interface documentation") | C binding 482 | [hipsparseSDDMM_preprocess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsesddmm__preprocess.html "Interface documentation") | C binding 483 | [hipsparseSpSV_createDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsv__createdescr.html "Interface documentation") | C binding 484 | [hipsparseSpSV_destroyDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsv__destroydescr.html "Interface documentation") | C binding 485 | [hipsparseSpSV_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsv__buffersize.html "Interface documentation") | C binding 486 | [hipsparseSpSV_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsv__analysis.html "Interface documentation") | C binding 487 | [hipsparseSpSV_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsv__solve.html "Interface documentation") | C binding 488 | [hipsparseSpSM_createDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsm__createdescr.html "Interface documentation") | C binding 489 | [hipsparseSpSM_destroyDescr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsm__destroydescr.html "Interface documentation") | C binding 490 | [hipsparseSpSM_bufferSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsm__buffersize.html "Interface documentation") | C binding 491 | [hipsparseSpSM_analysis](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsm__analysis.html "Interface documentation") | C binding 492 | [hipsparseSpSM_solve](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipsparse_1_1hipsparsespsm__solve.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/supported_api_hiprand.md0000664000175000017500000001014615207260635024044 0ustar alastairalastair# hipRAND API Support \# | API Name | Variants ----|---------------|--------- 1 | [hiprandCreateGenerator](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandcreategenerator.html "Interface documentation") | C binding 2 | [hiprandCreateGeneratorHost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandcreategeneratorhost.html "Interface documentation") | C binding 3 | [hiprandDestroyGenerator](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hipranddestroygenerator.html "Interface documentation") | C binding 4 | [hiprandGenerate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgenerate.html "Interface documentation") | C binding 5 | [hiprandGenerateChar](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgeneratechar.html "Interface documentation") | C binding 6 | [hiprandGenerateShort](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgenerateshort.html "Interface documentation") | C binding 7 | [hiprandGenerateUniform](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgenerateuniform.html "Interface documentation") | C binding 8 | [hiprandGenerateUniformDouble](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgenerateuniformdouble.html "Interface documentation") | C binding 9 | [hiprandGenerateNormal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgeneratenormal.html "Interface documentation") | C binding 10 | [hiprandGenerateNormalDouble](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgeneratenormaldouble.html "Interface documentation") | C binding 11 | [hiprandGenerateLogNormal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgeneratelognormal.html "Interface documentation") | C binding 12 | [hiprandGenerateLogNormalDouble](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgeneratelognormaldouble.html "Interface documentation") | C binding 13 | [hiprandGeneratePoisson](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgeneratepoisson.html "Interface documentation") | C binding 14 | [hiprandGenerateSeeds](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgenerateseeds.html "Interface documentation") | C binding 15 | [hiprandSetStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandsetstream.html "Interface documentation") | C binding 16 | [hiprandSetPseudoRandomGeneratorSeed](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandsetpseudorandomgeneratorseed.html "Interface documentation") | C binding 17 | [hiprandSetGeneratorOffset](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandsetgeneratoroffset.html "Interface documentation") | C binding 18 | [hiprandSetQuasiRandomGeneratorDimensions](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandsetquasirandomgeneratordimensions.html "Interface documentation") | C binding 19 | [hiprandGetVersion](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandgetversion.html "Interface documentation") | C binding 20 | [hiprandCreatePoissonDistribution](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hiprandcreatepoissondistribution.html "Interface documentation") | C binding 21 | [hiprandDestroyDistribution](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hiprand_1_1hipranddestroydistribution.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/input/supported_api_hip.md0000664000175000017500000015303415207260635023203 0ustar alastairalastair# HIP API Support \# | API Name | Variants ----|---------------|--------- 1 | [hipMalloc](#hipfort_hipmalloc::hipmalloc "Interface documentation") | C binding 2 | [hipMallocManaged](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmalloc_1_1hipmallocmanaged.html "Interface documentation") | C binding 3 | [hipHostMalloc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmalloc_1_1hiphostmalloc.html "Interface documentation") | C binding 4 | [hipFree](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmalloc_1_1hipfree.html "Interface documentation") | C binding 5 | [hipHostFree](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmalloc_1_1hiphostfree.html "Interface documentation") | C binding 1 | [hipMemcpy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmemcpy_1_1hipmemcpy.html "Interface documentation") | C binding 2 | [hipMemcpyAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmemcpy_1_1hipmemcpyasync.html "Interface documentation") | C binding 3 | [hipMemcpy2D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmemcpy_1_1hipmemcpy2d.html "Interface documentation") | C binding 4 | [hipMemcpy2DAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__hipmemcpy_1_1hipmemcpy2dasync.html "Interface documentation") | C binding 1 | [hipGetDeviceProperties](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort__auxiliary_1_1hipgetdeviceproperties.html "Interface documentation") | C binding 1 | [hipInit](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipinit.html "Interface documentation") | C binding 2 | [hipDriverGetVersion](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdrivergetversion.html "Interface documentation") | C binding 3 | [hipRuntimeGetVersion](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipruntimegetversion.html "Interface documentation") | C binding 4 | [hipDeviceGet](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceget.html "Interface documentation") | C binding 5 | [hipDeviceComputeCapability](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicecomputecapability.html "Interface documentation") | C binding 6 | [hipDeviceGetName](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetname.html "Interface documentation") | C binding 7 | [hipDeviceGetP2PAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetp2pattribute.html "Interface documentation") | C binding 8 | [hipDeviceGetPCIBusId](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetpcibusid.html "Interface documentation") | C binding 9 | [hipDeviceGetByPCIBusId](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetbypcibusid.html "Interface documentation") | C binding 10 | [hipDeviceTotalMem](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicetotalmem.html "Interface documentation") | C binding 11 | [hipDeviceSynchronize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicesynchronize.html "Interface documentation") | C binding 12 | [hipDeviceReset](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicereset.html "Interface documentation") | C binding 13 | [hipSetDevice](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipsetdevice.html "Interface documentation") | C binding 14 | [hipGetDevice](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetdevice.html "Interface documentation") | C binding 15 | [hipGetDeviceCount](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetdevicecount.html "Interface documentation") | C binding 16 | [hipDeviceGetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetattribute.html "Interface documentation") | C binding 17 | [hipDeviceSetCacheConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicesetcacheconfig.html "Interface documentation") | C binding 18 | [hipDeviceGetCacheConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetcacheconfig.html "Interface documentation") | C binding 19 | [hipDeviceGetLimit](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetlimit.html "Interface documentation") | C binding 20 | [hipDeviceGetSharedMemConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetsharedmemconfig.html "Interface documentation") | C binding 21 | [hipGetDeviceFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetdeviceflags.html "Interface documentation") | C binding 22 | [hipDeviceSetSharedMemConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicesetsharedmemconfig.html "Interface documentation") | C binding 23 | [hipSetDeviceFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipsetdeviceflags.html "Interface documentation") | C binding 24 | [hipChooseDevice](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipchoosedevice.html "Interface documentation") | C binding 25 | [hipExtGetLinkTypeAndHopCount](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipextgetlinktypeandhopcount.html "Interface documentation") | C binding 26 | [hipIpcGetMemHandle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipipcgetmemhandle.html "Interface documentation") | C binding 27 | [hipIpcOpenMemHandle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipipcopenmemhandle.html "Interface documentation") | C binding 28 | [hipIpcCloseMemHandle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipipcclosememhandle.html "Interface documentation") | C binding 29 | [hipIpcGetEventHandle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipipcgeteventhandle.html "Interface documentation") | C binding 30 | [hipIpcOpenEventHandle](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipipcopeneventhandle.html "Interface documentation") | C binding 31 | [hipFuncSetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfuncsetattribute.html "Interface documentation") | C binding 32 | [hipFuncSetCacheConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfuncsetcacheconfig.html "Interface documentation") | C binding 33 | [hipFuncSetSharedMemConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfuncsetsharedmemconfig.html "Interface documentation") | C binding 34 | [hipGetLastError](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetlasterror.html "Interface documentation") | C binding 35 | [hipPeekAtLastError](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hippeekatlasterror.html "Interface documentation") | C binding 36 | [hipStreamCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamcreate.html "Interface documentation") | C binding 37 | [hipStreamCreateWithFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamcreatewithflags.html "Interface documentation") | C binding 38 | [hipStreamCreateWithPriority](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamcreatewithpriority.html "Interface documentation") | C binding 39 | [hipDeviceGetStreamPriorityRange](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicegetstreampriorityrange.html "Interface documentation") | C binding 40 | [hipStreamDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamdestroy.html "Interface documentation") | C binding 41 | [hipStreamQuery](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamquery.html "Interface documentation") | C binding 42 | [hipStreamSynchronize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamsynchronize.html "Interface documentation") | C binding 43 | [hipStreamWaitEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamwaitevent.html "Interface documentation") | C binding 44 | [hipStreamGetFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamgetflags.html "Interface documentation") | C binding 45 | [hipStreamGetPriority](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamgetpriority.html "Interface documentation") | C binding 46 | [hipExtStreamCreateWithCUMask](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipextstreamcreatewithcumask.html "Interface documentation") | C binding 47 | [hipExtStreamGetCUMask](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipextstreamgetcumask.html "Interface documentation") | C binding 48 | [hipStreamAddCallback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamaddcallback.html "Interface documentation") | C binding 49 | [hipStreamWriteValue32](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamwritevalue32.html "Interface documentation") | C binding 50 | [hipStreamWriteValue64](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamwritevalue64.html "Interface documentation") | C binding 51 | [hipEventCreateWithFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventcreatewithflags.html "Interface documentation") | C binding 52 | [hipEventCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventcreate.html "Interface documentation") | C binding 53 | [hipEventRecord](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventrecord.html "Interface documentation") | C binding 54 | [hipEventDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventdestroy.html "Interface documentation") | C binding 55 | [hipEventSynchronize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventsynchronize.html "Interface documentation") | C binding 56 | [hipEventElapsedTime](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventelapsedtime.html "Interface documentation") | C binding 57 | [hipEventQuery](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipeventquery.html "Interface documentation") | C binding 58 | [hipPointerGetAttributes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hippointergetattributes.html "Interface documentation") | C binding 59 | [hipPointerGetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hippointergetattribute.html "Interface documentation") | C binding 60 | [hipDrvPointerGetAttributes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdrvpointergetattributes.html "Interface documentation") | C binding 61 | [hipSignalExternalSemaphoresAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipsignalexternalsemaphoresasync.html "Interface documentation") | C binding 62 | [hipWaitExternalSemaphoresAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipwaitexternalsemaphoresasync.html "Interface documentation") | C binding 63 | [hipDestroyExternalSemaphore](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdestroyexternalsemaphore.html "Interface documentation") | C binding 64 | [hipExternalMemoryGetMappedBuffer](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipexternalmemorygetmappedbuffer.html "Interface documentation") | C binding 65 | [hipDestroyExternalMemory](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdestroyexternalmemory.html "Interface documentation") | C binding 66 | [hipExtMallocWithFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipextmallocwithflags.html "Interface documentation") | C binding 67 | [hipMallocHost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmallochost.html "Interface documentation") | C binding 68 | [hipMemAllocHost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemallochost.html "Interface documentation") | C binding 69 | [hipMemPrefetchAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemprefetchasync.html "Interface documentation") | C binding 70 | [hipMemAdvise](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemadvise.html "Interface documentation") | C binding 71 | [hipMemRangeGetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemrangegetattribute.html "Interface documentation") | C binding 72 | [hipMemRangeGetAttributes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemrangegetattributes.html "Interface documentation") | C binding 73 | [hipStreamAttachMemAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamattachmemasync.html "Interface documentation") | C binding 74 | [hipHostAlloc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiphostalloc.html "Interface documentation") | C binding 75 | [hipMallocPitch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmallocpitch.html "Interface documentation") | C binding 76 | [hipMemAllocPitch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemallocpitch.html "Interface documentation") | C binding 77 | [hipFreeHost](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfreehost.html "Interface documentation") | C binding 78 | [hipMemcpyWithStream](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpywithstream.html "Interface documentation") | C binding 79 | [hipMemcpyHtoD](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyhtod.html "Interface documentation") | C binding 80 | [hipMemcpyDtoH](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpydtoh.html "Interface documentation") | C binding 81 | [hipMemcpyDtoD](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpydtod.html "Interface documentation") | C binding 82 | [hipMemcpyHtoDAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyhtodasync.html "Interface documentation") | C binding 83 | [hipMemcpyDtoHAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpydtohasync.html "Interface documentation") | C binding 84 | [hipMemcpyDtoDAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpydtodasync.html "Interface documentation") | C binding 85 | [hipModuleGetGlobal](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmodulegetglobal.html "Interface documentation") | C binding 86 | [hipGetSymbolAddress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetsymboladdress.html "Interface documentation") | C binding 87 | [hipGetSymbolSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetsymbolsize.html "Interface documentation") | C binding 88 | [hipMemcpyToSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpytosymbol.html "Interface documentation") | C binding 89 | [hipMemcpyToSymbolAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpytosymbolasync.html "Interface documentation") | C binding 90 | [hipMemcpyFromSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyfromsymbol.html "Interface documentation") | C binding 91 | [hipMemcpyFromSymbolAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyfromsymbolasync.html "Interface documentation") | C binding 92 | [hipMemset](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemset.html "Interface documentation") | C binding 93 | [hipMemsetD8](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetd8.html "Interface documentation") | C binding 94 | [hipMemsetD8Async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetd8async.html "Interface documentation") | C binding 95 | [hipMemsetD16](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetd16.html "Interface documentation") | C binding 96 | [hipMemsetD16Async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetd16async.html "Interface documentation") | C binding 97 | [hipMemsetD32](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetd32.html "Interface documentation") | C binding 98 | [hipMemsetAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetasync.html "Interface documentation") | C binding 99 | [hipMemsetD32Async](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemsetd32async.html "Interface documentation") | C binding 100 | [hipMemset2D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemset2d.html "Interface documentation") | C binding 101 | [hipMemset2DAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemset2dasync.html "Interface documentation") | C binding 102 | [hipMemset3D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemset3d.html "Interface documentation") | C binding 103 | [hipMemset3DAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemset3dasync.html "Interface documentation") | C binding 104 | [hipMemGetInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemgetinfo.html "Interface documentation") | C binding 105 | [hipMemPtrGetInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemptrgetinfo.html "Interface documentation") | C binding 106 | [hipMallocArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmallocarray.html "Interface documentation") | C binding 107 | [hipArrayCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiparraycreate.html "Interface documentation") | C binding 108 | [hipArrayDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiparraydestroy.html "Interface documentation") | C binding 109 | [hipArray3DCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiparray3dcreate.html "Interface documentation") | C binding 110 | [hipMalloc3D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmalloc3d.html "Interface documentation") | C binding 111 | [hipFreeArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfreearray.html "Interface documentation") | C binding 112 | [hipFreeMipmappedArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfreemipmappedarray.html "Interface documentation") | C binding 113 | [hipMalloc3DArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmalloc3darray.html "Interface documentation") | C binding 114 | [hipMallocMipmappedArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmallocmipmappedarray.html "Interface documentation") | C binding 115 | [hipGetMipmappedArrayLevel](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetmipmappedarraylevel.html "Interface documentation") | C binding 116 | [hipMemcpyParam2D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyparam2d.html "Interface documentation") | C binding 117 | [hipMemcpyParam2DAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyparam2dasync.html "Interface documentation") | C binding 118 | [hipMemcpy2DToArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpy2dtoarray.html "Interface documentation") | C binding 119 | [hipMemcpy2DToArrayAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpy2dtoarrayasync.html "Interface documentation") | C binding 120 | [hipMemcpyToArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpytoarray.html "Interface documentation") | C binding 121 | [hipMemcpyFromArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyfromarray.html "Interface documentation") | C binding 122 | [hipMemcpy2DFromArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpy2dfromarray.html "Interface documentation") | C binding 123 | [hipMemcpy2DFromArrayAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpy2dfromarrayasync.html "Interface documentation") | C binding 124 | [hipMemcpyAtoH](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyatoh.html "Interface documentation") | C binding 125 | [hipMemcpyHtoA](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpyhtoa.html "Interface documentation") | C binding 126 | [hipMemcpy3D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpy3d.html "Interface documentation") | C binding 127 | [hipMemcpy3DAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpy3dasync.html "Interface documentation") | C binding 128 | [hipDrvMemcpy3D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdrvmemcpy3d.html "Interface documentation") | C binding 129 | [hipDrvMemcpy3DAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdrvmemcpy3dasync.html "Interface documentation") | C binding 130 | [hipDeviceCanAccessPeer](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicecanaccesspeer.html "Interface documentation") | C binding 131 | [hipDeviceEnablePeerAccess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceenablepeeraccess.html "Interface documentation") | C binding 132 | [hipDeviceDisablePeerAccess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdevicedisablepeeraccess.html "Interface documentation") | C binding 133 | [hipMemGetAddressRange](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemgetaddressrange.html "Interface documentation") | C binding 134 | [hipMemcpyPeer](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpypeer.html "Interface documentation") | C binding 135 | [hipMemcpyPeerAsync](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmemcpypeerasync.html "Interface documentation") | C binding 136 | [hipCtxCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxcreate.html "Interface documentation") | C binding 137 | [hipCtxDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxdestroy.html "Interface documentation") | C binding 138 | [hipCtxPopCurrent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxpopcurrent.html "Interface documentation") | C binding 139 | [hipCtxPushCurrent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxpushcurrent.html "Interface documentation") | C binding 140 | [hipCtxSetCurrent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxsetcurrent.html "Interface documentation") | C binding 141 | [hipCtxGetCurrent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxgetcurrent.html "Interface documentation") | C binding 142 | [hipCtxGetDevice](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxgetdevice.html "Interface documentation") | C binding 143 | [hipCtxGetApiVersion](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxgetapiversion.html "Interface documentation") | C binding 144 | [hipCtxGetCacheConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxgetcacheconfig.html "Interface documentation") | C binding 145 | [hipCtxSetCacheConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxsetcacheconfig.html "Interface documentation") | C binding 146 | [hipCtxSetSharedMemConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxsetsharedmemconfig.html "Interface documentation") | C binding 147 | [hipCtxGetSharedMemConfig](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxgetsharedmemconfig.html "Interface documentation") | C binding 148 | [hipCtxSynchronize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxsynchronize.html "Interface documentation") | C binding 149 | [hipCtxGetFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxgetflags.html "Interface documentation") | C binding 150 | [hipCtxEnablePeerAccess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxenablepeeraccess.html "Interface documentation") | C binding 151 | [hipCtxDisablePeerAccess](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipctxdisablepeeraccess.html "Interface documentation") | C binding 152 | [hipDevicePrimaryCtxGetState](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceprimaryctxgetstate.html "Interface documentation") | C binding 153 | [hipDevicePrimaryCtxRelease](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceprimaryctxrelease.html "Interface documentation") | C binding 154 | [hipDevicePrimaryCtxRetain](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceprimaryctxretain.html "Interface documentation") | C binding 155 | [hipDevicePrimaryCtxReset](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceprimaryctxreset.html "Interface documentation") | C binding 156 | [hipDevicePrimaryCtxSetFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdeviceprimaryctxsetflags.html "Interface documentation") | C binding 157 | [hipModuleLoad](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleload.html "Interface documentation") | C binding 158 | [hipModuleUnload](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleunload.html "Interface documentation") | C binding 159 | [hipModuleGetFunction](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmodulegetfunction.html "Interface documentation") | C binding 160 | [hipFuncGetAttributes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfuncgetattributes.html "Interface documentation") | C binding 161 | [hipFuncGetAttribute](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipfuncgetattribute.html "Interface documentation") | C binding 162 | [hipModuleGetTexRef](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmodulegettexref.html "Interface documentation") | C binding 163 | [hipModuleLoadData](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleloaddata.html "Interface documentation") | C binding 164 | [hipModuleLoadDataEx](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleloaddataex.html "Interface documentation") | C binding 165 | [hipModuleLaunchKernel](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmodulelaunchkernel.html "Interface documentation") | C binding 166 | [hipLaunchCooperativeKernel](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiplaunchcooperativekernel.html "Interface documentation") | C binding 167 | [hipLaunchCooperativeKernelMultiDevice](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiplaunchcooperativekernelmultidevice.html "Interface documentation") | C binding 168 | [hipExtLaunchMultiKernelMultiDevice](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipextlaunchmultikernelmultidevice.html "Interface documentation") | C binding 169 | [hipModuleOccupancyMaxPotentialBlockSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleoccupancymaxpotentialblocksize.html "Interface documentation") | C binding 170 | [hipModuleOccupancyMaxPotentialBlockSizeWithFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleoccupancymaxpotentialblocksizewithflags.html "Interface documentation") | C binding 171 | [hipModuleOccupancyMaxActiveBlocksPerMultiprocessor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmoduleoccupancymaxactiveblockspermultiprocessor.html "Interface documentation") | C binding 172 | [hipOccupancyMaxActiveBlocksPerMultiprocessor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipoccupancymaxactiveblockspermultiprocessor.html "Interface documentation") | C binding 173 | [hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipoccupancymaxactiveblockspermultiprocessorwithflags.html "Interface documentation") | C binding 174 | [hipOccupancyMaxPotentialBlockSize](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipoccupancymaxpotentialblocksize.html "Interface documentation") | C binding 175 | [hipProfilerStart](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipprofilerstart.html "Interface documentation") | C binding 176 | [hipProfilerStop](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipprofilerstop.html "Interface documentation") | C binding 177 | [hipConfigureCall](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipconfigurecall.html "Interface documentation") | C binding 178 | [hipSetupArgument](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipsetupargument.html "Interface documentation") | C binding 179 | [hipLaunchByPtr](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiplaunchbyptr.html "Interface documentation") | C binding 180 | [hipLaunchKernel](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiplaunchkernel.html "Interface documentation") | C binding 181 | [hipDrvMemcpy2DUnaligned](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdrvmemcpy2dunaligned.html "Interface documentation") | C binding 182 | [hipExtLaunchKernel](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipextlaunchkernel.html "Interface documentation") | C binding 183 | [hipBindTexture](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipbindtexture.html "Interface documentation") | C binding 184 | [hipBindTexture2D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipbindtexture2d.html "Interface documentation") | C binding 185 | [hipBindTextureToArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipbindtexturetoarray.html "Interface documentation") | C binding 186 | [hipGetTextureAlignmentOffset](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgettexturealignmentoffset.html "Interface documentation") | C binding 187 | [hipUnbindTexture](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipunbindtexture.html "Interface documentation") | C binding 188 | [hipTexRefGetAddress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetaddress.html "Interface documentation") | C binding 189 | [hipTexRefGetAddressMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetaddressmode.html "Interface documentation") | C binding 190 | [hipTexRefGetFilterMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetfiltermode.html "Interface documentation") | C binding 191 | [hipTexRefGetFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetflags.html "Interface documentation") | C binding 192 | [hipTexRefGetFormat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetformat.html "Interface documentation") | C binding 193 | [hipTexRefGetMaxAnisotropy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetmaxanisotropy.html "Interface documentation") | C binding 194 | [hipTexRefGetMipmapFilterMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetmipmapfiltermode.html "Interface documentation") | C binding 195 | [hipTexRefGetMipmapLevelBias](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetmipmaplevelbias.html "Interface documentation") | C binding 196 | [hipTexRefGetMipmapLevelClamp](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetmipmaplevelclamp.html "Interface documentation") | C binding 197 | [hipTexRefGetMipMappedArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefgetmipmappedarray.html "Interface documentation") | C binding 198 | [hipTexRefSetAddress](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetaddress.html "Interface documentation") | C binding 199 | [hipTexRefSetAddress2D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetaddress2d.html "Interface documentation") | C binding 200 | [hipTexRefSetMaxAnisotropy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetmaxanisotropy.html "Interface documentation") | C binding 201 | [hipBindTextureToMipmappedArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipbindtexturetomipmappedarray.html "Interface documentation") | C binding 202 | [hipCreateTextureObject](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipcreatetextureobject.html "Interface documentation") | C binding 203 | [hipDestroyTextureObject](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipdestroytextureobject.html "Interface documentation") | C binding 204 | [hipGetChannelDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgetchanneldesc.html "Interface documentation") | C binding 205 | [hipGetTextureObjectResourceDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgettextureobjectresourcedesc.html "Interface documentation") | C binding 206 | [hipGetTextureObjectResourceViewDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgettextureobjectresourceviewdesc.html "Interface documentation") | C binding 207 | [hipGetTextureObjectTextureDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgettextureobjecttexturedesc.html "Interface documentation") | C binding 208 | [hipTexRefSetAddressMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetaddressmode.html "Interface documentation") | C binding 209 | [hipTexRefSetArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetarray.html "Interface documentation") | C binding 210 | [hipTexRefSetFilterMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetfiltermode.html "Interface documentation") | C binding 211 | [hipTexRefSetFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetflags.html "Interface documentation") | C binding 212 | [hipTexRefSetFormat](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetformat.html "Interface documentation") | C binding 213 | [hipTexObjectCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexobjectcreate.html "Interface documentation") | C binding 214 | [hipTexObjectDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexobjectdestroy.html "Interface documentation") | C binding 215 | [hipTexObjectGetResourceDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexobjectgetresourcedesc.html "Interface documentation") | C binding 216 | [hipTexObjectGetResourceViewDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexobjectgetresourceviewdesc.html "Interface documentation") | C binding 217 | [hipTexObjectGetTextureDesc](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexobjectgettexturedesc.html "Interface documentation") | C binding 218 | [hipTexRefSetBorderColor](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetbordercolor.html "Interface documentation") | C binding 219 | [hipTexRefSetMipmapFilterMode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetmipmapfiltermode.html "Interface documentation") | C binding 220 | [hipTexRefSetMipmapLevelBias](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetmipmaplevelbias.html "Interface documentation") | C binding 221 | [hipTexRefSetMipmapLevelClamp](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetmipmaplevelclamp.html "Interface documentation") | C binding 222 | [hipTexRefSetMipmappedArray](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hiptexrefsetmipmappedarray.html "Interface documentation") | C binding 223 | [hipMipmappedArrayCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmipmappedarraycreate.html "Interface documentation") | C binding 224 | [hipMipmappedArrayDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmipmappedarraydestroy.html "Interface documentation") | C binding 225 | [hipMipmappedArrayGetLevel](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipmipmappedarraygetlevel.html "Interface documentation") | C binding 226 | [hipRegisterApiCallback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipregisterapicallback.html "Interface documentation") | C binding 227 | [hipRemoveApiCallback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipremoveapicallback.html "Interface documentation") | C binding 228 | [hipRegisterActivityCallback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipregisteractivitycallback.html "Interface documentation") | C binding 229 | [hipRemoveActivityCallback](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipremoveactivitycallback.html "Interface documentation") | C binding 230 | [hipStreamBeginCapture](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreambegincapture.html "Interface documentation") | C binding 231 | [hipStreamEndCapture](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamendcapture.html "Interface documentation") | C binding 232 | [hipStreamGetCaptureInfo](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamgetcaptureinfo.html "Interface documentation") | C binding 233 | [hipStreamGetCaptureInfo_v2](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamgetcaptureinfo__v2.html "Interface documentation") | C binding 234 | [hipStreamIsCapturing](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamiscapturing.html "Interface documentation") | C binding 235 | [hipStreamUpdateCaptureDependencies](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipstreamupdatecapturedependencies.html "Interface documentation") | C binding 236 | [hipGraphCreate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphcreate.html "Interface documentation") | C binding 237 | [hipGraphDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphdestroy.html "Interface documentation") | C binding 238 | [hipGraphAddDependencies](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphadddependencies.html "Interface documentation") | C binding 239 | [hipGraphRemoveDependencies](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphremovedependencies.html "Interface documentation") | C binding 240 | [hipGraphGetEdges](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphgetedges.html "Interface documentation") | C binding 241 | [hipGraphGetNodes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphgetnodes.html "Interface documentation") | C binding 242 | [hipGraphGetRootNodes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphgetrootnodes.html "Interface documentation") | C binding 243 | [hipGraphNodeGetDependencies](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphnodegetdependencies.html "Interface documentation") | C binding 244 | [hipGraphNodeGetDependentNodes](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphnodegetdependentnodes.html "Interface documentation") | C binding 245 | [hipGraphNodeGetType](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphnodegettype.html "Interface documentation") | C binding 246 | [hipGraphDestroyNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphdestroynode.html "Interface documentation") | C binding 247 | [hipGraphClone](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphclone.html "Interface documentation") | C binding 248 | [hipGraphNodeFindInClone](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphnodefindinclone.html "Interface documentation") | C binding 249 | [hipGraphInstantiate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphinstantiate.html "Interface documentation") | C binding 250 | [hipGraphInstantiateWithFlags](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphinstantiatewithflags.html "Interface documentation") | C binding 251 | [hipGraphLaunch](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphlaunch.html "Interface documentation") | C binding 252 | [hipGraphExecDestroy](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecdestroy.html "Interface documentation") | C binding 253 | [hipGraphExecUpdate](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecupdate.html "Interface documentation") | C binding 254 | [hipGraphAddKernelNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddkernelnode.html "Interface documentation") | C binding 255 | [hipGraphKernelNodeGetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphkernelnodegetparams.html "Interface documentation") | C binding 256 | [hipGraphKernelNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphkernelnodesetparams.html "Interface documentation") | C binding 257 | [hipGraphExecKernelNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexeckernelnodesetparams.html "Interface documentation") | C binding 258 | [hipGraphAddMemcpyNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddmemcpynode.html "Interface documentation") | C binding 259 | [hipGraphMemcpyNodeGetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemcpynodegetparams.html "Interface documentation") | C binding 260 | [hipGraphMemcpyNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemcpynodesetparams.html "Interface documentation") | C binding 261 | [hipGraphExecMemcpyNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecmemcpynodesetparams.html "Interface documentation") | C binding 262 | [hipGraphAddMemcpyNode1D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddmemcpynode1d.html "Interface documentation") | C binding 263 | [hipGraphMemcpyNodeSetParams1D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemcpynodesetparams1d.html "Interface documentation") | C binding 264 | [hipGraphExecMemcpyNodeSetParams1D](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecmemcpynodesetparams1d.html "Interface documentation") | C binding 265 | [hipGraphAddMemcpyNodeFromSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddmemcpynodefromsymbol.html "Interface documentation") | C binding 266 | [hipGraphMemcpyNodeSetParamsFromSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemcpynodesetparamsfromsymbol.html "Interface documentation") | C binding 267 | [hipGraphExecMemcpyNodeSetParamsFromSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecmemcpynodesetparamsfromsymbol.html "Interface documentation") | C binding 268 | [hipGraphAddMemcpyNodeToSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddmemcpynodetosymbol.html "Interface documentation") | C binding 269 | [hipGraphMemcpyNodeSetParamsToSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemcpynodesetparamstosymbol.html "Interface documentation") | C binding 270 | [hipGraphExecMemcpyNodeSetParamsToSymbol](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecmemcpynodesetparamstosymbol.html "Interface documentation") | C binding 271 | [hipGraphAddMemsetNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddmemsetnode.html "Interface documentation") | C binding 272 | [hipGraphMemsetNodeGetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemsetnodegetparams.html "Interface documentation") | C binding 273 | [hipGraphMemsetNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphmemsetnodesetparams.html "Interface documentation") | C binding 274 | [hipGraphExecMemsetNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecmemsetnodesetparams.html "Interface documentation") | C binding 275 | [hipGraphAddHostNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddhostnode.html "Interface documentation") | C binding 276 | [hipGraphHostNodeGetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphhostnodegetparams.html "Interface documentation") | C binding 277 | [hipGraphHostNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphhostnodesetparams.html "Interface documentation") | C binding 278 | [hipGraphExecHostNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexechostnodesetparams.html "Interface documentation") | C binding 279 | [hipGraphAddChildGraphNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddchildgraphnode.html "Interface documentation") | C binding 280 | [hipGraphChildGraphNodeGetGraph](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphchildgraphnodegetgraph.html "Interface documentation") | C binding 281 | [hipGraphExecChildGraphNodeSetParams](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexecchildgraphnodesetparams.html "Interface documentation") | C binding 282 | [hipGraphAddEmptyNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddemptynode.html "Interface documentation") | C binding 283 | [hipGraphAddEventRecordNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddeventrecordnode.html "Interface documentation") | C binding 284 | [hipGraphEventRecordNodeGetEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgrapheventrecordnodegetevent.html "Interface documentation") | C binding 285 | [hipGraphEventRecordNodeSetEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgrapheventrecordnodesetevent.html "Interface documentation") | C binding 286 | [hipGraphExecEventRecordNodeSetEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexeceventrecordnodesetevent.html "Interface documentation") | C binding 287 | [hipGraphAddEventWaitNode](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphaddeventwaitnode.html "Interface documentation") | C binding 288 | [hipGraphEventWaitNodeGetEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgrapheventwaitnodegetevent.html "Interface documentation") | C binding 289 | [hipGraphEventWaitNodeSetEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgrapheventwaitnodesetevent.html "Interface documentation") | C binding 290 | [hipGraphExecEventWaitNodeSetEvent](https://rocm.docs.amd.com/projects/hipfort/en/latest/doxygen/html/interfacehipfort_1_1hipgraphexeceventwaitnodesetevent.html "Interface documentation") | C binding hipfort-7.2.4/docs/doxygen/Doxyfile0000664000175000017500000033207715207260635017520 0ustar alastairalastair# Doxyfile 1.9.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the configuration # file that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "HIPFORT API Reference" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Fortran Interface for GPU kernel libraries" # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = . # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all generated output in the proper direction. # Possible values are: None, LTR, RTL and Context. # The default value is: None. OUTPUT_TEXT_DIRECTION = None # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = YES # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = YES # If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be # interpreted by doxygen. # The default value is: NO. JAVADOC_BANNER = YES # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines (in the resulting output). You can put ^^ in the value part of an # alias to insert a newline as if a physical newline was in the original file. # When you need a literal { or } or , in the value part of an alias you have to # escape them by means of a backslash (\), this can lead to conflicts with the # commands \{ and \} for these it is advised to use the version @{ and @} or use # a double escape (\\{ and \\}) ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = YES # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice # sources only. Doxygen will then generate output that is more tailored for that # language. For instance, namespaces will be presented as modules, types will be # separated into more groups, etc. # The default value is: NO. OPTIMIZE_OUTPUT_SLICE = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, # Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, # Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files). For instance to make doxygen treat .inc files # as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. When specifying no_extension you should add # * to the FILE_PATTERNS. # # Note see also the list of default file extension mappings. EXTENSION_MAPPING = f=FortranFree # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 5. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 5 # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual # methods of a class will be included in the documentation. # The default value is: NO. EXTRACT_PRIV_VIRTUAL = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # With the correct setting of option CASE_SENSE_NAMES doxygen will better be # able to match the capabilities of the underlying filesystem. In case the # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly # deal with such files in case they appear in the input. For filesystems that # are not case sensitive the option should be be set to NO to properly deal with # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On # Windows (including Cygwin) and MacOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. If # EXTRACT_ALL is set to YES then this flag will automatically be disabled. # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS # then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but # at the end of the doxygen process doxygen will return with a non-zero status. # Possible values are: NO, YES and FAIL_ON_WARNINGS. # The default value is: NO. WARN_AS_ERROR = YES # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = input # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # Note the list of default checked file patterns might differ from the list of # default file extension mappings. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), # *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, # *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.f \ *.f90 \ *.F90 \ *.md # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the # clang parser (see: # http://clang.llvm.org/) for more accurate parsing at the cost of reduced # performance. This can be particularly helpful with template rich C++ code for # which doxygen's built-in parser lacks the necessary type information. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. CLANG_OPTIONS = # If clang assisted parsing is enabled you can provide the clang parser with the # path to the directory containing a file called compile_commands.json. This # file is the compilation database (see: # http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the # options used when the source files were built. This is equivalent to # specifying the -p option to a clang tool, such as clang-check. These options # will then be passed to the parser. Any options specified with CLANG_OPTIONS # will be added as well. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. CLANG_DATABASE_PATH = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = ../_doxygen/header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = ../_doxygen/footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = ../_doxygen/stylesheet.css # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = ../_doxygen/extra_stylesheet.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will # consists of multiple levels of tabs that are statically embedded in every HTML # page. Disable this option to support browsers that do not have JavaScript, # like the Qt help browser. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_MENUS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: # https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To # create a documentation set, doxygen will generate a Makefile in the HTML # output directory. Running make will produce the docset in that directory and # running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: # https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location (absolute path # including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to # run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. FORMULA_MACROFILE = # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side JavaScript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = YES # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from https://www.mathjax.org before deployment. # The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /